diff --git a/.github/workflows/pr-commenter.yml b/.github/workflows/pr-commenter.yml new file mode 100644 index 000000000..cc85382a1 --- /dev/null +++ b/.github/workflows/pr-commenter.yml @@ -0,0 +1,20 @@ +on: + pull_request_target: + +jobs: + pr: + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - uses: mshick/add-pr-comment@v2 + if: always() + with: + message: | + + **必须加入社区发出PR才会被合并, 超过一周不发的默认放弃奖励* + - QQ群: 79489587 + - TG群: [Move中文](https://t.me/move_cn) + + message-failure: | + Uh oh! \ No newline at end of file diff --git a/README.md b/README.md index 5c3d665bd..4b22d0549 100644 --- a/README.md +++ b/README.md @@ -1,57 +1,33 @@ -# letsmove +## letsmove Let's Move 一项学Move获得SUI的激励计划,鼓励更多的人学习Move语言 -## 如何参与 -- 复制 `mover` 目录下的 `001` 并且用自己的 `github id` 命名复制的目录 -- 在 `readme.md` 里面填写个人信息 后面的任务模板暂时不管 -- 提交PR -- 必须加入社区群发出PR 才会被合并 +## 带奖励的学习任务 +[学习任务](./task) ## 社区 & 问答 - [move中文 TG](https://t.me/move_cn) -- [Sui中文 TG](https://t.me/sui_dev_cn) - QQ群: 79489587 +## bootcamp视频 +| 期数 | 视频 | 源码 | +|:-----------------|-------------------------------------------------|:----------------------------------------:| +| 2024年4-6月 TinTin | [B站](https://www.bilibili.com/video/BV1Rm42177Kx) | [课程源码](https://github.com/move-cn/tintin-bootcamp) | -## 如何完成任务并获取奖励 -- 在自己`github id`目录的 readme.md 对应的任务列表填写完成信息 -- 提交PR 如果只完成 task 1 用 `完成 task 1` 取名 完成多个 用 `完成 task 1 2 3` 等取名 -- 审核任务完成会把Sui打入 `readme.md` 提供的Sui地址 - -## 重要提醒 -- 必须包含作业源代码 -- task 1 必须包含自己的`github id` 也就是 hello `github id` -- task 2 必须是自己 `github id` 开头的Coin名字,水龙头的Coin是 `github id` + `Faucet` -- task 3 NFT必须是自己 github 的头像作为图片 -- task 4 的game 必须包含自己的 `github id`的元素, 必须包含随机数,必须用task2的 `Faucet Coin` -- task 5 swap 必须是 swap 自己发行的 task2 两个 Coin的互换,包名必须是自己的`github id` -- task 6 必须在一个PTB内完成三步,必须包含当前时间的因子,必须用dapp-kit - - -## 奖励明细 请仔细阅读要求 - -| 任务 | 名称 | 人民币等值Token | 说明 | -|:-------------------------------------------|------------|:----------:|:-----------------------| -| [task 1](task/01.hello_move.md) | hello move | ¥20 | 完成第一个合约部署上链 | -| [task 2](task/02.move_coin.md) | move coin | ¥20 | 完成Coin协议学习,并发布两个Coin上链 | -| [task 3](task/03.move_nft.md) | move nft | ¥20 | 完成NFT的学习,并发布NFT上链 | -| [task 4](task/04.move_game.md) | move game | ¥20 | 完成链上游戏学习,并上链交互 | -| [task 5](task/05.move_swap.md) | move swap | ¥20 | 完成Swap学习,并上链交互 | -| [task 6](task/06.SDK_PTB_NAVI.md) | sdk ptb | ¥20(NAVX) | 完成SDK学习,并用SDK完成链上交互 | -| [defi](https://dacade.org/communities/sui) | defi | 95SUI | 完成Defi学习挑战 | - - - -## 学习资料 ### 书籍 -| 书名 | 中文 | 英文 | 配套视频 | -|:--------------------|--------------------------------------|:----------------------------------------------------:|:---------------------------------------------------------:| -| 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/cn/) | [英文](https://move-book.com/) | | -| Let's Move Sui | | [let's move](https://letsmovesui.com/) | | +| 书名 | 中文 | 英文 | 配套视频 | +|:--------------------|-------------------------------------------------|:----------------------------------------------------:|:---------------------------------------------------------:| +| 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/) | | +| 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) | +| Let's Move Sui | [中文](https://movesui.sui-book.com/) | [let's move](https://letsmovesui.com/) | | +| Sui Book | [中文](https://sui-book.com) | | | +| Sui Move by Example | [中文](https://examples.sui-book.com/) | [Sui Move by Example](https://examples.sui.io/) | | +| 轻松入门Move | [轻松入门Move](https://easy.sui-book.com/) | | | +| Move Master | [中文](https://master.sui-book.com/) | [move master](https://metaschool.so/sui) | | +| move castle | [中文](https://movecastle.sui-book.com/) | [move castle](https://learn.movecastle.info/courses/move-on-sui) | | + +[学习路径](learning_map.md) ### 文档 - [官方文档](https://docs.sui.io/) diff --git a/learning_map.md b/learning_map.md new file mode 100644 index 000000000..fc5322f40 --- /dev/null +++ b/learning_map.md @@ -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 + + + + diff --git a/mover/001/readme.md b/mover/001/readme.md index 1dadca486..5a7c47da3 100644 --- a/mover/001/readme.md +++ b/mover/001/readme.md @@ -44,3 +44,11 @@ ## 06 Dapp-kit SDK PTB - [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/001/scan.jpg b/mover/001/scan.jpg new file mode 100644 index 000000000..d16ebb649 Binary files /dev/null and b/mover/001/scan.jpg differ diff --git a/mover/0x-wen/code/hello_dapp/README.md b/mover/0x-wen/code/hello_dapp/README.md new file mode 100644 index 000000000..ec054a25a --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/README.md @@ -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": "" + } +}' +``` + +### 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 = ""; +``` + +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 +``` diff --git a/mover/0x-wen/code/hello_dapp/index.html b/mover/0x-wen/code/hello_dapp/index.html new file mode 100644 index 000000000..bb7f75b16 --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/index.html @@ -0,0 +1,59 @@ + + + + + + + Sui dApp Starter + + + + +
+ + + diff --git a/mover/0x-wen/code/hello_dapp/move/counter/Move.lock b/mover/0x-wen/code/hello_dapp/move/counter/Move.lock new file mode 100644 index 000000000..4364478bb --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/move/counter/Move.lock @@ -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" diff --git a/mover/0x-wen/code/hello_dapp/move/counter/Move.toml b/mover/0x-wen/code/hello_dapp/move/counter/Move.toml new file mode 100644 index 000000000..94e850382 --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/move/counter/Move.toml @@ -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" diff --git a/mover/0x-wen/code/hello_dapp/move/counter/sources/counter.move b/mover/0x-wen/code/hello_dapp/move/counter/sources/counter.move new file mode 100644 index 000000000..857c95d19 --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/move/counter/sources/counter.move @@ -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) + } +} diff --git a/mover/0x-wen/code/hello_dapp/package-lock.json b/mover/0x-wen/code/hello_dapp/package-lock.json new file mode 100644 index 000000000..a198ba276 --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/package-lock.json @@ -0,0 +1,5273 @@ +{ + "name": "hello_dapp", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "hello_dapp", + "version": "0.0.0", + "dependencies": { + "@mysten/dapp-kit": "0.14.10", + "@mysten/sui": "1.2.0", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@tanstack/react-query": "^5.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } + }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "license": "MIT", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, + "node_modules/@0no-co/graphqlsp": { + "version": "1.12.10", + "resolved": "https://registry.npmjs.org/@0no-co/graphqlsp/-/graphqlsp-1.12.10.tgz", + "integrity": "sha512-PrkGVc+XhSjU+7ALSjd4ANlyRZkKOdmOGqj7bqPcKI6C+opuN5MeXSBWKE9383EW27/+MkY+/U1LAaCoZKtkfQ==", + "license": "MIT", + "dependencies": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", + "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==", + "license": "MIT" + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.4.tgz", + "integrity": "sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.4" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.7.tgz", + "integrity": "sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.4" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.1.tgz", + "integrity": "sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.4.tgz", + "integrity": "sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==", + "license": "MIT" + }, + "node_modules/@gql.tada/cli-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@gql.tada/cli-utils/-/cli-utils-1.4.0.tgz", + "integrity": "sha512-8CeKMsUHQSj2MVTJqb6LRfanfhfDrPyfmiYuLY75/aKnRBk70Oe3m7YuBc6/QzatLjj6egxPezNdt25MTluSpg==", + "license": "MIT", + "dependencies": { + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/internal": "1.0.2", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + }, + "peerDependencies": { + "@0no-co/graphqlsp": "^1.12.9", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@gql.tada/internal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@gql.tada/internal/-/internal-1.0.2.tgz", + "integrity": "sha512-5PH+l47yRpz97YCuKiBdIyLRRCM9fJ56J7yEnwMny1RIR8U4CV39eT0VokvHUjFY6x2Kxh4fH4KeJYezssiOXw==", + "license": "MIT", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "license": "MIT", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "license": "MIT", + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mysten/bcs": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-1.0.2.tgz", + "integrity": "sha512-haHT0km/9yIIe8lwo8gDFxGLnoxfRF4WmEVCz4lDXbEVQRsZkF0zB97kukiwMjDuFBaGVUhrOMCLz6td8tSMaQ==", + "license": "Apache-2.0", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/dapp-kit": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/@mysten/dapp-kit/-/dapp-kit-0.14.10.tgz", + "integrity": "sha512-IjCRND4pgr8nr2fLg9XLEACtyxTO1Y4/Fl8/5taxZyhb09kTfS7hcpHkRw3xPmJ/b83DOQW3X0/l/d213k4OVQ==", + "license": "Apache-2.0", + "dependencies": { + "@mysten/sui": "1.2.0", + "@mysten/wallet-standard": "0.12.10", + "@mysten/zksend": "0.9.10", + "@radix-ui/react-dialog": "^1.0.4", + "@radix-ui/react-dropdown-menu": "^2.0.5", + "@radix-ui/react-slot": "^1.0.2", + "@vanilla-extract/css": "^1.13.0", + "@vanilla-extract/dynamic": "^2.0.3", + "@vanilla-extract/recipes": "^0.5.0", + "clsx": "^2.0.0", + "zustand": "^4.4.1" + }, + "peerDependencies": { + "@tanstack/react-query": "^5.0.0", + "react": "*" + } + }, + "node_modules/@mysten/sui": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@mysten/sui/-/sui-1.2.0.tgz", + "integrity": "sha512-USDOckZPGcwi2QAuKHEcieoVuW8Xgsm8vtKyXaRrhVLG2t2q3hCEigquiLXh7S3okBbD/P35xjvhR9PdUeqweA==", + "license": "Apache-2.0", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "1.0.2", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.7.0", + "graphql": "^16.8.1", + "tweetnacl": "^1.0.3", + "valibot": "^0.25.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@mysten/wallet-standard": { + "version": "0.12.10", + "resolved": "https://registry.npmjs.org/@mysten/wallet-standard/-/wallet-standard-0.12.10.tgz", + "integrity": "sha512-hwy9S63D/J9llrGHDRqmJTauUcAL2tKeiRut9NdePCe4BJphzowwZxTLZTsyam4fT2K2yvufyVZwp4Ij4FII6Q==", + "license": "Apache-2.0", + "dependencies": { + "@mysten/sui": "1.2.0", + "@wallet-standard/core": "1.0.3" + } + }, + "node_modules/@mysten/zksend": { + "version": "0.9.10", + "resolved": "https://registry.npmjs.org/@mysten/zksend/-/zksend-0.9.10.tgz", + "integrity": "sha512-ExKtKZT9bL3BKTQZww1zOv8gFDju/40rx2kqjO+qy2Ju+0Mc3jmtoR7NYpCdPK19DvvOl0eKGs6f2P+LN0+rlQ==", + "license": "Apache-2.0", + "dependencies": { + "@mysten/sui": "1.2.0", + "@mysten/wallet-standard": "0.12.10", + "mitt": "^3.0.1", + "nanostores": "^0.9.3", + "valibot": "^0.25.0" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@radix-ui/colors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/colors/-/colors-3.0.0.tgz", + "integrity": "sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==", + "license": "MIT" + }, + "node_modules/@radix-ui/number": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.0.tgz", + "integrity": "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==", + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz", + "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-accessible-icon": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.1.0.tgz", + "integrity": "sha512-i9Zg4NOSXlfUva0agzI2DjWrvFJm9uO4L6CMW7nmMa5CIOOX/Yin894W7WwjodFQWPwe5kmAJ4JF33R8slKI2g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-visually-hidden": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-alert-dialog": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.1.tgz", + "integrity": "sha512-wmCoJwj7byuVuiLKqDLlX7ClSUU0vd9sdCeM+2Ls+uf13+cpSJoMgwysHq1SGVVkJj5Xn0XWi1NoRCdkMpr6Mw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dialog": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", + "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-aspect-ratio": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.0.tgz", + "integrity": "sha512-dP87DM/Y7jFlPgUZTlhx6FF5CEzOiaxp2rBCKlaXlpH5Ip/9Fg5zZ9lDOQ5o/MOfUlf36eak14zoWYpgcgGoOg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.0.tgz", + "integrity": "sha512-Q/PbuSMk/vyAd/UoIShVGZ7StHHeRFYU7wXmi5GV+8cLXflZAEpHL/F697H1klrzxKXNtZ97vWiC0q3RKUH8UA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.1.tgz", + "integrity": "sha512-0i/EKJ222Afa1FE0C6pNJxDq1itzcl3HChE9DwskA4th4KRse8ojx8a1nVcOjwJdbpDLcz7uol77yYnQNMHdKw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", + "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", + "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context-menu": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.2.1.tgz", + "integrity": "sha512-wvMKKIeb3eOrkJ96s722vcidZ+2ZNfcYZWBPRHIB1VWrF+fiF851Io6LX0kmK5wTDQFKdulCCKJk2c3SBaQHvA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-menu": "2.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.1.tgz", + "integrity": "sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz", + "integrity": "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.1.tgz", + "integrity": "sha512-y8E+x9fBq9qvteD2Zwa4397pUVhYsh9iq44b5RD5qu1GMJWBCBuVg1hMyItbc6+zH00TxGRqd9Iot4wzf3OoBQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-menu": "2.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.0.tgz", + "integrity": "sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", + "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-form/-/react-form-0.0.3.tgz", + "integrity": "sha512-kgE+Z/haV6fxE5WqIXj05KkaXa3OkZASoTDy25yX2EIp/x0c54rOH/vFr5nOZTg7n7T1z8bSyXmiVIFP9bbhPQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-label": "2.0.2", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-context": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-hover-card": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.1.tgz", + "integrity": "sha512-IwzAOP97hQpDADYVKrEEHUH/b2LA+9MgB0LgdmnbFO2u/3M5hmEofjjr2M6CyzUblaAqJdFm6B7oFtU72DPXrA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-icons": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz", + "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==", + "license": "MIT", + "peerDependencies": { + "react": "^16.x || ^17.x || ^18.x" + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.0.2.tgz", + "integrity": "sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.1.tgz", + "integrity": "sha512-oa3mXRRVjHi6DZu/ghuzdylyjaMXLymx83irM7hTxutQbD+7IhPKdMdRHD26Rm+kHRrWcrUkkRPv5pd47a2xFQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.1.tgz", + "integrity": "sha512-3y1A3isulwnWhvTTwmIreiB8CF4L+qRjZnK1wYLO7pplddzXKby/GnZ2M7OZY3qgnl6p9AodUIHRYGXNah8Y7g==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz", + "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz", + "integrity": "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.0.tgz", + "integrity": "sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", + "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-radio-group": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.2.0.tgz", + "integrity": "sha512-yv+oiLaicYMBpqgfpSPw6q+RyXlLdIpQWDHZbUKURxe+nEh53hFXPPlfhfQQtYkS5MMK/5IWIa76SksleQZSzw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz", + "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.1.0.tgz", + "integrity": "sha512-9ArIZ9HWhsrfqS765h+GZuLoxaRHD/j0ZWOWilsCvYTpYJp8XwCqNG7Dt9Nu/TItKOdgLGkOPCodQvDc+UMwYg==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.1.tgz", + "integrity": "sha512-8iRDfyLtzxlprOo9IicnzvpsO1wNCkuwzzCM+Z5Rb5tNOpCdMvcc2AkzX0Fz+Tz9v6NJ5B/7EEgyZveo4FBRfQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.0.tgz", + "integrity": "sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slider": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.2.0.tgz", + "integrity": "sha512-dAHCDA4/ySXROEPaRtaMV5WHL8+JB/DbtyTbJjYkY0RXmKMO2Ln8DFZhywG5/mVQ4WqHDBc8smc14yPXPqZHYA==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", + "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.0.tgz", + "integrity": "sha512-OBzy5WAj641k0AOSpKQtreDMe+isX0MQJ1IVyF03ucdF3DunOnROVrjWs8zsXUxC3zfZ6JL9HFVCUlMghz9dJw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.0.tgz", + "integrity": "sha512-bZgOKB/LtZIij75FSuPzyEti/XBhJH52ExgtdVqjCIh+Nx/FW+LhnbXtbCzIi34ccyMsyOja8T0thCzoHFXNKA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.2.tgz", + "integrity": "sha512-9XRsLwe6Yb9B/tlnYCPVUd/TFS4J7HuOZW345DCeC6vKIxQGMZdx21RK4VoZauPD5frgkXTYVS5y90L+3YBn4w==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz", + "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz", + "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==", + "license": "MIT" + }, + "node_modules/@radix-ui/themes": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/themes/-/themes-2.0.3.tgz", + "integrity": "sha512-yaXQ8aWT2P1CQ0Xe6YCRD9HXsfMTvKkrIYkrc4aitCzhGTLS0sjtTqKmrxIWMVA+3DIbEuG9K/8aAMRJBhep8g==", + "license": "MIT", + "dependencies": { + "@radix-ui/colors": "^3.0.0", + "@radix-ui/primitive": "^1.0.1", + "@radix-ui/react-accessible-icon": "^1.0.3", + "@radix-ui/react-alert-dialog": "^1.0.5", + "@radix-ui/react-aspect-ratio": "^1.0.3", + "@radix-ui/react-avatar": "^1.0.4", + "@radix-ui/react-checkbox": "^1.0.4", + "@radix-ui/react-context-menu": "^2.1.5", + "@radix-ui/react-dialog": "^1.0.5", + "@radix-ui/react-direction": "^1.0.1", + "@radix-ui/react-dropdown-menu": "^2.0.6", + "@radix-ui/react-form": "^0.0.3", + "@radix-ui/react-hover-card": "^1.0.7", + "@radix-ui/react-popover": "^1.0.7", + "@radix-ui/react-portal": "^1.0.4", + "@radix-ui/react-radio-group": "^1.1.3", + "@radix-ui/react-scroll-area": "^1.0.5", + "@radix-ui/react-select": "^2.0.0", + "@radix-ui/react-separator": "^1.0.3", + "@radix-ui/react-slider": "^1.1.2", + "@radix-ui/react-slot": "^1.0.2", + "@radix-ui/react-switch": "^1.0.3", + "@radix-ui/react-tabs": "^1.0.4", + "@radix-ui/react-tooltip": "^1.0.7", + "@radix-ui/react-use-callback-ref": "^1.0.1", + "@radix-ui/react-visually-hidden": "^1.0.3", + "classnames": "^2.3.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@scure/base": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.7.tgz", + "integrity": "sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==", + "license": "MIT" + }, + "node_modules/@swc/core": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.6.6.tgz", + "integrity": "sha512-sHfmIUPUXNrQTwFMVCY5V5Ena2GTOeaWjS2GFUpjLhAgVfP90OP67DWow7+cYrfFtqBdILHuWnjkTcd0+uPKlg==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.9" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.6.6", + "@swc/core-darwin-x64": "1.6.6", + "@swc/core-linux-arm-gnueabihf": "1.6.6", + "@swc/core-linux-arm64-gnu": "1.6.6", + "@swc/core-linux-arm64-musl": "1.6.6", + "@swc/core-linux-x64-gnu": "1.6.6", + "@swc/core-linux-x64-musl": "1.6.6", + "@swc/core-win32-arm64-msvc": "1.6.6", + "@swc/core-win32-ia32-msvc": "1.6.6", + "@swc/core-win32-x64-msvc": "1.6.6" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.6.6.tgz", + "integrity": "sha512-5DA8NUGECcbcK1YLKJwNDKqdtTYDVnkfDU1WvQSXq/rU+bjYCLtn5gCe8/yzL7ISXA6rwqPU1RDejhbNt4ARLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.6.6.tgz", + "integrity": "sha512-2nbh/RHpweNRsJiYDFk1KcX7UtaKgzzTNUjwtvK5cp0wWrpbXmPvdlWOx3yzwoiSASDFx78242JHHXCIOlEdsw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.6.6.tgz", + "integrity": "sha512-YgytuyUfR7b0z0SRHKV+ylr83HmgnROgeT7xryEkth6JGpAEHooCspQ4RrWTU8+WKJ7aXiZlGXPgybQ4TiS+TA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.6.6.tgz", + "integrity": "sha512-yGwx9fddzEE0iURqRVwKBQ4IwRHE6hNhl15WliHpi/PcYhzmYkUIpcbRXjr0dssubXAVPVnx6+jZVDSbutvnfg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.6.6.tgz", + "integrity": "sha512-a6fMbqzSAsS5KCxFJyg1mD5kwN3ZFO8qQLyJ75R/htZP/eCt05jrhmOI7h2n+1HjiG332jLnZ9S8lkVE5O8Nqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.6.6.tgz", + "integrity": "sha512-hRGsUKNzzZle28YF0dYIpN0bt9PceR9LaVBq7x8+l9TAaDLFbgksSxcnU/ubTtsy+WsYSYGn+A83w3xWC0O8CQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.6.6.tgz", + "integrity": "sha512-NokIUtFxJDVv3LzGeEtYMTV3j2dnGKLac59luTeq36DQLZdJQawQIdTbzzWl2jE7lxxTZme+dhsVOH9LxE3ceg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.6.6.tgz", + "integrity": "sha512-lzYdI4qb4k1dFG26yv+9Jaq/bUMAhgs/2JsrLncGjLof86+uj74wKYCQnbzKAsq2hDtS5DqnHnl+//J+miZfGA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.6.6.tgz", + "integrity": "sha512-bvl7FMaXIJQ76WZU0ER4+RyfKIMGb6S2MgRkBhJOOp0i7VFx4WLOnrmMzaeoPJaJSkityVKAftfNh7NBzTIydQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.6.6.tgz", + "integrity": "sha512-WAP0JoCTfgeYKgOeYJoJV4ZS0sQUmU3OwvXa2dYYtMLF7zsNqOiW4niU7QlThBHgUv/qNZm2p6ITEgh3w1cltw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/types": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.9.tgz", + "integrity": "sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.49.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.49.1.tgz", + "integrity": "sha512-JnC9ndmD1KKS01Rt/ovRUB1tmwO7zkyXAyIxN9mznuJrcNtOrkmOnQqdJF2ib9oHzc2VxHomnEG7xyfo54Npkw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.49.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.49.2.tgz", + "integrity": "sha512-6rfwXDK9BvmHISbNFuGd+wY3P44lyW7lWiA9vIFGT/T0P9aHD1VkjTvcM4SDAIbAQ9ygEZZoLt7dlU1o3NjMVA==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.49.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vanilla-extract/css": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.15.3.tgz", + "integrity": "sha512-mxoskDAxdQAspbkmQRxBvolUi1u1jnyy9WZGm+GeH8V2wwhEvndzl1QoK7w8JfA0WFevTxbev5d+i+xACZlPhA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@vanilla-extract/private": "^1.0.5", + "css-what": "^6.1.0", + "cssesc": "^3.0.0", + "csstype": "^3.0.7", + "dedent": "^1.5.3", + "deep-object-diff": "^1.1.9", + "deepmerge": "^4.2.2", + "media-query-parser": "^2.0.2", + "modern-ahocorasick": "^1.0.0", + "picocolors": "^1.0.0" + } + }, + "node_modules/@vanilla-extract/dynamic": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@vanilla-extract/dynamic/-/dynamic-2.1.1.tgz", + "integrity": "sha512-iqf736036ujEIKsIq28UsBEMaLC2vR2DhwKyrG3NDb/fRy9qL9FKl1TqTtBV4daU30Uh3saeik4vRzN8bzQMbw==", + "license": "MIT", + "dependencies": { + "@vanilla-extract/private": "^1.0.5" + } + }, + "node_modules/@vanilla-extract/private": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.5.tgz", + "integrity": "sha512-6YXeOEKYTA3UV+RC8DeAjFk+/okoNz/h88R+McnzA2zpaVqTR/Ep+vszkWYlGBcMNO7vEkqbq5nT/JMMvhi+tw==", + "license": "MIT" + }, + "node_modules/@vanilla-extract/recipes": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@vanilla-extract/recipes/-/recipes-0.5.3.tgz", + "integrity": "sha512-SPREq1NmaoKuvJeOV0pppOkwy3pWZUoDufsyQ6iHrbkHhAU7XQqG9o0iZSmg5JoVgDLIiOr9djQb0x9wuxig7A==", + "license": "MIT", + "peerDependencies": { + "@vanilla-extract/css": "^1.0.0" + } + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.0.tgz", + "integrity": "sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@swc/core": "^1.5.7" + }, + "peerDependencies": { + "vite": "^4 || ^5" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.0-alpha.12", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.0-alpha.12.tgz", + "integrity": "sha512-Dj9qTifcGGgzFLfMbU5dCo13kHyNuEyvPJhtWDnoVBBmgwW3GMwFmgWnNxBhjf63m5x0gux1okaxX2CLN7qSww==", + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.0-alpha.12" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.0-alpha.12", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.0-alpha.12.tgz", + "integrity": "sha512-LXATFSj4D7T9sEm7FFj6iBgHjKjrdhAgRPcechVKiNCMQdr3r3GVkkeu8aM+1peaMH3LsCqoDxVZEmh2r7CHiw==", + "license": "MIT" + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.31.tgz", + "integrity": "sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.31", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.31.tgz", + "integrity": "sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.4.31", + "@vue/shared": "3.4.31" + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.24", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.24.tgz", + "integrity": "sha512-997YD6Lq/66LXr3ZOLNxDCmyn13z9NP8LU1UZn9hGCDWhzlbXAIP0hOgL3w3x4RKEaWTaaRtsHP9DzHvmduruQ==", + "license": "MIT", + "dependencies": { + "@volar/language-core": "~2.4.0-alpha.2", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.31.tgz", + "integrity": "sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==", + "license": "MIT" + }, + "node_modules/@wallet-standard/app": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/app/-/app-1.0.1.tgz", + "integrity": "sha512-LnLYq2Vy2guTZ8GQKKSXQK3+FRGPil75XEdkZqE6fiLixJhZJoJa5hT7lXxwe0ykVTt9LEThdTbOpT7KadS26Q==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/base/-/base-1.0.1.tgz", + "integrity": "sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w==", + "license": "Apache-2.0", + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/core": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@wallet-standard/core/-/core-1.0.3.tgz", + "integrity": "sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/app": "^1.0.1", + "@wallet-standard/base": "^1.0.1", + "@wallet-standard/features": "^1.0.3", + "@wallet-standard/wallet": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/features": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@wallet-standard/features/-/features-1.0.3.tgz", + "integrity": "sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/wallet": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/wallet/-/wallet-1.0.1.tgz", + "integrity": "sha512-qkhJeuQU2afQTZ02yMZE5SFc91Fo3hyFjFkpQglHudENNyiSG0oUKcIjky8X32xVSaumgTZSQUAzpXnCTWHzKQ==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/acorn": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==", + "license": "MIT" + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/code-red/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", + "peer": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==", + "license": "MIT" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-object-diff": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz", + "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.7.tgz", + "integrity": "sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gql.tada": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/gql.tada/-/gql.tada-1.8.0.tgz", + "integrity": "sha512-BsdmtWPmCb3oorPnU6DidBNsIDTjbvRc7P5LUZ43ISMz9dNsl2vFvT7i1AEsbK2xV5AtdjgywPKAFHJd4dQr6Q==", + "license": "MIT", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5", + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/cli-utils": "1.4.0", + "@gql.tada/internal": "1.0.2" + }, + "bin": { + "gql-tada": "bin/cli.js", + "gql.tada": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/graphql": { + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", + "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "license": "MIT", + "peer": true + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0", + "peer": true + }, + "node_modules/media-query-parser": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/media-query-parser/-/media-query-parser-2.0.2.tgz", + "integrity": "sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/modern-ahocorasick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-1.0.1.tgz", + "integrity": "sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanostores": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/nanostores/-/nanostores-0.9.5.tgz", + "integrity": "sha512-Z+p+g8E7yzaWwOe5gEUB2Ox0rCEeXWYIZWmYvw/ajNYX8DlXdMvMDj8DWfM/subqPAcsf8l8Td4iAwO1DeIIRQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/periscopic/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/svelte": { + "version": "4.2.18", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.18.tgz", + "integrity": "sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/svelte2tsx": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.13.tgz", + "integrity": "sha512-aObZ93/kGAiLXA/I/kP+x9FriZM+GboB/ReOIGmLNbVGEd2xC+aTCppm3mk1cc9I/z60VQf7b2QDxC3jOXu3yw==", + "license": "MIT", + "dependencies": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + }, + "peerDependencies": { + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", + "typescript": "^4.9.4 || ^5.0.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "license": "0BSD" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "license": "Unlicense" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/valibot": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-0.25.0.tgz", + "integrity": "sha512-cmD0ca15oyAbT75iYLNW6uU6doAeIwYfOshpXka/E1Bx4frzbkrgb7gvkI7K0YK/DVOksei4FfxWfRoBP3NFTg==", + "license": "MIT" + }, + "node_modules/vite": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", + "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zustand": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.4.tgz", + "integrity": "sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg==", + "license": "MIT", + "dependencies": { + "use-sync-external-store": "1.2.0" + }, + "engines": { + "node": ">=12.7.0" + }, + "peerDependencies": { + "@types/react": ">=16.8", + "immer": ">=9.0.6", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + } + } + } + } +} diff --git a/mover/0x-wen/code/hello_dapp/package.json b/mover/0x-wen/code/hello_dapp/package.json new file mode 100644 index 000000000..4bd181970 --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/package.json @@ -0,0 +1,35 @@ +{ + "name": "hello_dapp", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@mysten/dapp-kit": "0.14.10", + "@mysten/sui": "1.2.0", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@tanstack/react-query": "^5.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } +} \ No newline at end of file diff --git a/mover/0x-wen/code/hello_dapp/prettier.config.cjs b/mover/0x-wen/code/hello_dapp/prettier.config.cjs new file mode 100644 index 000000000..c07541106 --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/prettier.config.cjs @@ -0,0 +1,4 @@ +// eslint-disable-next-line no-undef +module.exports = { + proseWrap: "always", +}; diff --git a/mover/0x-wen/code/hello_dapp/src/App.tsx b/mover/0x-wen/code/hello_dapp/src/App.tsx new file mode 100644 index 000000000..dd5506c95 --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/src/App.tsx @@ -0,0 +1,61 @@ +import { ConnectButton, useCurrentAccount } from "@mysten/dapp-kit"; +import { isValidSuiObjectId } from "@mysten/sui/utils"; +import { Box, Container, Flex, Heading } from "@radix-ui/themes"; +import { useState } from "react"; +import { Counter } from "./Counter"; +import { CreateCounter } from "./CreateCounter"; + +function App() { + const currentAccount = useCurrentAccount(); + const [counterId, setCounter] = useState(() => { + const hash = window.location.hash.slice(1); + return isValidSuiObjectId(hash) ? hash : null; + }); + + return ( + <> + + + dApp Starter Template + + + + + + + + + {currentAccount ? ( + counterId ? ( + + ) : ( + { + window.location.hash = id; + setCounter(id); + }} + /> + ) + ) : ( + Please connect your wallet + )} + + + + ); +} + +export default App; diff --git a/mover/0x-wen/code/hello_dapp/src/Counter.tsx b/mover/0x-wen/code/hello_dapp/src/Counter.tsx new file mode 100644 index 000000000..bbd54cfd2 --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/src/Counter.tsx @@ -0,0 +1,87 @@ +import { + useCurrentAccount, + useSignAndExecuteTransaction, + useSuiClient, + useSuiClientQuery, +} from "@mysten/dapp-kit"; +import type { SuiObjectData } from "@mysten/sui/client"; +import { Transaction } from "@mysten/sui/transactions"; +import { Button, Flex, Heading, Text } from "@radix-ui/themes"; +import { useNetworkVariable } from "./networkConfig"; + +export function Counter({ id }: { id: string }) { + const client = useSuiClient(); + const currentAccount = useCurrentAccount(); + const counterPackageId = useNetworkVariable("counterPackageId"); + const { mutate: signAndExecute } = useSignAndExecuteTransaction(); + const { data, isPending, error, refetch } = useSuiClientQuery("getObject", { + id, + options: { + showContent: true, + showOwner: true, + }, + }); + + const executeMoveCall = (method: "increment" | "reset") => { + const tx = new Transaction(); + + if (method === "reset") { + tx.moveCall({ + arguments: [tx.object(id), tx.pure.u64(0)], + target: `${counterPackageId}::counter::set_value`, + }); + } else { + tx.moveCall({ + arguments: [tx.object(id)], + target: `${counterPackageId}::counter::increment`, + }); + } + + signAndExecute( + { + transaction: tx, + }, + { + onSuccess: (tx) => { + client.waitForTransaction({ digest: tx.digest }).then(() => { + refetch(); + }); + }, + }, + ); + }; + + if (isPending) return Loading...; + + if (error) return Error: {error.message}; + + if (!data.data) return Not found; + + const ownedByCurrentAccount = + getCounterFields(data.data)?.owner === currentAccount?.address; + + return ( + <> + Counter {id} + + + Count: {getCounterFields(data.data)?.value} + + + {ownedByCurrentAccount ? ( + + ) : null} + + + + ); +} +function getCounterFields(data: SuiObjectData) { + if (data.content?.dataType !== "moveObject") { + return null; + } + + return data.content.fields as { value: number; owner: string }; +} diff --git a/mover/0x-wen/code/hello_dapp/src/CreateCounter.tsx b/mover/0x-wen/code/hello_dapp/src/CreateCounter.tsx new file mode 100644 index 000000000..38dc3f93f --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/src/CreateCounter.tsx @@ -0,0 +1,60 @@ +import { Transaction } from "@mysten/sui/transactions"; +import { Button, Container } from "@radix-ui/themes"; +import { useSignAndExecuteTransaction, useSuiClient } from "@mysten/dapp-kit"; +import { useNetworkVariable } from "./networkConfig"; + +export function CreateCounter({ + onCreated, +}: { + onCreated: (id: string) => void; +}) { + const client = useSuiClient(); + const counterPackageId = useNetworkVariable("counterPackageId"); + const { mutate: signAndExecute } = useSignAndExecuteTransaction(); + + return ( + + + + ); + + function create() { + const tx = new Transaction(); + + tx.moveCall({ + arguments: [], + target: `${counterPackageId}::counter::create`, + }); + + signAndExecute( + { + transaction: tx, + }, + { + onSuccess: ({ digest }) => { + client + .waitForTransaction({ + digest: digest, + options: { + showEffects: true, + }, + }) + .then((tx) => { + const objectId = tx.effects?.created?.[0]?.reference?.objectId; + + if (objectId) { + onCreated(objectId); + } + }); + }, + }, + ); + } +} diff --git a/mover/0x-wen/code/hello_dapp/src/constants.ts b/mover/0x-wen/code/hello_dapp/src/constants.ts new file mode 100644 index 000000000..23733e76f --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/src/constants.ts @@ -0,0 +1,3 @@ +export const DEVNET_COUNTER_PACKAGE_ID = "0xTODO"; +export const TESTNET_COUNTER_PACKAGE_ID = "0x54fae9c956cc1a2ef3f1436e1fa008a7230d7f79070c58bfc070c5d893315483"; +export const MAINNET_COUNTER_PACKAGE_ID = "0xTODO"; diff --git a/mover/0x-wen/code/hello_dapp/src/main.tsx b/mover/0x-wen/code/hello_dapp/src/main.tsx new file mode 100644 index 000000000..55f323a5d --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/src/main.tsx @@ -0,0 +1,26 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "@mysten/dapp-kit/dist/index.css"; +import "@radix-ui/themes/styles.css"; + +import { SuiClientProvider, WalletProvider } from "@mysten/dapp-kit"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { Theme } from "@radix-ui/themes"; +import App from "./App.tsx"; +import { networkConfig } from "./networkConfig.ts"; + +const queryClient = new QueryClient(); + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + + + + + + + , +); diff --git a/mover/0x-wen/code/hello_dapp/src/networkConfig.ts b/mover/0x-wen/code/hello_dapp/src/networkConfig.ts new file mode 100644 index 000000000..7b6f8b73d --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/src/networkConfig.ts @@ -0,0 +1,31 @@ +import { getFullnodeUrl } from "@mysten/sui/client"; +import { + DEVNET_COUNTER_PACKAGE_ID, + TESTNET_COUNTER_PACKAGE_ID, + MAINNET_COUNTER_PACKAGE_ID, +} from "./constants.ts"; +import { createNetworkConfig } from "@mysten/dapp-kit"; + +const { networkConfig, useNetworkVariable, useNetworkVariables } = + createNetworkConfig({ + devnet: { + url: getFullnodeUrl("devnet"), + variables: { + counterPackageId: DEVNET_COUNTER_PACKAGE_ID, + }, + }, + testnet: { + url: getFullnodeUrl("testnet"), + variables: { + counterPackageId: TESTNET_COUNTER_PACKAGE_ID, + }, + }, + mainnet: { + url: getFullnodeUrl("mainnet"), + variables: { + counterPackageId: MAINNET_COUNTER_PACKAGE_ID, + }, + }, + }); + +export { useNetworkVariable, useNetworkVariables, networkConfig }; diff --git a/mover/0x-wen/code/hello_dapp/src/vite-env.d.ts b/mover/0x-wen/code/hello_dapp/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mover/0x-wen/code/hello_dapp/tsconfig.json b/mover/0x-wen/code/hello_dapp/tsconfig.json new file mode 100644 index 000000000..a7fc6fbf2 --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/0x-wen/code/hello_dapp/tsconfig.node.json b/mover/0x-wen/code/hello_dapp/tsconfig.node.json new file mode 100644 index 000000000..42872c59f --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/0x-wen/code/hello_dapp/vite.config.ts b/mover/0x-wen/code/hello_dapp/vite.config.ts new file mode 100644 index 000000000..d366e8c8d --- /dev/null +++ b/mover/0x-wen/code/hello_dapp/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); diff --git a/mover/Gold/code/readme.md b/mover/0x-wen/code/readme.md similarity index 100% rename from mover/Gold/code/readme.md rename to mover/0x-wen/code/readme.md diff --git a/mover/0x-wen/code/task1/Move.lock b/mover/0x-wen/code/task1/Move.lock new file mode 100644 index 000000000..825bf0cef --- /dev/null +++ b/mover/0x-wen/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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 = "0x2a323df972976f7c2248553ac381224f6c29d87d0092f38dc0e277f6300cc488" +latest-published-id = "0x2a323df972976f7c2248553ac381224f6c29d87d0092f38dc0e277f6300cc488" +published-version = "1" diff --git a/mover/Gold/code/task1/hello_move/Move.toml b/mover/0x-wen/code/task1/Move.toml similarity index 100% rename from mover/Gold/code/task1/hello_move/Move.toml rename to mover/0x-wen/code/task1/Move.toml diff --git a/mover/0x-wen/code/task1/sources/hello_move.move b/mover/0x-wen/code/task1/sources/hello_move.move new file mode 100644 index 000000000..7f965d6ed --- /dev/null +++ b/mover/0x-wen/code/task1/sources/hello_move.move @@ -0,0 +1,27 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + + /* + // struct 最多拥有4项能力 + 1-copy 值可以被复制 + 2-drop 在作用域范围结束后值可以被丢弃 + 3-key 在全局存储操作中值可以被用为key键 + 4-store 值可以在全局存储中被存储 + */ + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"0x-wen"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/0x-wen/code/task1/tests/hello_move.move b/mover/0x-wen/code/task1/tests/hello_move.move new file mode 100644 index 000000000..355dec80c --- /dev/null +++ b/mover/0x-wen/code/task1/tests/hello_move.move @@ -0,0 +1,31 @@ +#[test_only] +module task1::hello_move { + // uncomment this line to import the module + use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task1() { + // Create a dummy TxContext for testing + let mut ctx = tx_context::dummy(); + + // Create a sword + let sword = Sword { + id: object::new(&mut ctx), + magic: 42, + strength: 7, + }; + + // Check if accessor functions return correct values + assert!(sword.magic() == 42 && sword.strength() == 7, 1); + } + + #[test, expected_failure(abort_code = task1::hello_move::ENotImplemented)] + fun test_task1_fail() { + abort ENotImplemented + } +} + + + diff --git a/mover/0x-wen/images/01.png b/mover/0x-wen/images/01.png new file mode 100644 index 000000000..eb31399e0 Binary files /dev/null and b/mover/0x-wen/images/01.png differ diff --git a/mover/0x-wen/images/image.png b/mover/0x-wen/images/image.png new file mode 100644 index 000000000..554cd7ce2 Binary files /dev/null and b/mover/0x-wen/images/image.png differ diff --git a/mover/Gold/notes/readme.md b/mover/0x-wen/notes/readme.md similarity index 100% rename from mover/Gold/notes/readme.md rename to mover/0x-wen/notes/readme.md diff --git a/mover/0x-wen/readme.md b/mover/0x-wen/readme.md new file mode 100644 index 000000000..ed0da19e0 --- /dev/null +++ b/mover/0x-wen/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x417457a075a398d71a89b53591191651768f9495c1ae1c6931d25bc322b5a699` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `0x-wen` + +## 个人简介 +- 工作经验: 8年 +- 技术栈: `Go` `Python` +> 重要提示 请认真写自己的简介 +- 通过登链、theweb3等社区学习区块链相关知识,对智能合约感兴趣,希望学习move部署自己的合约应用 +- 联系方式: tg: `https://t.me/libai7236` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.27.2-homebrew +- [x] Sui钱包截图: ![Sui钱包截图](./images/image.png) +- [x] package id: 0x2a323df972976f7c2248553ac381224f6c29d87d0092f38dc0e277f6300cc488 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/01.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/TigerInYourDream/notes/readme.md b/mover/0x4E33/code/readme.md similarity index 100% rename from mover/TigerInYourDream/notes/readme.md rename to mover/0x4E33/code/readme.md diff --git a/mover/0x4E33/code/task1/task1_my_first_package.move b/mover/0x4E33/code/task1/task1_my_first_package.move new file mode 100644 index 000000000..84e2aacae --- /dev/null +++ b/mover/0x4E33/code/task1/task1_my_first_package.move @@ -0,0 +1,19 @@ +module my_first_package::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + message: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + message: string(b"Hello my github username is 0x4E33"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/0x4E33/code/task2/task2_coin.move b/mover/0x4E33/code/task2/task2_coin.move new file mode 100644 index 000000000..9ae06572b --- /dev/null +++ b/mover/0x4E33/code/task2/task2_coin.move @@ -0,0 +1,37 @@ +module my_first_package::Ox4e33token { + use std::option; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct OX4E33TOKEN has drop {} + + fun init(witness: OX4E33TOKEN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, + 18, + b"0x4E33Token", + b"", + b"", + option::none(), + ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)) + } + + public fun mint( + treasury: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ){ + let coin = coin::mint(treasury,amount,ctx); + transfer::public_transfer(coin,recipient) + } + + public fun burn( + treasury: &mut TreasuryCap, + coin: Coin, + ){ + coin::burn(treasury,coin); + } +} \ No newline at end of file diff --git a/mover/0x4E33/code/task2/task2_faucet.move b/mover/0x4E33/code/task2/task2_faucet.move new file mode 100644 index 000000000..7b05871ea --- /dev/null +++ b/mover/0x4E33/code/task2/task2_faucet.move @@ -0,0 +1,33 @@ +module my_first_package::Ox4e33Faucet { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct OX4E33FAUCET has drop {} + + fun init(witness: OX4E33FAUCET, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 18, + b"0x4E33Faucet", + b"", + b"", + option::none(), + ctx); + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury) + } + public entry fun mint( + treasury: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury, amount, recipient, ctx); + } + public fun burn( + treasury: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury, coin); + } +} \ No newline at end of file diff --git a/mover/0x4E33/code/task3/task3_nft.move b/mover/0x4E33/code/task3/task3_nft.move new file mode 100644 index 000000000..016a1cfdd --- /dev/null +++ b/mover/0x4E33/code/task3/task3_nft.move @@ -0,0 +1,108 @@ +module my_first_package::myNft { + use sui::url::{Self, Url}; + use std::string; + use sui::object::{Self, ID, UID}; + use sui::event; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + use std::string::utf8; + + public struct NFT has key, store { + id: UID, + name: string::String, + description: string::String, + url: Url, + } + + // mint event + public struct NFTMinted has copy, drop { + object_id: ID, + creator: address, + name: string::String, + } + + // transfer event + public struct NFTTransfered has copy, drop { + object_id: ID, + from: address, + to: address, + } + + // burn event + public struct NftBurn has copy, drop { + object_id: ID, + } + + public fun name(nft: &NFT): &string::String { + &nft.name + } + + public fun description(nft: &NFT): &string::String { + &nft.description + } + + public fun url(nft: &NFT): &Url { + &nft.url + } + + public fun mint( + ctx: &mut TxContext + ) { + let sender = tx_context::sender(ctx); + let url = url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/639160"); + let nft = NFT { + id: object::new(ctx), + name: utf8(b"0x4E33"), + description: utf8(b"my first nft series"), + url: url, + }; + + event::emit(NFTMinted { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + public fun mint_to(recipient: address,ctx: &mut TxContext) { + let url = url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/639160"); + let nft = NFT { + id: object::new(ctx), + name: utf8(b"0x4E33"), + description: utf8(b"my first nft series"), + url: url, + }; + + transfer::public_transfer(nft, recipient) + } + + public fun transfer( + nft: NFT, recipient: address, _: &mut TxContext + ) { + event::emit(NFTTransfered { + object_id: object::id(&nft), + from: tx_context::sender(_), + to: recipient, + }); + + transfer::public_transfer(nft, recipient) + } + + public fun update_description( + nft: &mut NFT, + new_description: vector, + _: &mut TxContext + ) { + nft.description = string::utf8(new_description) + } + + public fun burn(nft: NFT, _: &mut TxContext) { + let NFT { id, name: _, description: _, url: _ } = nft; + + event::emit(NftBurn { object_id: object::uid_to_inner(&id) }); + + object::delete(id) + } +} \ No newline at end of file diff --git a/mover/0x4E33/images/task1_successfulStatus.png b/mover/0x4E33/images/task1_successfulStatus.png new file mode 100644 index 000000000..42f92384e Binary files /dev/null and b/mover/0x4E33/images/task1_successfulStatus.png differ diff --git a/mover/0x4E33/images/task1_suiWalletChrome.png b/mover/0x4E33/images/task1_suiWalletChrome.png new file mode 100644 index 000000000..197d73721 Binary files /dev/null and b/mover/0x4E33/images/task1_suiWalletChrome.png differ diff --git a/mover/0x4E33/images/task3_nft.png b/mover/0x4E33/images/task3_nft.png new file mode 100644 index 000000000..91b7cc09e Binary files /dev/null and b/mover/0x4E33/images/task3_nft.png differ diff --git a/mover/0x4E33/notes/readme.md b/mover/0x4E33/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/0x4E33/readme.md b/mover/0x4E33/readme.md new file mode 100644 index 000000000..5ff810ef9 --- /dev/null +++ b/mover/0x4E33/readme.md @@ -0,0 +1,49 @@ +## 基本信息 +- Sui钱包地址: `0x59cb565360964093d1c07144648ef2eb0a19df66ac68dd931bef09767a543a06` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `0x4E33` + +## 个人简介 +- 工作经验: 4年 +- 技术栈: `Golang` `Solidity` +> 重要提示 请认真写自己的简介 +- 3年Go后端,1年合约开发经验,目前从事的方向是智能合约开发和链上数据分析,很喜欢Web3的技术栈 + + All in Web3 + +- 联系方式: tg: @knockknockiskac + +## 任务 + +## 01 hello move +- [] Sui cli version: sui 1.25.0-homebrew +- [] Sui钱包截图: ![Sui钱包截图](./images/task1_suiWalletChrome.png) +- [] package id: 0xe11a2858b55b89c83131eccd4ede836fabf48e475acf55b33892bcedc9ca8b74 +- [] package id 在 scan上的查看截图:![Scan截图](./images/task1_successfulStatus.png) + +## 02 move coin +- [] My Coin package id : 0xda3238f8f7fe4f095aeb9a54e8b16760bf46fde6857bfaa77842491559b18a96 +- [] Faucet package id : 0x77422af070abfe9e4470868ec61424dce2b604c3889ce9675d2619368a4a60e0 +- [] 转账 `My Coin` hash: 3NrwYiNpqeGYZqtvvdyN1adD3azyzhJJoZMSPscBjSRc +- [] `Faucet Coin` address1 mint hash: 5exbuAfTw5z2UZcJ7wYVPCHWCsryWM6KLwkXxja7nsmw +- [] `Faucet Coin` address2 mint hash: 7posgqMCfzKvpz9F1vKNNkf9ehbSoi92VTRuYbPUeDBr + +## 03 move NFT +- [] nft package id :0xbd008157e5c68b32cf2b8e3871b5b5e07bc6438031c30e9a28cbc3b2376caa38 +- [] nft object id : 0x0b81430552d5e79e41353e081a1433c6c594abc79864b6984981cb47d0e38037 +- [] 转账 nft hash: BgJBEYVnZKYuakn9cCFd8SkXNV1tPgLbMufG2r8gTfN5 +- [] scan上的NFT截图:![Scan截图](./images/task3_nft.png) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : diff --git a/mover/0xAiboo/code/readme.md b/mover/0xAiboo/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/0xAiboo/code/task1/Move.lock b/mover/0xAiboo/code/task1/Move.lock new file mode 100644 index 000000000..1c562028c --- /dev/null +++ b/mover/0xAiboo/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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 = "0x35f566e5526b13176e772b67e481e5465f55d79b76337569ad5d373323dcf44e" +latest-published-id = "0x35f566e5526b13176e772b67e481e5465f55d79b76337569ad5d373323dcf44e" +published-version = "1" diff --git a/mover/0xAiboo/code/task1/Move.toml b/mover/0xAiboo/code/task1/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/0xAiboo/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/0xAiboo/code/task1/sources/hello_move.move b/mover/0xAiboo/code/task1/sources/hello_move.move new file mode 100644 index 000000000..1b681e312 --- /dev/null +++ b/mover/0xAiboo/code/task1/sources/hello_move.move @@ -0,0 +1,18 @@ +module hello_move::hello_move { + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + public struct HelloMoveGitHubId has key, store { + id: UID, + text: string::String + } + + public entry fun mint(ctx: &mut TxContext) { + let object = HelloMoveGitHubId{ + id: object::new(ctx), + text: string::utf8(b"0xAiboo") + }; + transfer::transfer(object, tx_context::sender(ctx)); + } +} diff --git a/mover/0xAiboo/code/task1/tests/hello_move_tests.move b/mover/0xAiboo/code/task1/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/0xAiboo/code/task1/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/0xAiboo/code/task2/Move.lock b/mover/0xAiboo/code/task2/Move.lock new file mode 100644 index 000000000..59eccb984 --- /dev/null +++ b/mover/0xAiboo/code/task2/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E7A65BF39B740E195045E87B46B06936199C063AFE29D8948B9C6B9B853033A8" +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 = "0xaa53e6aaa3cdbba1f3d6feeb003157748c0cc8f1f5cf93908bb4dd74697874d4" +latest-published-id = "0xaa53e6aaa3cdbba1f3d6feeb003157748c0cc8f1f5cf93908bb4dd74697874d4" +published-version = "1" diff --git a/mover/0xAiboo/code/task2/Move.toml b/mover/0xAiboo/code/task2/Move.toml new file mode 100644 index 000000000..6a6098d99 --- /dev/null +++ b/mover/0xAiboo/code/task2/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task2" +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] +task2 = "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/0xAiboo/code/task2/sources/faucet_coin.move b/mover/0xAiboo/code/task2/sources/faucet_coin.move new file mode 100644 index 000000000..7f60e602a --- /dev/null +++ b/mover/0xAiboo/code/task2/sources/faucet_coin.move @@ -0,0 +1,36 @@ +module task2::faucet_coin { + use std::option; + use sui::coin; + use sui::transfer::{ + share_object, + freeze_object, + public_transfer, + public_freeze_object, + public_share_object + }; + use sui::tx_context::sender; + use sui::url::Url; + + public struct FAUCET_COIN has drop {} + + fun init( + witness: FAUCET_COIN, + ctx: &mut TxContext + ) { + let icon_url = option::none(); + let (treasury_cap, coin_metadata) = coin::create_currency( + witness, + 6, + b"Faucet Coin", + b"Faucet Coin", + b"this is Faucet Coin", + icon_url, + ctx + ); + + // 所有权共享 不可变共享 + public_freeze_object(coin_metadata); + public_share_object(treasury_cap); + + } +} diff --git a/mover/0xAiboo/code/task2/sources/my_coin.move b/mover/0xAiboo/code/task2/sources/my_coin.move new file mode 100644 index 000000000..8bb5282a0 --- /dev/null +++ b/mover/0xAiboo/code/task2/sources/my_coin.move @@ -0,0 +1,31 @@ +module task2::my_coin { + use std::option; + use sui::coin; + use sui::transfer::{ + share_object, + freeze_object, + public_transfer, + public_freeze_object + }; + use sui::tx_context::sender; + use sui::url::Url; + + public struct MY_COIN has drop {} + + fun init(witness: MY_COIN, ctx: &mut TxContext) { + let icon_url = option::none(); + let (treasury_cap, coin_metadata) = coin::create_currency( + witness, + 6, + b"PEPE", + b"RMB", + b"this is qian", + icon_url, + ctx + ); + + public_freeze_object(coin_metadata); + public_transfer(treasury_cap, sender(ctx)); + + } +} diff --git a/mover/0xAiboo/code/task2/tests/task2_tests.move b/mover/0xAiboo/code/task2/tests/task2_tests.move new file mode 100644 index 000000000..81e8c886d --- /dev/null +++ b/mover/0xAiboo/code/task2/tests/task2_tests.move @@ -0,0 +1,19 @@ +/* +#[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 + } +} +*/ diff --git a/mover/0xAiboo/code/task3/Move.toml b/mover/0xAiboo/code/task3/Move.toml new file mode 100644 index 000000000..480be1592 --- /dev/null +++ b/mover/0xAiboo/code/task3/Move.toml @@ -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" + diff --git a/mover/0xAiboo/code/task3/sources/task3.move b/mover/0xAiboo/code/task3/sources/task3.move new file mode 100644 index 000000000..057af1f45 --- /dev/null +++ b/mover/0xAiboo/code/task3/sources/task3.move @@ -0,0 +1,52 @@ +module task3::flip_coin { + use sui::balance::Balance; + use sui::sui::SUI; + public struct Game has key { + id: UID, + val: Balance + } + + public struct AdminCap has key { + id: UID, + } + + fun init(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + val: balance::zero() + }; + share_object(game); + let admin = AdminCap {id: object::new(ctx)}; + + transfer(admin, sender(ctx)); + } + + public entry fun play( + game: &mut Game, + flip_value: bool, + in: Coin, + rand: &Random, + ctx: &mut TxContext + ) { + let coin_value: u64 = coin::value(&in); + let play_address = + let game_val: u64 = balance::value(&game.val); + if (game_val < coin_value) { + abort 100u64; + }; + + let mut gen: RandomGenerator = random::new_generator(rand, ctx); + let mut flag: bool = random::generate_bool(gen); + if (flip_value == flag) { + let win_balance:Balance=balance::split(&mut game.val, coin_value); + let win_coin: Coin =from_balance(win_balance,ctx); + public_transfer(win_coin, play_address); + public_transfer(in, play_address); + } else { + let in_balance: Balance = into_balance(in); + balance::join(&mut game.val, in_balance); + } + + } + +} diff --git a/mover/0xAiboo/code/task3/tests/task3_tests.move b/mover/0xAiboo/code/task3/tests/task3_tests.move new file mode 100644 index 000000000..d0f947751 --- /dev/null +++ b/mover/0xAiboo/code/task3/tests/task3_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task3::task3_tests { + // uncomment this line to import the module + // use task3::task3; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task3() { + // pass + } + + #[test, expected_failure(abort_code = ::task3::task3_tests::ENotImplemented)] + fun test_task3_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/0xAiboo/images/packageScan.png b/mover/0xAiboo/images/packageScan.png new file mode 100644 index 000000000..ed445bc46 Binary files /dev/null and b/mover/0xAiboo/images/packageScan.png differ diff --git a/mover/0xAiboo/images/walletAddress.png b/mover/0xAiboo/images/walletAddress.png new file mode 100644 index 000000000..6bf29c008 Binary files /dev/null and b/mover/0xAiboo/images/walletAddress.png differ diff --git a/mover/0xAiboo/notes/readme.md b/mover/0xAiboo/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/0xAiboo/readme.md b/mover/0xAiboo/readme.md new file mode 100644 index 000000000..9bc2a3b47 --- /dev/null +++ b/mover/0xAiboo/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x63818e608985f763d665d5e057c7da00eb9645d6e6162775f11d5977aa8feed2` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `0xAiboo` + +## 个人简介 +- 工作经验: 7年 +- 技术栈: `solidty` `react` `next` `NodeJs` +> 重要提示 请认真写自己的简介 +- 两年web2前端开发经验,5年web3前端开发经验,智能合约开发经验,对Move,Sui特别感兴趣,想学习Move转到Sui的智能合约开发与前端开发 +- 联系方式: tg: `Nathan_0xAiboo` (https://t.me/Nathan_0xAiboo) + +## 任务 + +## 01 hello move +- [] Sui cli version: sui 1.27.2 +- [] Sui钱包截图: ![Sui钱包截图](./images/walletAddress.png) +- [] package id: 0x35f566e5526b13176e772b67e481e5465f55d79b76337569ad5d373323dcf44e +- [] package id 在 scan上的查看截图:![Scan截图](./images/packageScan.png) + +## 02 move coin +- [] My Coin package id : 0xaa53e6aaa3cdbba1f3d6feeb003157748c0cc8f1f5cf93908bb4dd74697874d4 +- [] Faucet package id : 0xaa53e6aaa3cdbba1f3d6feeb003157748c0cc8f1f5cf93908bb4dd74697874d4 +- [] 转账 `My Coin` hash: 4R6LowjRiUam7VRdB2LousQpzutZ7pFox6UrRPvj6hFY +- [] `Faucet Coin` address1 mint hash: AEkA8u7TnQpbJvV7Jbb8PiKDYBmvqQ3TWYjEbhtHTxmF +- [] `Faucet Coin` address2 mint hash: GFzNJ4aVNQ3MYeE9MiNyPJ4i9fyTeiyJ4SShh8toErpY + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/0xhutou/code/task2/Faucet/Move.lock b/mover/0xhutou/code/task2/Faucet/Move.lock index b9fe82cb7..1f16cd5df 100644 --- a/mover/0xhutou/code/task2/Faucet/Move.lock +++ b/mover/0xhutou/code/task2/Faucet/Move.lock @@ -2,7 +2,7 @@ [move] version = 2 -manifest_digest = "04B672CBEAB08EF2627780623461C0B3C29DB6E6805B1D7D3718C5B16CBDB0EB" +manifest_digest = "1A59D8AF5EFA103AD96159D71C6DA9B51EBDA4F3F4881CDAC8428303A6FA38F6" deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" dependencies = [ { name = "Sui" }, @@ -21,7 +21,7 @@ dependencies = [ ] [move.toolchain-version] -compiler-version = "1.25.1" +compiler-version = "1.26.0" edition = "2024.beta" flavor = "sui" @@ -29,6 +29,12 @@ flavor = "sui" [env.mainnet] chain-id = "35834a8a" -original-published-id = "0xb2167a378a72d98ceeebb73ace9b0f28c41067ba5f0f2e9112826943fa9f894b" -latest-published-id = "0xb2167a378a72d98ceeebb73ace9b0f28c41067ba5f0f2e9112826943fa9f894b" +original-published-id = "0xf1785e2b449ca1be793d91777db04ad7cb6965b3bb029d6b2620203fbd324974" +latest-published-id = "0xf1785e2b449ca1be793d91777db04ad7cb6965b3bb029d6b2620203fbd324974" +published-version = "1" + +[env.devnet] +chain-id = "bd665407" +original-published-id = "0x8159b22448c04974b57709cbe29123b10b0dfbb5683793296b17a39bb24c2346" +latest-published-id = "0x8159b22448c04974b57709cbe29123b10b0dfbb5683793296b17a39bb24c2346" published-version = "1" diff --git a/mover/0xhutou/code/task2/Faucet/Move.toml b/mover/0xhutou/code/task2/Faucet/Move.toml index 41c8243ea..f723f9aa0 100644 --- a/mover/0xhutou/code/task2/Faucet/Move.toml +++ b/mover/0xhutou/code/task2/Faucet/Move.toml @@ -1,5 +1,6 @@ [package] name = "Faucet" +published-at = "0xf1785e2b449ca1be793d91777db04ad7cb6965b3bb029d6b2620203fbd324974" 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)"] @@ -19,7 +20,9 @@ Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-fram # Override = { local = "../conflicting/version", override = true } [addresses] -faucet = "0x0" +# faucet = "0x0" +faucet = "0xf1785e2b449ca1be793d91777db04ad7cb6965b3bb029d6b2620203fbd324974" +# shared object 0xf536575bf1d50ef9a4872170466e04b373f399741dab4d1919fe709b86b58817 # Named addresses will be accessible in Move as `@name`. They're also exported: # for example, `std = "0x1"` is exported by the Standard Library. diff --git a/mover/0xhutou/code/task2/Faucet/sources/faucet.move b/mover/0xhutou/code/task2/Faucet/sources/faucet.move index 1914481af..abac415ef 100644 --- a/mover/0xhutou/code/task2/Faucet/sources/faucet.move +++ b/mover/0xhutou/code/task2/Faucet/sources/faucet.move @@ -1,5 +1,5 @@ /// Module: faucet -module faucet::FAUCET { +module faucet::faucet { use std::option; use sui::coin::{Self, Coin, TreasuryCap}; use sui::transfer; @@ -14,18 +14,18 @@ module faucet::FAUCET { /// Module initializer is called once on module publish. A treasury /// cap is sent to the publisher, who then controls minting and burning fun init(witness: FAUCET, ctx: &mut TxContext) { - let (faucet, metadata) = coin::create_currency(witness, 6, b"FAUCET", b"", b"", option::none(), ctx); + let (mint_id, metadata) = coin::create_currency(witness, 6, b"FAUCET", b"", b"", option::none(), ctx); transfer::public_freeze_object(metadata); - ///transfer::public_transfer(faucet, tx_context::sender(ctx)); - transfer::public_share_object(faucet) + //transfer::public_transfer(faucet, tx_context::sender(ctx)); + transfer::public_share_object(mint_id) } public entry fun mint( treasury_cap: &mut TreasuryCap, ctx: &mut TxContext, ) { - let faucet = coin::mint(treasury_cap, 10000000, ctx); - transfer::public_transfer(faucet, tx_context::sender(ctx)) + let faucet_coin = coin::mint(treasury_cap, 10000000, ctx); + transfer::public_transfer(faucet_coin, tx_context::sender(ctx)) } } diff --git a/mover/0xhutou/code/task2/MyCoin/Move.lock b/mover/0xhutou/code/task2/MyCoin/Move.lock index 839580658..08fc09e1d 100644 --- a/mover/0xhutou/code/task2/MyCoin/Move.lock +++ b/mover/0xhutou/code/task2/MyCoin/Move.lock @@ -2,7 +2,7 @@ [move] version = 2 -manifest_digest = "261673141F884D5F4233110A1EDFB4664F3B2B0689BBF247AF8D5D3990973CE2" +manifest_digest = "D6D5CF9FA36A0E71C891D2C234EBFC8F701BA798E54426D7321D4A38D1BAF8BC" deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" dependencies = [ { name = "Sui" }, @@ -21,7 +21,7 @@ dependencies = [ ] [move.toolchain-version] -compiler-version = "1.25.1" +compiler-version = "1.26.0" edition = "2024.beta" flavor = "sui" @@ -29,6 +29,6 @@ flavor = "sui" [env.mainnet] chain-id = "35834a8a" -original-published-id = "0x2edfbab877bf2f3bcb332dd72b462fdeea08ba1843507eabe3893ad6295b750e" -latest-published-id = "0x2edfbab877bf2f3bcb332dd72b462fdeea08ba1843507eabe3893ad6295b750e" +original-published-id = "0x3a360817c4c45c70d77bb633c8f80244d8a1542b69befdd05b842acfcf845c0c" +latest-published-id = "0x3a360817c4c45c70d77bb633c8f80244d8a1542b69befdd05b842acfcf845c0c" published-version = "1" diff --git a/mover/0xhutou/code/task2/MyCoin/Move.toml b/mover/0xhutou/code/task2/MyCoin/Move.toml index 329c334a7..9e1915d63 100644 --- a/mover/0xhutou/code/task2/MyCoin/Move.toml +++ b/mover/0xhutou/code/task2/MyCoin/Move.toml @@ -1,6 +1,7 @@ [package] name = "MyCoin" edition = "2024.beta" # edition = "legacy" to use legacy (pre-2024) Move +published-at = "0x3a360817c4c45c70d77bb633c8f80244d8a1542b69befdd05b842acfcf845c0c" # license = "" # e.g., "MIT", "GPL", "Apache 2.0" # authors = ["..."] # e.g., ["Joe Smith (joesmith@noemail.com)", "John Snow (johnsnow@noemail.com)"] @@ -19,7 +20,9 @@ Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-fram # Override = { local = "../conflicting/version", override = true } [addresses] -mycoin = "0x0" +# mycoin = "0x0" +mycoin = "0x3a360817c4c45c70d77bb633c8f80244d8a1542b69befdd05b842acfcf845c0c" +# treassurecap id 0x73637a8cad07d3e65a65dfd2e9694295c9677ce8cfaa71e7739abb4c471adb6e # Named addresses will be accessible in Move as `@name`. They're also exported: # for example, `std = "0x1"` is exported by the Standard Library. diff --git a/mover/0xhutou/code/task2/MyCoin/sources/mycoin.move b/mover/0xhutou/code/task2/MyCoin/sources/mycoin.move index 7ecec70a8..9b3a81cce 100644 --- a/mover/0xhutou/code/task2/MyCoin/sources/mycoin.move +++ b/mover/0xhutou/code/task2/MyCoin/sources/mycoin.move @@ -1,5 +1,5 @@ /// Module: mycoin -module mycoin::MYCOIN { +module mycoin::mycoin { use std::option; use sui::coin::{Self, Coin, TreasuryCap}; use sui::transfer; @@ -20,10 +20,11 @@ module mycoin::MYCOIN { } public entry fun mint( - treasury_cap: &mut TreasuryCap, - ctx: &mut TxContext, + treasury_cap: &mut TreasuryCap, + amount: u64, + ctx: &mut TxContext ) { - let my_coin = coin::mint(treasury_cap, 10000000, ctx); + let my_coin = coin::mint(treasury_cap, amount, ctx); transfer::public_transfer(my_coin, tx_context::sender(ctx)) } diff --git a/mover/0xhutou/code/task3/myfirstnft/Move.lock b/mover/0xhutou/code/task3/myfirstnft/Move.lock new file mode 100644 index 000000000..18218c2b1 --- /dev/null +++ b/mover/0xhutou/code/task3/myfirstnft/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "FE8F94C0A9E16B1E19E18EE82A958B634601746FC4C39ECF3B496642BA79CEC8" +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.29.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x700945ac0913a6f8659d0e440857fb74fa0959d9c7003501d8b311f7536978a8" +latest-published-id = "0x700945ac0913a6f8659d0e440857fb74fa0959d9c7003501d8b311f7536978a8" +published-version = "1" + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x6e30e2e240c97917fd2b7c7ca5a591f2ca79e74fe2e1092b413687ea88adc230" +latest-published-id = "0x6e30e2e240c97917fd2b7c7ca5a591f2ca79e74fe2e1092b413687ea88adc230" +published-version = "1" diff --git a/mover/0xhutou/code/task3/myfirstnft/Move.toml b/mover/0xhutou/code/task3/myfirstnft/Move.toml new file mode 100644 index 000000000..e0227630b --- /dev/null +++ b/mover/0xhutou/code/task3/myfirstnft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "myfirstnft" +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] +myfirstnft = "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/0xhutou/code/task3/myfirstnft/sources/myfirstnft.move b/mover/0xhutou/code/task3/myfirstnft/sources/myfirstnft.move new file mode 100644 index 000000000..188ce9e83 --- /dev/null +++ b/mover/0xhutou/code/task3/myfirstnft/sources/myfirstnft.move @@ -0,0 +1,68 @@ +/// Module: myfirstnft +module myfirstnft::myfirstnft { + + use sui::tx_context::{sender}; + use std::string::{utf8, String}; + use sui::package; + use sui::display; + + public struct HuTou has key, store { + id: UID, + name: String, + image_url: String, + } + + /// One-Time-Witness for the module. + public struct MYFIRSTNFT has drop {} + + fun init(otw: MYFIRSTNFT, ctx: &mut TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"link"), + utf8(b"image_url"), + utf8(b"description"), + utf8(b"project_url"), + utf8(b"creator"), + ]; + + let values = vector[ + // For `name` one can use the `Hero.name` property + utf8(b"HuTou"), + // For `link` one can build a URL using an `id` property + utf8(b"Under construction!"), + // For `image_url` use an IPFS template + `image_url` property. + utf8(b"ipfs://{image_url}}"), + // Description is static for all `Hero` objects. + utf8(b"HuTou's first nft!"), + // Project URL is usually static + utf8(b"Under construction!"), + // Creator field can be any + utf8(b"HuTou") + ]; + + // Claim the `Publisher` for the package! + let publisher = package::claim(otw, ctx); + + // Get a new `Display` object for the `Hero` type. + let mut display = display::new_with_fields( + &publisher, keys, values, ctx + ); + + // Commit first version of `Display` to apply changes. + display::update_version(&mut display); + + transfer::public_transfer(publisher, sender(ctx)); + transfer::public_transfer(display, sender(ctx)); + } + + public entry fun mint(name: String, image_url: String, ctx: &mut TxContext) { + let id = object::new(ctx); + transfer::public_transfer(HuTou { id, name, image_url },sender(ctx)); + } + + public entry fun update_imageurl (self: &mut HuTou, image_url: String) { + self.image_url = image_url; + } + +} + diff --git a/mover/0xhutou/code/task3/myfirstnft/tests/myfirstnft_tests.move b/mover/0xhutou/code/task3/myfirstnft/tests/myfirstnft_tests.move new file mode 100644 index 000000000..fe143d905 --- /dev/null +++ b/mover/0xhutou/code/task3/myfirstnft/tests/myfirstnft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module myfirstnft::myfirstnft_tests { + // uncomment this line to import the module + // use myfirstnft::myfirstnft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_myfirstnft() { + // pass + } + + #[test, expected_failure(abort_code = ::myfirstnft::myfirstnft_tests::ENotImplemented)] + fun test_myfirstnft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/0xhutou/code/task4/winorloss/Move.lock b/mover/0xhutou/code/task4/winorloss/Move.lock new file mode 100644 index 000000000..a8e3045fa --- /dev/null +++ b/mover/0xhutou/code/task4/winorloss/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "6A773DAC75508F81BAB797954A51DED62E07FDB5CA905DEECCDEA03CEA687A9B" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Faucet" }, + { name = "Sui" }, +] + +[[move.package]] +name = "Faucet" +source = { local = "../../task2/Faucet" } + +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.25.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "bd665407" +original-published-id = "0x70399eaafab25d70c790a021137aef094952753f4532ad5c4fa079ee2f3ff7a1" +latest-published-id = "0x70399eaafab25d70c790a021137aef094952753f4532ad5c4fa079ee2f3ff7a1" +published-version = "1" diff --git a/mover/0xhutou/code/task4/winorloss/Move.toml b/mover/0xhutou/code/task4/winorloss/Move.toml new file mode 100644 index 000000000..7da9cd68b --- /dev/null +++ b/mover/0xhutou/code/task4/winorloss/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "winorloss" +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" } +Faucet = { local = "../../task2/Faucet" } + +# 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] +winorloss = "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/0xhutou/code/task4/winorloss/sources/winorloss.move b/mover/0xhutou/code/task4/winorloss/sources/winorloss.move new file mode 100644 index 000000000..59fba00c5 --- /dev/null +++ b/mover/0xhutou/code/task4/winorloss/sources/winorloss.move @@ -0,0 +1,65 @@ +/// Module: winorloss +module winorloss::winorloss { + ///use sui::transfer::transfer; + use sui::balance::{Self, Balance}; + use sui::coin::{Self,Coin}; + use faucet::faucet::FAUCET; + use sui::random::{Self, Random}; + use sui::tx_context::sender; + use sui::transfer::{public_transfer, share_object}; + + const EOverBalance: u64 = 0; + const EOnlyOneFAUCET: u64 = 1; + const EVaultIsEmpty: u64 = 2; + + + ///game vault + public struct Vault has key { + id: UID, + faucetbalance: Balance, + } + + public struct AdminCap has key { + id: UID + } + + fun init(ctx: &mut TxContext) { + let admincap = AdminCap {id: object::new(ctx)}; + let vault = Vault {id: object::new(ctx), faucetbalance: balance::zero()}; + + share_object(vault); + + transfer::transfer(admincap, sender(ctx)); + } + + public entry fun deposit(_: &AdminCap, vault: &mut Vault, faucet: Coin, _: &mut TxContext){ + let deposit_amount = coin::into_balance(faucet); + balance::join(&mut vault.faucetbalance, deposit_amount); + } + + public entry fun withdral(_: &AdminCap, vault: &mut Vault, amount: u64, ctx: &mut TxContext){ + assert!(amount <= balance::value(&vault.faucetbalance), EOverBalance ); + let withdral_amount = balance::split(&mut vault.faucetbalance, amount); + public_transfer(coin::from_balance(withdral_amount, ctx), sender(ctx)); + } + + entry fun gameplay(r: &Random, vault: &mut Vault, inputcoin: Coin, guess: bool, ctx: &mut TxContext){ + + // check_if_the_vault_balance_is_enough_to_pay_for_winner + assert!(balance::value(&vault.faucetbalance) >= 10000000, EVaultIsEmpty); + + let balance_dewrap = coin::into_balance(inputcoin); + assert!(balance::value(&balance_dewrap) == 10000000, EOnlyOneFAUCET); + balance::join(&mut vault.faucetbalance, balance_dewrap); + + + let mut generator = random::new_generator(r, ctx); + let random_result = random::generate_bool(&mut generator); + if (guess == random_result) + { + let winback = balance::split(&mut vault.faucetbalance, 20000000); + public_transfer(coin::from_balance(winback, ctx), sender(ctx)); + }; + } + +} diff --git a/mover/0xhutou/code/task4/winorloss/tests/winorloss_tests.move b/mover/0xhutou/code/task4/winorloss/tests/winorloss_tests.move new file mode 100644 index 000000000..6c870e228 --- /dev/null +++ b/mover/0xhutou/code/task4/winorloss/tests/winorloss_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module winorloss::winorloss_tests { + // uncomment this line to import the module + // use winorloss::winorloss; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_winorloss() { + // pass + } + + #[test, expected_failure(abort_code = ::winorloss::winorloss_tests::ENotImplemented)] + fun test_winorloss_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/0xhutou/code/task5/mycoin_faucet/Move.lock b/mover/0xhutou/code/task5/mycoin_faucet/Move.lock new file mode 100644 index 000000000..dcd73fa53 --- /dev/null +++ b/mover/0xhutou/code/task5/mycoin_faucet/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "1961D7F29D0A8F3D129F07359A3694309EA50645B50CBDB7B1459916A15EBF37" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "MyCoin" }, + { 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 = "MyCoin" +source = { local = "../../task2/MyCoin" } + +dependencies = [ + { name = "Sui" }, +] + +[[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.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xad7798231f334daf897746c83bbe286877ef7e5bb5dfb811cf19bf9c438cfd4a" +latest-published-id = "0xad7798231f334daf897746c83bbe286877ef7e5bb5dfb811cf19bf9c438cfd4a" +published-version = "1" diff --git a/mover/0xhutou/code/task5/mycoin_faucet/Move.toml b/mover/0xhutou/code/task5/mycoin_faucet/Move.toml new file mode 100644 index 000000000..687cddcc7 --- /dev/null +++ b/mover/0xhutou/code/task5/mycoin_faucet/Move.toml @@ -0,0 +1,42 @@ +[package] +name = "mycoin_faucet" +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" } +MyCoin = { local = "../../task2/MyCoin" } + +# 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] +mycoin_faucet = "0x0" + +# facet id = 0x1301149590c2e28a2d799c21937a6a9b55e03ecd3d6f26c6a6e05fc075b3e49c +# pkg id = 0xad7798231f334daf897746c83bbe286877ef7e5bb5dfb811cf19bf9c438cfd4a +# admincap id = 0x432090b4cf9f4f76e3e7391f8314c095be57610d99060386da2e7e70f79e0fe0 + +# 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/0xhutou/code/task5/mycoin_faucet/sources/mycoin_faucet.move b/mover/0xhutou/code/task5/mycoin_faucet/sources/mycoin_faucet.move new file mode 100644 index 000000000..6a524b33d --- /dev/null +++ b/mover/0xhutou/code/task5/mycoin_faucet/sources/mycoin_faucet.move @@ -0,0 +1,40 @@ +module mycoin_faucet::mycoin_faucet { + // use faucet::faucet::FAUCET; + use mycoin::mycoin::MYCOIN; + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Balance}; + use sui::tx_context::sender; + use sui::transfer::{public_transfer, share_object}; + + const EOverBalance: u64 = 0; + + public struct MyCoinFaucet has key { + id : UID, + mycoinbalance: Balance, + } + + public struct AdminCap has key { + id: UID, + } + + fun init(ctx: &mut TxContext){ + let shared_faucet_pool = MyCoinFaucet {id: object::new(ctx),mycoinbalance: balance::zero()}; + share_object(shared_faucet_pool); + + let admincap = AdminCap {id: object::new(ctx)}; + transfer::transfer(admincap, sender(ctx)); + } + + public entry fun mycoinfaucet(faucet_pool: &mut MyCoinFaucet, ctx: &mut TxContext){ + assert!(balance::value(&faucet_pool.mycoinbalance) <= 10000000 , EOverBalance ); + let withdral_amount = balance::split(&mut faucet_pool.mycoinbalance, 10000000); + public_transfer(coin::from_balance(withdral_amount, ctx), sender(ctx)); + } + + public entry fun deposit_mycoin(_:&AdminCap, faucet_pool: &mut MyCoinFaucet, deposit_coin: Coin, _: &mut TxContext){ + let deposit_amount = coin::into_balance(deposit_coin); + balance::join(&mut faucet_pool.mycoinbalance, deposit_amount); + } + +} + diff --git a/mover/0xhutou/code/task5/mycoin_faucet/tests/mycoin_faucet_tests.move b/mover/0xhutou/code/task5/mycoin_faucet/tests/mycoin_faucet_tests.move new file mode 100644 index 000000000..0f9147f87 --- /dev/null +++ b/mover/0xhutou/code/task5/mycoin_faucet/tests/mycoin_faucet_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module mycoin_faucet::mycoin_faucet_tests { + // uncomment this line to import the module + // use mycoin_faucet::mycoin_faucet; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_mycoin_faucet() { + // pass + } + + #[test, expected_failure(abort_code = ::mycoin_faucet::mycoin_faucet_tests::ENotImplemented)] + fun test_mycoin_faucet_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/0xhutou/code/task5/swap0xhutou/Move.lock b/mover/0xhutou/code/task5/swap0xhutou/Move.lock new file mode 100644 index 000000000..a79781bd2 --- /dev/null +++ b/mover/0xhutou/code/task5/swap0xhutou/Move.lock @@ -0,0 +1,52 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C531AA1B0EFFF65C740077341AF37EC32AD75AC7B2A7D61B508C063F72B56A17" +deps_digest = "060AD7E57DFB13104F21BE5F5C3759D03F0553FC3229247D9A7A6B45F50D03A3" +dependencies = [ + { name = "Faucet" }, + { name = "MyCoin" }, + { name = "Sui" }, +] + +[[move.package]] +name = "Faucet" +source = { local = "../../task2/Faucet" } + +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 = "MyCoin" +source = { local = "../../task2/MyCoin" } + +dependencies = [ + { name = "Sui" }, +] + +[[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.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x0c33bf65f7599cacd775ac183184d713db9042d6a23b26ab3023e3031dc877f2" +latest-published-id = "0x0c33bf65f7599cacd775ac183184d713db9042d6a23b26ab3023e3031dc877f2" +published-version = "1" diff --git a/mover/0xhutou/code/task5/swap0xhutou/Move.toml b/mover/0xhutou/code/task5/swap0xhutou/Move.toml new file mode 100644 index 000000000..c4add9df0 --- /dev/null +++ b/mover/0xhutou/code/task5/swap0xhutou/Move.toml @@ -0,0 +1,43 @@ +[package] +name = "swap0xhutou" +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" } +Faucet = { local = "../../task2/Faucet" } +MyCoin = { local = "../../task2/MyCoin" } + +# 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] +swap0xhutou = "0x0" + +# pkg id: 0x0c33bf65f7599cacd775ac183184d713db9042d6a23b26ab3023e3031dc877f2 +# admincap id: 0x1cef6f73526fc5744de2c3b82433b698a97db7cb011f2f3c0eaaac5c6ffcf688 +# swappool id: 0x688aa3ccc40d11fd1e1277a0fa64f97a78226a0902bfa16c4b58cf3679470f1c + +# 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/0xhutou/code/task5/swap0xhutou/sources/swap0xhutou.move b/mover/0xhutou/code/task5/swap0xhutou/sources/swap0xhutou.move new file mode 100644 index 000000000..4eec06a78 --- /dev/null +++ b/mover/0xhutou/code/task5/swap0xhutou/sources/swap0xhutou.move @@ -0,0 +1,79 @@ +/// Module: swap0xhutou +module swap0xhutou::swap0xhutou { + use faucet::faucet::FAUCET; + use mycoin::mycoin::MYCOIN; + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Balance}; + use sui::tx_context::sender; + use sui::transfer::{public_transfer, share_object}; + + const EOverBalance: u64 = 0; + + public struct SwapPool has key { + id: UID, + faucetbalance: Balance, + mycoinbalance: Balance, + } + + public struct AdminCap has key { + id: UID, + } + + fun init(ctx: &mut TxContext) { + let admincap = AdminCap {id: object::new(ctx)}; + let pool = SwapPool {id: object::new(ctx), faucetbalance: balance::zero(), mycoinbalance: balance::zero()}; + + share_object(pool); + + transfer::transfer(admincap, sender(ctx)); + } + + public entry fun deposit_faucet(_: &AdminCap, pool: &mut SwapPool, faucet: Coin, _: &mut TxContext){ + let deposit_amount = coin::into_balance(faucet); + balance::join(&mut pool.faucetbalance, deposit_amount); + } + + public entry fun deposit_mycoin(_: &AdminCap, pool: &mut SwapPool, mycoin: Coin, _: &mut TxContext){ + let deposit_amount = coin::into_balance(mycoin); + balance::join(&mut pool.mycoinbalance, deposit_amount); + } + + public entry fun withdral_faucet(_: &AdminCap, pool: &mut SwapPool, amount: u64, ctx: &mut TxContext){ + assert!(amount <= balance::value(&pool.faucetbalance), EOverBalance ); + let withdral_amount = balance::split(&mut pool.faucetbalance, amount); + public_transfer(coin::from_balance(withdral_amount, ctx), sender(ctx)); + } + + public entry fun withdral_mycoin(_: &AdminCap, pool: &mut SwapPool, amount: u64, ctx: &mut TxContext){ + assert!(amount <= balance::value(&pool.mycoinbalance), EOverBalance ); + let withdral_amount = balance::split(&mut pool.mycoinbalance, amount); + public_transfer(coin::from_balance(withdral_amount, ctx), sender(ctx)); + } + + public entry fun swap_faucet_mycoin(pool: &mut SwapPool, faucet: Coin, ctx: &mut TxContext) { + // swap rate, 1:1 + let swap_balance_amount = coin::into_balance(faucet); + let swap_amount = balance::value(&swap_balance_amount); + assert!(swap_amount <= balance::value(&pool.mycoinbalance), EOverBalance ); + + balance::join(&mut pool.faucetbalance, swap_balance_amount); + + let swap_balance_out = balance::split(&mut pool.mycoinbalance, swap_amount); + public_transfer(coin::from_balance(swap_balance_out, ctx), sender(ctx)); + } + + public entry fun swap_mycoin_faucet(pool: &mut SwapPool, mycoin: Coin, ctx: &mut TxContext) { + // swap rate, 1:1 + let swap_balance_in = coin::into_balance(mycoin); + let swap_amount = balance::value(&swap_balance_in); + assert!(swap_amount <= balance::value(&pool.faucetbalance), EOverBalance ); + + balance::join(&mut pool.mycoinbalance, swap_balance_in); + + let swap_balance_out = balance::split(&mut pool.faucetbalance, swap_amount); + public_transfer(coin::from_balance(swap_balance_out, ctx), sender(ctx)); + } + + +} + diff --git a/mover/0xhutou/code/task5/swap0xhutou/tests/swap0xhutou_tests.move b/mover/0xhutou/code/task5/swap0xhutou/tests/swap0xhutou_tests.move new file mode 100644 index 000000000..e024b6f10 --- /dev/null +++ b/mover/0xhutou/code/task5/swap0xhutou/tests/swap0xhutou_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module swap0xhutou::swap0xhutou_tests { + // uncomment this line to import the module + // use swap0xhutou::swap0xhutou; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_swap0xhutou() { + // pass + } + + #[test, expected_failure(abort_code = ::swap0xhutou::swap0xhutou_tests::ENotImplemented)] + fun test_swap0xhutou_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/0xhutou/readme.md b/mover/0xhutou/readme.md index defe17f34..48b1f411d 100644 --- a/mover/0xhutou/readme.md +++ b/mover/0xhutou/readme.md @@ -29,14 +29,20 @@ - [] Faucet mint hash2 : 8BzWKQ8E7GFWoRmsX5zbdcDZw3V6priGsfDDtbZUWZ51 ## 03 move NFT -- [] nft package id : -- [] nft object id : -- [] 转账 nft hash: +- [] nft package id : 0x700945ac0913a6f8659d0e440857fb74fa0959d9c7003501d8b311f7536978a8 +- [] nft object id : 0x018a7dd60b06e58a63e96728f529ac3a9cb376c887be6a34ebb74e9c6f67796e +- [] 图片是Pinata上传到ipfs服务器的,但是不知道为什么在钱包里不显示 +- [] 转账 nft hash: Hq3mwRp11graqzqXY5Ccx3QSqYSrtmgzDP9pV7L5gJqX ## 04 Move Game -- [] game package id : -- [] call game hash: +- [] 任务说明:猜真假的游戏,调用的时候输入task2里发布的FAUCET代币(目前是定死的,需要输入一个10个FAUCET的object),并且猜测true或者false,然后利用随机数的object生成一个随机的布尔值,跟输入的猜测对比,如果赢了就翻倍返还,如果输了就把钱留在资金池。目前试了3次,两次赢一次输,游戏逻辑应该是没问题的,就是目前还比较粗糙,只能输入固定的10个FAUCET :)。 +- [] game package id : 0x70399eaafab25d70c790a021137aef094952753f4532ad5c4fa079ee2f3ff7a1 +- [] call game hash1: 8srjVTPadeZ4i5FEWU75eNhwcFmEJxMhaDACqpFgSY8 赢了 +- [] call game hash2: 5wJvuPRMoNvuUDM9xQviL1QBdyFR2yF4xVAFv8w4HhVq 赢了 +- [] call game hash3: AHv4A8mukA12SNbjbzW4C48vDr1nPUFoF37otY5isfx 输了 ## 05 Move Swap -- [] swap package id : -- [] call swap hash: +- [] 任务说明:faucet本身是公开mint的,mycoin是只有发布者才能mint,但是swap合约一开始忘记写mycoin的水龙头了,另开一张合约写了一个mycoin的水龙头,水龙头pkg id: 0xad7798231f334daf897746c83bbe286877ef7e5bb5dfb811cf19bf9c438cfd4a, 函数为mycoinfaucet,参数为水龙头的pool id: 0x1301149590c2e28a2d799c21937a6a9b55e03ecd3d6f26c6a6e05fc075b3e49c,水龙头里已经预充了1亿个MYCOIN,单次执行水龙头获得10个MYCOIN。 +- [] swap package id : 0x0c33bf65f7599cacd775ac183184d713db9042d6a23b26ab3023e3031dc877f2 +- [] call swap hash1 (10FAUCET -> 10MYCOIN) : FTJj6cua64cDBBEePhr6aQSaBmBTEZnye7RU2HH8TSiZ +- [] call swap hash2 (10MYCOIN -> 10FAUCET) : CJzCwpZhUQEsGd97Pmh5pcTjJVtjcaKjJdSE4d1K9827 diff --git a/mover/0xweb-3/code/readme.md b/mover/0xweb-3/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/0xweb-3/images/move_version.jpg b/mover/0xweb-3/images/move_version.jpg new file mode 100644 index 000000000..118f45494 Binary files /dev/null and b/mover/0xweb-3/images/move_version.jpg differ diff --git a/mover/0xweb-3/images/pake_id.jpg b/mover/0xweb-3/images/pake_id.jpg new file mode 100644 index 000000000..f3df9416b Binary files /dev/null and b/mover/0xweb-3/images/pake_id.jpg differ diff --git a/mover/0xweb-3/notes/readme.md b/mover/0xweb-3/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/0xweb-3/readme.md b/mover/0xweb-3/readme.md new file mode 100644 index 000000000..c3f23e15e --- /dev/null +++ b/mover/0xweb-3/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xf9143f4063a803216b6f7dd741c65c7a4ba0ef5da4cae095375a5a6ee6c59107` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `0xweb-3` + +## 个人简介 +- 工作经验: 7年 +- 技术栈: `golang` `python` `solidity` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,有部分钱包开发经验,熟悉solidity编程 +- 联系方式: tg: `17612724518` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.27.2-homebrew +- [x] Sui钱包截图: ![Sui钱包截图](./images/move_version.jpg) +- [x] package id: 0x1b20d28de02575904854a7d38e162c628bc6513b51729860007e23dc807489c8 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/pake_id.jpg) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/11532d/images/package id.png b/mover/11532d/images/package id.png new file mode 100644 index 000000000..1989e5dac Binary files /dev/null and b/mover/11532d/images/package id.png differ diff --git "a/mover/11532d/images/sui\351\222\261\345\214\205.png" "b/mover/11532d/images/sui\351\222\261\345\214\205.png" new file mode 100644 index 000000000..77f5402d1 Binary files /dev/null and "b/mover/11532d/images/sui\351\222\261\345\214\205.png" differ diff --git a/mover/11532d/readme.md b/mover/11532d/readme.md new file mode 100644 index 000000000..0af333f49 --- /dev/null +++ b/mover/11532d/readme.md @@ -0,0 +1,53 @@ +## 基本信息 +- Sui钱包地址: `0xe15e4705e1fbfbc131bb737df1ebdb6755f7c433724793513041d8946df13448` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `11532d` + +## 个人简介 +- 工作经验: 2年 +- 技术栈: `JAVA` +- 多年大学教书育人、误人子弟、为人师婊 +- 联系方式: Discord: `jokers1069` + +## 任务 + +## 01 hello move +- [] Sui cli version:sui 1.28.4-fc0623927416 +- [] Sui钱包截图: ![Sui钱包截图](images\sui钱包.png) +- [] package id: 0x40d6176f07920442d66daa3b7bc7ce6639cf35823074cf79dc618e2d422fc6e4 +- [] package id 在 scan上的查看截图:![Scan截图](images\package id.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/11532d/task1/Move.lock b/mover/11532d/task1/Move.lock new file mode 100644 index 000000000..11670e58d --- /dev/null +++ b/mover/11532d/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "23C730475A68F1E6BEDDB2CD78A3EB131C4A59425643F732B34CA8F439B08D68" +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.28.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x70c6df6a7d28db520b1e8d49d0dc1ef3ee9459321a0cd8f16a5a1a5b944ac782" +latest-published-id = "0x70c6df6a7d28db520b1e8d49d0dc1ef3ee9459321a0cd8f16a5a1a5b944ac782" +published-version = "1" diff --git a/mover/11532d/task1/Move.toml b/mover/11532d/task1/Move.toml new file mode 100644 index 000000000..f6bf62a02 --- /dev/null +++ b/mover/11532d/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello" +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] +hello = "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/11532d/task1/sources/hello.move b/mover/11532d/task1/sources/hello.move new file mode 100644 index 000000000..1d5c7fdff --- /dev/null +++ b/mover/11532d/task1/sources/hello.move @@ -0,0 +1,21 @@ +module hello::hello { + use sui::object::{Self, + }; + use sui::tx_context::{Self, TxContext}; + use std::string::{Self, String}; + use sui::transfer; + + public struct Hello has key { + id: UID, + str: String, + } + + public fun say_hello(ctx: &mut TxContext) { + let word = Hello { + id: object::new(ctx), + str: string::utf8(b"11532d"), + }; + transfer::transfer(word, tx_context::sender(ctx)); + } +} + diff --git a/mover/11532d/task1/test.sh b/mover/11532d/task1/test.sh new file mode 100644 index 000000000..744fe6044 --- /dev/null +++ b/mover/11532d/task1/test.sh @@ -0,0 +1,7 @@ +curl --location --request POST 'https://faucet.testnet.sui.io/gas' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "FixedAmountRequest": { + "recipient": "0x40d6176f07920442d66daa3b7bc7ce6639cf35823074cf79dc618e2d422fc6e4" + } +}' \ No newline at end of file diff --git a/mover/11532d/task1/tests/hello_tests.move b/mover/11532d/task1/tests/hello_tests.move new file mode 100644 index 000000000..34dfcfb57 --- /dev/null +++ b/mover/11532d/task1/tests/hello_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello::hello_tests { + // uncomment this line to import the module + // use hello::hello; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello() { + // pass + } + + #[test, expected_failure(abort_code = ::hello::hello_tests::ENotImplemented)] + fun test_hello_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/1473303013/images/sui.png b/mover/1473303013/images/sui.png new file mode 100644 index 000000000..0275ca93c Binary files /dev/null and b/mover/1473303013/images/sui.png differ diff --git a/mover/1473303013/images/sui_scan.png b/mover/1473303013/images/sui_scan.png new file mode 100644 index 000000000..7c5c0ee27 Binary files /dev/null and b/mover/1473303013/images/sui_scan.png differ diff --git a/mover/1473303013/images/task3.png b/mover/1473303013/images/task3.png new file mode 100644 index 000000000..8da91a2db Binary files /dev/null and b/mover/1473303013/images/task3.png differ diff --git a/mover/1473303013/images/task7.png b/mover/1473303013/images/task7.png new file mode 100644 index 000000000..4066b545b Binary files /dev/null and b/mover/1473303013/images/task7.png differ diff --git a/mover/1473303013/readme.md b/mover/1473303013/readme.md new file mode 100644 index 000000000..3bd840f2a --- /dev/null +++ b/mover/1473303013/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xedbeda6da126d77c44399963581ee7279730f80dbd086764f7c9de15ee42ad45` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `1473303013` + +## 个人简介 +- 工作经验: 2年 +- 技术栈: 前端 +> 重要提示 请认真写自己的简介 +- 前端开发,目前在学习 web3 开发 +- 联系方式: `1473303013@qq.com` + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.27.0 +- [x] Sui钱包截图: ![Sui钱包截图](./images/sui.png) +- [x] package id: 0x1f20646979445d9826058fe458a7cc13e0dd2831f9af7c4f947564588f7cf4a6 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/sui_scan.png) + +## 02 move coin +- [x] My Coin package id : 0xb0687b83e5d37b7f3e27474ecca0a89b8871699fcd1869a845c172a56e52803d +- [x] Faucet package id : 0x4b28c5dac3adf3d065e7a05155cc2babfbcb42c2b7cfdf13a4fc7034cf9787cd +- [x] 转账 `My Coin` hash: 4Jdju4Rbhjy34QgEtY4bQFX5c7USALvtT9uB3GLLwMaY +- [x] `Faucet Coin` address1 mint hash: 4RCn9Jj7b1tUt4HAuvZYSNdLBztYyjZxbEvYAgkEe675 +- [x] `Faucet Coin` address2 mint hash: B22GzB3aTGX4CXLFEh7V1qjZuCkBiVzKz1UZZ9qYfEZ5 + +## 03 move NFT +- [x] nft package id : 0x5cce67ffe9ae50ec6605035b183590a6d5bf88e0dbc514c1c877b16ab7cdf4ec +- [x] nft object id : 0x55647360d29342b8b0267ab780cc87ce34cec3f0158acac909a12e9e400bd027 +- [x] 转账 nft hash: 6JCAFBEBd8871PjU3mEasDL6mHZqRqjnMdoDMWqbDiD7 +- [x] scan上的NFT截图: ![Scan截图](./images/task3.png) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/task7.png) +- [x] flag hash : 4ZVe82vmU6axwvNJ4DbL7maXy3bNogS1Aewme7c4EKPU + +## 08 Move CTF Lets Move +- [x] proof : 19855736 +- [x] flag hash : CEdyrKMr4PEQifmrBj2q5y8XDSHe7bEn6LUyH2W3aBWZ diff --git a/mover/1473303013/task1/Move.lock b/mover/1473303013/task1/Move.lock new file mode 100644 index 000000000..dd9335cd9 --- /dev/null +++ b/mover/1473303013/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E03D8CCB139FD5AAA6C3DF53281A5C2A7267CEEDE876153DF254B492715959CB" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x1f20646979445d9826058fe458a7cc13e0dd2831f9af7c4f947564588f7cf4a6" +latest-published-id = "0x1f20646979445d9826058fe458a7cc13e0dd2831f9af7c4f947564588f7cf4a6" +published-version = "1" diff --git a/mover/1473303013/task1/Move.toml b/mover/1473303013/task1/Move.toml new file mode 100644 index 000000000..ade8a6442 --- /dev/null +++ b/mover/1473303013/task1/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "hello_move" +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/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] +hello_move = "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/1473303013/task1/sources/hello_move.move b/mover/1473303013/task1/sources/hello_move.move new file mode 100644 index 000000000..a6cecc2bc --- /dev/null +++ b/mover/1473303013/task1/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"a_1473303013"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/1473303013/task1/tests/hello_move_tests.move b/mover/1473303013/task1/tests/hello_move_tests.move new file mode 100644 index 000000000..07ea8bb3f --- /dev/null +++ b/mover/1473303013/task1/tests/hello_move_tests.move @@ -0,0 +1,17 @@ +// #[test_only] +// module hello_move::hello_move_tests { +// // uncomment this line to import the module +// // use hello_move::hello_move; +// +// const ENotImplemented: u64 = 0; +// +// #[test] +// fun test_hello_move() { +// hello_move::hello_move::hello_move(); +// } +// +// #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] +// fun test_hello_move_fail() { +// abort ENotImplemented +// } +// } diff --git a/mover/1473303013/task2/a_1473303013_coin/Move.lock b/mover/1473303013/task2/a_1473303013_coin/Move.lock new file mode 100644 index 000000000..1a0b0f556 --- /dev/null +++ b/mover/1473303013/task2/a_1473303013_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "1D0A53A1FA5B18B04B42F8CEDEAB25EF5C2A0DF3CE2E331E7FC2071B0D62389D" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xb0687b83e5d37b7f3e27474ecca0a89b8871699fcd1869a845c172a56e52803d" +latest-published-id = "0xb0687b83e5d37b7f3e27474ecca0a89b8871699fcd1869a845c172a56e52803d" +published-version = "1" diff --git a/mover/1473303013/task2/a_1473303013_coin/Move.toml b/mover/1473303013/task2/a_1473303013_coin/Move.toml new file mode 100644 index 000000000..fa0ffdffd --- /dev/null +++ b/mover/1473303013/task2/a_1473303013_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "a_1473303013_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://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] +a_1473303013_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/1473303013/task2/a_1473303013_coin/sources/a_1473303013_coin.move b/mover/1473303013/task2/a_1473303013_coin/sources/a_1473303013_coin.move new file mode 100644 index 000000000..9dbd5c222 --- /dev/null +++ b/mover/1473303013/task2/a_1473303013_coin/sources/a_1473303013_coin.move @@ -0,0 +1,32 @@ + +/// Module: a_1473303013_coin +module a_1473303013_coin::a_1473303013_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + public struct A_1473303013_COIN has drop {} + fun init(witness: A_1473303013_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, // 6 decimal places + b"a_1473303013 coin", // symbol + b"a_1473303013 coin", // name + b"Awesome Coint", // description + option:: none(), // icon + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} + diff --git a/mover/1473303013/task2/a_1473303013_faucet/Move.lock b/mover/1473303013/task2/a_1473303013_faucet/Move.lock new file mode 100644 index 000000000..bf95d9e57 --- /dev/null +++ b/mover/1473303013/task2/a_1473303013_faucet/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "6F517E9DACEBF21EFA8770E8A688C0C1AF3BAD69614655A88F6BCC68C5E31099" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x4b28c5dac3adf3d065e7a05155cc2babfbcb42c2b7cfdf13a4fc7034cf9787cd" +latest-published-id = "0x4b28c5dac3adf3d065e7a05155cc2babfbcb42c2b7cfdf13a4fc7034cf9787cd" +published-version = "1" diff --git a/mover/1473303013/task2/a_1473303013_faucet/Move.toml b/mover/1473303013/task2/a_1473303013_faucet/Move.toml new file mode 100644 index 000000000..c22c89dc6 --- /dev/null +++ b/mover/1473303013/task2/a_1473303013_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "a_1473303013_faucet" +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] +a_1473303013_faucet = "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/1473303013/task2/a_1473303013_faucet/sources/a_1473303013_faucet.move b/mover/1473303013/task2/a_1473303013_faucet/sources/a_1473303013_faucet.move new file mode 100644 index 000000000..7700b9d1b --- /dev/null +++ b/mover/1473303013/task2/a_1473303013_faucet/sources/a_1473303013_faucet.move @@ -0,0 +1,48 @@ +/// Module: a_1473303013_faucet +module a_1473303013_faucet::a_1473303013_faucet { + use sui::balance::{Balance}; + use sui::balance; + use sui::coin::{Self, TreasuryCap}; + public struct A_1473303013_FAUCET has drop {} + public struct PublicWallet has key { + id: UID, + coin: Balance, + faucet_amount: u64, + } + const AMOUNT: u64 = 10^12; + const EFaucetDry: u64 = 1; + #[allow(lint(share_owned))] + fun init(witness: A_1473303013_FAUCET, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 10, + b"A_1473303013 Faucet", + b"A_1473303013 Faucet", + b"Meme Coin", + option::none(), + ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + let wallet = PublicWallet { + id: object::new(ctx), + coin: balance::zero(), + faucet_amount: AMOUNT, + }; + transfer::share_object(wallet); + } + public entry fun mint_faucet( + treasury_cap: &mut TreasuryCap, + amount: u64, + wallet: &mut PublicWallet, + ctx: &mut TxContext) { + let coins = coin::mint(treasury_cap, amount, ctx); + balance::join(&mut wallet.coin, coin::into_balance(coins)); + } + public entry fun get_faucet(wallet: &mut PublicWallet, ctx: &mut TxContext) { + let balance_amount = balance::value(&wallet.coin); + assert!(balance_amount >= wallet.faucet_amount, EFaucetDry); + let mint_balance = balance::split(&mut wallet.coin, wallet.faucet_amount); + let faucet_coin = coin::from_balance(mint_balance, ctx); + transfer::public_transfer(faucet_coin, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/1473303013/task3/nft/Move.lock b/mover/1473303013/task3/nft/Move.lock new file mode 100644 index 000000000..c303e0a2a --- /dev/null +++ b/mover/1473303013/task3/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9D4FCF5807A34E3110DFBA44AD92FEFEC55EE3DE8CF58F3D302F55D3004E70D1" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x5cce67ffe9ae50ec6605035b183590a6d5bf88e0dbc514c1c877b16ab7cdf4ec" +latest-published-id = "0x5cce67ffe9ae50ec6605035b183590a6d5bf88e0dbc514c1c877b16ab7cdf4ec" +published-version = "1" diff --git a/mover/1473303013/task3/nft/Move.toml b/mover/1473303013/task3/nft/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/1473303013/task3/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/1473303013/task3/nft/sources/nft.move b/mover/1473303013/task3/nft/sources/nft.move new file mode 100644 index 000000000..19899f0f7 --- /dev/null +++ b/mover/1473303013/task3/nft/sources/nft.move @@ -0,0 +1,61 @@ +module nft::nft { + + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"a_1473303013"), + description: string::utf8(b"a_1473303013 NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/172864295?v=4" + ) + }; + transfer::public_transfer(nft, recipient); + } +} \ No newline at end of file diff --git a/mover/1473303013/task3/nft/tests/nft_tests.move b/mover/1473303013/task3/nft/tests/nft_tests.move new file mode 100644 index 000000000..1e3625fad --- /dev/null +++ b/mover/1473303013/task3/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/1pzq/code/readme.md b/mover/1pzq/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/1pzq/code/task1/Move.lock b/mover/1pzq/code/task1/Move.lock new file mode 100644 index 000000000..0fbf9f881 --- /dev/null +++ b/mover/1pzq/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2E267C18D553336099CDD31F7063857679825E46CD06EC67CC7F7FB0C20317C1" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x4e0ef8f21d643671e849e03bd5ad68eb6bf2f489c77717976116cb3ece7880be" +latest-published-id = "0x4e0ef8f21d643671e849e03bd5ad68eb6bf2f489c77717976116cb3ece7880be" +published-version = "1" diff --git a/mover/1pzq/code/task1/Move.toml b/mover/1pzq/code/task1/Move.toml new file mode 100644 index 000000000..e75e497eb --- /dev/null +++ b/mover/1pzq/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1" +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] +task1 = "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/1pzq/code/task1/sources/task1.move b/mover/1pzq/code/task1/sources/task1.move new file mode 100644 index 000000000..5ac37504b --- /dev/null +++ b/mover/1pzq/code/task1/sources/task1.move @@ -0,0 +1,19 @@ +module task1::hello { + use sui::object::{Self, UID}; + use sui::tx_context::{Self, TxContext}; + use std::string::{Self, String}; + use sui::transfer; + + public struct Hello has key { + id: UID, + str: String, + } + + public fun say_hello(ctx: &mut TxContext) { + let word = Hello { + id: object::new(ctx), + str: string::utf8(b"Hello your githubid"), + }; + transfer::transfer(word, tx_context::sender(ctx)); + } +} diff --git a/mover/1pzq/code/task1/tests/task1_tests.move b/mover/1pzq/code/task1/tests/task1_tests.move new file mode 100644 index 000000000..31fb8c1ac --- /dev/null +++ b/mover/1pzq/code/task1/tests/task1_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task1::task1_tests { + // uncomment this line to import the module + // use task1::task1; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task1() { + // pass + } + + #[test, expected_failure(abort_code = ::task1::task1_tests::ENotImplemented)] + fun test_task1_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/1pzq/code/task2/coinfacet/Move.lock b/mover/1pzq/code/task2/coinfacet/Move.lock new file mode 100644 index 000000000..6b976c14c --- /dev/null +++ b/mover/1pzq/code/task2/coinfacet/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "CB2C1B89FDD217A7F39235AF8A973C638FE27F14B1F262AF5A61F8DF4F7DBC8D" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x1e82eb8bcd4886bd004861c034725449882d8a25a25c94b17d41bb950522e869" +latest-published-id = "0x1e82eb8bcd4886bd004861c034725449882d8a25a25c94b17d41bb950522e869" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x7840c8e3c523f0a2f4e8795ff7ab8269eeda12be297b54f9ed9ce80aa178bccb" +latest-published-id = "0x7840c8e3c523f0a2f4e8795ff7ab8269eeda12be297b54f9ed9ce80aa178bccb" +published-version = "1" diff --git a/mover/1pzq/code/task2/coinfacet/Move.toml b/mover/1pzq/code/task2/coinfacet/Move.toml new file mode 100644 index 000000000..ba2122cfb --- /dev/null +++ b/mover/1pzq/code/task2/coinfacet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "coinfacet" +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] +coinfacet = "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/1pzq/code/task2/coinfacet/sources/coinfacet.move b/mover/1pzq/code/task2/coinfacet/sources/coinfacet.move new file mode 100644 index 000000000..b646c2a20 --- /dev/null +++ b/mover/1pzq/code/task2/coinfacet/sources/coinfacet.move @@ -0,0 +1,36 @@ +/// Module: coinfacet +module coinfacet::coinfacet { + + use sui::coin::{Self, TreasuryCap}; + use sui::tx_context::TxContext; + + public struct COINFACET has drop {} + + fun init(witness: COINFACET, ctx: &mut TxContext) { + let (mint_id, metadata) = coin::create_currency(witness, 6, b"COINFACET", b"", b"", std::option::none(), ctx); + transfer::public_freeze_object(metadata); + transfer::public_share_object(mint_id) + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + ctx: &mut TxContext, + ) { + let coinfacet_coin = coin::mint(treasury_cap, 10000000, ctx); + transfer::public_transfer(coinfacet_coin, tx_context::sender(ctx)) + } + +} +/* +Package: +0x7840c8e3c523f0a2f4e8795ff7ab8269eeda12be297b54f9ed9ce80aa178bccb + + +TreasuryCap: +0x8d9061370db68049ef268ac8c9566f15b827a1dfbe19332872db45477af6cb94 +ObjectType: 0x2::coin::TreasuryCap<0x7840c8e3c523f0a2f4e8795ff7ab8269eeda12be297b54f9ed9ce80aa178bccb::coinfacet::COINFACET> + +CoinMetadata: +0x46e95586f401866658384d5bfa363c49a886d25edcd95376ba7032b0272fbf45 +ObjectType: 0x2::coin::CoinMetadata<0x7840c8e3c523f0a2f4e8795ff7ab8269eeda12be297b54f9ed9ce80aa178bccb::coinfacet::COINFACET> +*/ diff --git a/mover/1pzq/code/task2/coinfacet/tests/coinfacet_tests.move b/mover/1pzq/code/task2/coinfacet/tests/coinfacet_tests.move new file mode 100644 index 000000000..0ab88f9c1 --- /dev/null +++ b/mover/1pzq/code/task2/coinfacet/tests/coinfacet_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module coinfacet::coinfacet_tests { + // uncomment this line to import the module + // use coinfacet::coinfacet; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_coinfacet() { + // pass + } + + #[test, expected_failure(abort_code = ::coinfacet::coinfacet_tests::ENotImplemented)] + fun test_coinfacet_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/1pzq/code/task2/my_coin/Move.lock b/mover/1pzq/code/task2/my_coin/Move.lock new file mode 100644 index 000000000..8936f3fd4 --- /dev/null +++ b/mover/1pzq/code/task2/my_coin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "0A4652D38CF3C3FDB79EC6C1C98FCFF7B2E933E12B84A1DA267DB28F66AFECE3" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x4c88555871f8dff31216f31cbe925952bf54be64eba4efb8edbb8965dc07426d" +latest-published-id = "0x4c88555871f8dff31216f31cbe925952bf54be64eba4efb8edbb8965dc07426d" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xe9f70ff13eefa964cdd63460da595d87048f974d62cb9aa92adcebc57998043b" +latest-published-id = "0xe9f70ff13eefa964cdd63460da595d87048f974d62cb9aa92adcebc57998043b" +published-version = "1" diff --git a/mover/1pzq/code/task2/my_coin/Move.toml b/mover/1pzq/code/task2/my_coin/Move.toml new file mode 100644 index 000000000..b9ca003f8 --- /dev/null +++ b/mover/1pzq/code/task2/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://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] +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/1pzq/code/task2/my_coin/sources/my_coin.move b/mover/1pzq/code/task2/my_coin/sources/my_coin.move new file mode 100644 index 000000000..ca453219b --- /dev/null +++ b/mover/1pzq/code/task2/my_coin/sources/my_coin.move @@ -0,0 +1,40 @@ +// Module: my_coin +module my_coin::my_coin { + use std::option; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct MY_COIN has drop {} + + fun init(witness: MY_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 2, + b"MY", + b"MYCOIN", + b"MY COIN", + option::none(), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + + } + + public entry fun mint(treasury_cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext){ + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} + +/* +Package 0xe9f70ff13eefa964cdd63460da595d87048f974d62cb9aa92adcebc57998043b +CoinMetadata 0xb5cbfad7b7b25d6c671b5f449ea5c3e90c743659970291914e1b56d1ff204962 +ObjectType: 0x2::coin::CoinMetadata<0xe9f70ff13eefa964cdd63460da595d87048f974d62cb9aa92adcebc57998043b::my_coin::MY_COIN> │ +TreasuryCap 0xd6133909f2e796df397d5826ee6c0375ed4e743ee1ba38f7bf26f06f607983fa +ObjectType: 0x2::coin::TreasuryCap<0xe9f70ff13eefa964cdd63460da595d87048f974d62cb9aa92adcebc57998043b::my_coin::MY_COIN> │ │ +*/ \ No newline at end of file diff --git a/mover/1pzq/code/task2/my_coin/tests/my_coin_tests.move b/mover/1pzq/code/task2/my_coin/tests/my_coin_tests.move new file mode 100644 index 000000000..4be556acf --- /dev/null +++ b/mover/1pzq/code/task2/my_coin/tests/my_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[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/1pzq/code/task3/my_nft/Move.lock b/mover/1pzq/code/task3/my_nft/Move.lock new file mode 100644 index 000000000..1e6c285db --- /dev/null +++ b/mover/1pzq/code/task3/my_nft/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9787EC7B3F0B631FD328C6E69F0E6D1B03DD3363C3819C95ACE51411F0B92394" +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.29.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x2248d5ab22fd89d3790742f6182307f53b3c42872e4b28147e8c749808ecf67e" +latest-published-id = "0x2248d5ab22fd89d3790742f6182307f53b3c42872e4b28147e8c749808ecf67e" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xae98f7099f2417d0a32e1089d6ea36f138926a62a7eba85f57cda01815a530cf" +latest-published-id = "0xae98f7099f2417d0a32e1089d6ea36f138926a62a7eba85f57cda01815a530cf" +published-version = "1" diff --git a/mover/1pzq/code/task3/my_nft/Move.toml b/mover/1pzq/code/task3/my_nft/Move.toml new file mode 100644 index 000000000..5d27afceb --- /dev/null +++ b/mover/1pzq/code/task3/my_nft/Move.toml @@ -0,0 +1,38 @@ +[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://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] +my_nft = "0x0" +nft_protocol = "0xbdd1811dd6e8feb2c7311d193bbf92cb45d3d6a8fb2b6ec60dc19adf20c18796" + +# 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/1pzq/code/task3/my_nft/sources/kite.move b/mover/1pzq/code/task3/my_nft/sources/kite.move new file mode 100644 index 000000000..9dd1b3496 --- /dev/null +++ b/mover/1pzq/code/task3/my_nft/sources/kite.move @@ -0,0 +1,74 @@ +module my_nft::kite { + use sui::tx_context::{sender, TxContext}; + use std::string::{utf8, String}; + use sui::transfer::public_transfer; + use sui::object::UID; + + use sui::package; + use sui::display; + + public struct Hero has key, store { + id: UID, + name: String, + image_url: String, + } + + public struct KITE has drop {} + + fun init(otw: KITE, ctx: &mut TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"link"), + utf8(b"image_url"), + utf8(b"description"), + utf8(b"project_url"), + utf8(b"creator"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://sui-heroes.io/hero/{id}"), + utf8(b"{image_url}"), + utf8(b"A true Hero of the Sui ecosystem!"), + utf8(b"https://sui-heroes.io"), + utf8(b"Unknown Sui Fan") + ]; + + let publisher = package::claim(otw, ctx); + + let mut display = display::new_with_fields( + &publisher, keys, values, ctx + ); + + display::update_version(&mut display); + + public_transfer(publisher, sender(ctx)); + public_transfer(display, sender(ctx)); + } + + public fun mint(name: String, image_url: String, ctx: &mut TxContext) { + let id = object::new(ctx); + transfer::public_transfer(Hero { id, name, image_url },sender(ctx)) + } + + public entry fun transfer_nft( + nft: Hero, + recipient: address, + _: &mut TxContext + ) { + transfer::public_transfer(nft, recipient); + } +} +/* +Transaction Digest: 41qRoqcNHKga4Pe5omDX1YXogBBecoWEuZ59f2WqnUZA + PackageID + +0xae98f7099f2417d0a32e1089d6ea36f138926a62a7eba85f57cda01815a530cf + +minthash 9nzkgf24R5orUQ62QUBADoQ9dMfmV4pcy78GvxscStmx + objectID1 0xb92d62ee0a1c32b128404dba3c79216d7de2e310f3210e4ab767845ce89e8215 + + + transferhash 94FEeT5PqGQcXL7dH9LRQzp4KszhRzwB9EhzZQFYPaC9 + +*/ \ No newline at end of file diff --git a/mover/1pzq/code/task3/my_nft/sources/my_nft.move b/mover/1pzq/code/task3/my_nft/sources/my_nft.move new file mode 100644 index 000000000..e54e2654a --- /dev/null +++ b/mover/1pzq/code/task3/my_nft/sources/my_nft.move @@ -0,0 +1,6 @@ +/* +/// Module: my_nft +module my_nft::my_nft { + +} +*/ diff --git a/mover/1pzq/code/task3/my_nft/tests/my_nft_tests.move b/mover/1pzq/code/task3/my_nft/tests/my_nft_tests.move new file mode 100644 index 000000000..5d3a60230 --- /dev/null +++ b/mover/1pzq/code/task3/my_nft/tests/my_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[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/1pzq/images/task1.jpg b/mover/1pzq/images/task1.jpg new file mode 100644 index 000000000..ecca48cd3 Binary files /dev/null and b/mover/1pzq/images/task1.jpg differ diff --git a/mover/1pzq/images/task11.jpg b/mover/1pzq/images/task11.jpg new file mode 100644 index 000000000..fd0799077 Binary files /dev/null and b/mover/1pzq/images/task11.jpg differ diff --git a/mover/1pzq/images/task21.jpg b/mover/1pzq/images/task21.jpg new file mode 100644 index 000000000..e9b50c4c4 Binary files /dev/null and b/mover/1pzq/images/task21.jpg differ diff --git a/mover/1pzq/images/task22.jpg b/mover/1pzq/images/task22.jpg new file mode 100644 index 000000000..062ed5aa8 Binary files /dev/null and b/mover/1pzq/images/task22.jpg differ diff --git a/mover/1pzq/images/task31.png b/mover/1pzq/images/task31.png new file mode 100644 index 000000000..abc7a2bd0 Binary files /dev/null and b/mover/1pzq/images/task31.png differ diff --git a/mover/1pzq/notes/readme.md b/mover/1pzq/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/1pzq/readme.md b/mover/1pzq/readme.md new file mode 100644 index 000000000..1e668e8b8 --- /dev/null +++ b/mover/1pzq/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xc4956ee079c47f7ff3a43477e61d65861820dc01082a62ecd9297f29b8ee8e94` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `1pzq` + +## 个人简介 +- 工作经验: 0年 +- 技术栈: `solidity` `react` `java` +> +- 目前为在校学生,希望通过学习move来进行更多智能合约的开发 +- 联系方式: WeChat:shepiroder + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.27.0-homebrew +- [x] Sui钱包截图: ![Sui钱包截图](./images/task1.jpg) +- [x] package id: 0x4e0ef8f21d643671e849e03bd5ad68eb6bf2f489c77717976116cb3ece7880be +- [x] package id 在 scan上的查看截图:![Scan截图](./images/task11.jpg) + +## 02 move coin +- [x] My Coin package id : 0xe9f70ff13eefa964cdd63460da595d87048f974d62cb9aa92adcebc57998043b +- [x] Faucet package id : 0x7840c8e3c523f0a2f4e8795ff7ab8269eeda12be297b54f9ed9ce80aa178bccb +- [x] 转账 `My Coin` hash:6CrDweobAXtiFqnQPc8HJdT9j6Gz28FMFzwwdQkvD6fx +- [x] `Faucet Coin` address1 mint hash:9dBmnUmXD5Ry5daYaV7LvKD7TT7wjdZNYhdiaFqPn2Nq +- [x] `Faucet Coin` address2 mint hash:DDnCwMynRpA6Ns8zgd93AQXrfnGAGk3PB23LjQFBMBTL + +## 03 move NFT +- [x] nft package id :0xae98f7099f2417d0a32e1089d6ea36f138926a62a7eba85f57cda01815a530cf +- [x] nft object id : 0xb92d62ee0a1c32b128404dba3c79216d7de2e310f3210e4ab767845ce89e8215 +- [x] 转账 nft hash:94FEeT5PqGQcXL7dH9LRQzp4KszhRzwB9EhzZQFYPaC9 +- [x] scan上的NFT截图:![Scan截图](./images/task31.png) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/321llljjjfff123/code/task2/facet_coin/Move.lock b/mover/321llljjjfff123/code/task2/facet_coin/Move.lock new file mode 100644 index 000000000..ad2940e15 --- /dev/null +++ b/mover/321llljjjfff123/code/task2/facet_coin/Move.lock @@ -0,0 +1,21 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "0595E329D36D26BB4F5791BE76BD85B1710D892813877993DAAA70B493D7166E" +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" }, +] diff --git a/mover/321llljjjfff123/code/task2/facet_coin/Move.toml b/mover/321llljjjfff123/code/task2/facet_coin/Move.toml new file mode 100644 index 000000000..d2fd89dd1 --- /dev/null +++ b/mover/321llljjjfff123/code/task2/facet_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "facet_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://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] +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/321llljjjfff123/code/task2/facet_coin/sources/facet_coin.move b/mover/321llljjjfff123/code/task2/facet_coin/sources/facet_coin.move new file mode 100644 index 000000000..bcb34f4ec --- /dev/null +++ b/mover/321llljjjfff123/code/task2/facet_coin/sources/facet_coin.move @@ -0,0 +1,47 @@ +module faucet_coin::MY_F_COIN { + use std::option; + use sui::object::{UID}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + use sui::object; + use sui::balance::{Self, Balance}; + + public struct MY_F_COIN has drop {} + public struct Wallet has key { + id: UID, + coin: Balance + } + + fun init(witness: MY_F_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, + b"WOOD", + b"", + b"", + option::none(), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + let wallet = Wallet { + id: object::new(ctx), + coin: balance::zero() + }; + transfer::share_object(wallet) + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + wallet: &mut Wallet, amount: u64, ctx: &mut TxContext + ) { + let c1 = coin::mint(treasury_cap, amount, ctx); + balance::join(&mut wallet.coin, coin::into_balance(c1)); + } + + public entry fun faucet(wallet: &mut Wallet, ctx: &mut TxContext) { + let c2 = coin::take(&mut wallet.coin, 5000, ctx); + transfer::public_transfer(c2, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/321llljjjfff123/code/task2/facet_coin/tests/facet_coin_tests.move b/mover/321llljjjfff123/code/task2/facet_coin/tests/facet_coin_tests.move new file mode 100644 index 000000000..3d17f3e88 --- /dev/null +++ b/mover/321llljjjfff123/code/task2/facet_coin/tests/facet_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module facet_coin::facet_coin_tests { + // uncomment this line to import the module + // use facet_coin::facet_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_facet_coin() { + // pass + } + + #[test, expected_failure(abort_code = facet_coin::facet_coin_tests::ENotImplemented)] + fun test_facet_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/321llljjjfff123/code/task2/my_coin/Move.lock b/mover/321llljjjfff123/code/task2/my_coin/Move.lock new file mode 100644 index 000000000..fe5d147ce --- /dev/null +++ b/mover/321llljjjfff123/code/task2/my_coin/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "0A4652D38CF3C3FDB79EC6C1C98FCFF7B2E933E12B84A1DA267DB28F66AFECE3" +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.22.0" +edition = "legacy" +flavor = "sui" diff --git a/mover/321llljjjfff123/code/task2/my_coin/Move.toml b/mover/321llljjjfff123/code/task2/my_coin/Move.toml new file mode 100644 index 000000000..b9ca003f8 --- /dev/null +++ b/mover/321llljjjfff123/code/task2/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://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] +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/321llljjjfff123/code/task2/my_coin/sources/my_coin.move b/mover/321llljjjfff123/code/task2/my_coin/sources/my_coin.move new file mode 100644 index 000000000..f4014e63a --- /dev/null +++ b/mover/321llljjjfff123/code/task2/my_coin/sources/my_coin.move @@ -0,0 +1,34 @@ +// Module: my_coin +module my_coin::my_coin { + use std::option; + // use sui::coin::{Self,Coin,TreasuryCap}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct MY_COIN has drop {} + + fun init(witness: MY_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 2, + b"MY", + b"MY COIN", + b"MY COIN", + option::none(), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + + } + + public entry fun mint(treasury_cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext){ + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} + diff --git a/mover/321llljjjfff123/code/task2/my_coin/tests/my_coin_tests.move b/mover/321llljjjfff123/code/task2/my_coin/tests/my_coin_tests.move new file mode 100644 index 000000000..32e7ef866 --- /dev/null +++ b/mover/321llljjjfff123/code/task2/my_coin/tests/my_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[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/321llljjjfff123/code/task3/Move.lock b/mover/321llljjjfff123/code/task3/Move.lock new file mode 100644 index 000000000..8b1617302 --- /dev/null +++ b/mover/321llljjjfff123/code/task3/Move.lock @@ -0,0 +1,21 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "247EFF100F0FA0D2BE4C50BC90A9783874571B2E201910EC7FBCDF495F96C65D" +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" }, +] diff --git a/mover/321llljjjfff123/code/task3/Move.toml b/mover/321llljjjfff123/code/task3/Move.toml new file mode 100644 index 000000000..10eaeecdf --- /dev/null +++ b/mover/321llljjjfff123/code/task3/Move.toml @@ -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] +nft_test = "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/321llljjjfff123/code/task3/sources/nft_test.move b/mover/321llljjjfff123/code/task3/sources/nft_test.move new file mode 100644 index 000000000..e9da22507 --- /dev/null +++ b/mover/321llljjjfff123/code/task3/sources/nft_test.move @@ -0,0 +1,77 @@ +module nft_test::devnet_nft { + use sui::url::{Self, Url}; + use std::string; + use sui::object::{Self, ID, UID}; + use sui::event; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct DevNetNFT has key, store { + id: UID, + name: string::String, + description: string::String, + url: Url, + } + + public struct NFTMinted has copy, drop { + object_id: ID, + creator: address, + name: string::String, + } + + + public fun name(nft: &DevNetNFT): &string::String { + &nft.name + } + + public fun description(nft: &DevNetNFT): &string::String { + &nft.description + } + + public fun url(nft: &DevNetNFT): &Url { + &nft.url + } + + + public entry fun mint_to_sender( + name: vector, + description: vector, + url: vector, + ctx: &mut TxContext + ) { + let sender = tx_context::sender(ctx); + let nft = DevNetNFT { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + url: url::new_unsafe_from_bytes(url) + }; + + event::emit(NFTMinted { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + public entry fun transfer( + nft: DevNetNFT, recipient: address, _: &mut TxContext + ) { + transfer::public_transfer(nft, recipient) + } + + public entry fun update_description( + nft: &mut DevNetNFT, + new_description: vector, + _: &mut TxContext + ) { + nft.description = string::utf8(new_description) + } + + public entry fun burn(nft: DevNetNFT, _: &mut TxContext) { + let DevNetNFT { id, name: _, description: _, url: _ } = nft; + object::delete(id) + } +} diff --git a/mover/321llljjjfff123/code/task3/tests/task3_tests.move b/mover/321llljjjfff123/code/task3/tests/task3_tests.move new file mode 100644 index 000000000..f931bedcc --- /dev/null +++ b/mover/321llljjjfff123/code/task3/tests/task3_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task3::task3_tests { + // uncomment this line to import the module + // use task3::task3; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task3() { + // pass + } + + #[test, expected_failure(abort_code = task3::task3_tests::ENotImplemented)] + fun test_task3_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/321llljjjfff123/readme.md b/mover/321llljjjfff123/readme.md index addbd818c..ca49985cc 100644 --- a/mover/321llljjjfff123/readme.md +++ b/mover/321llljjjfff123/readme.md @@ -19,17 +19,17 @@ https://github.com/321llljjjfff123 - [] package id 在 scan上的查看截图:![Scan截图](./images/scan上的查看截图.png) ## 02 move coin -- [] My Coin package id : -- [] Faucet package id : -- [] 转账 `My Coin` hash: -- [] `Faucet Coin` address1 mint hash: -- [] `Faucet Coin` address2 mint hash: +- [] My Coin package id : 0x24cff64767f0d2fb8414f46a1a50a66cb70fe3eba3d88e12018f947be0720a58 +- [] Faucet package id : 0x85b1dbc2eb7888905a704a3c66d5fc38b9d0f2a4da19a2de76494b0de1ac12dc0x85b1dbc2eb7888905a704a3c66d5fc38b9d0f2a4da19a2de76494b0de1ac12dc +- [] 转账 `My Coin` hash: https://suiscan.xyz/testnet/tx/5MaSpJHujniTgA9PUxCB2vXqgQiLkf8do3U5X1F3w7xf +- [] `Faucet Coin` address1 mint hash: nk75c33mk3B2Esi7RqTyyjBJVpNXfqAg4EMDfEAAnmC +- [] `Faucet Coin` address2 mint hash: 84wK2a3ipACH3gYSFePAHgDmC1M8qSxJ67rb3y7pCKar ## 03 move NFT -- [] nft package id : -- [] nft object id : +- [] nft package id :0xbf66e72c16353edc64c3fa3251fbf91e3e77a8ed808e0a5ce82c2a54aa6a955f +- [] nft object id : 0xd9bf34d46eb38e8d9ffda6365ccac86ea2f92b2d033193d10c5c1e92c15d148c - [] 转账 nft hash: -- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) +7qkAXBiVRfuhDwcpDoiMkxifbzvF4XwghsHGbFBjgpUv ## 04 Move Game - [] game package id : diff --git a/mover/3690/code/task2/coin/Move.lock b/mover/3690/code/task2/coin/Move.lock new file mode 100644 index 000000000..f801d0731 --- /dev/null +++ b/mover/3690/code/task2/coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "DC858649A59DC2BBC6E97EAD5FE7AEAB0390346A1461C7604DB35AC015E34302" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { local = "C:\\A\\sui-main\\crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { local = "C:\\A\\sui-main\\crates\\sui-framework\\packages\\sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.24.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "bd665407" +original-published-id = "0xd41ee11799a888d0d4bc08bf2fe0ece0937e974f5baeb066b6d1637251f877e1" +latest-published-id = "0xd41ee11799a888d0d4bc08bf2fe0ece0937e974f5baeb066b6d1637251f877e1" +published-version = "1" diff --git a/mover/3690/code/task2/coin/Move.toml b/mover/3690/code/task2/coin/Move.toml new file mode 100644 index 000000000..8dc772ccc --- /dev/null +++ b/mover/3690/code/task2/coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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 = { local = "C:/A/sui-main/crates/sui-framework/packages/sui-framework" } + +# 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] +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/3690/code/task2/coin/image/my_coin_hash.png b/mover/3690/code/task2/coin/image/my_coin_hash.png new file mode 100644 index 000000000..cb462ff93 Binary files /dev/null and b/mover/3690/code/task2/coin/image/my_coin_hash.png differ diff --git a/mover/3690/code/task2/coin/sources/faucet_coin.move b/mover/3690/code/task2/coin/sources/faucet_coin.move new file mode 100644 index 000000000..0f3bb7777 --- /dev/null +++ b/mover/3690/code/task2/coin/sources/faucet_coin.move @@ -0,0 +1,35 @@ +module coin::faucet_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::tx_context::{Self, TxContext}; + + public struct FAUCET_COIN has drop {} + + fun init(witness: FAUCET_COIN, ctx: &mut TxContext) { + let (treasury_cap, coin_metadata) = coin::create_currency( + witness, + 9, + b"FFFFF", + b"FB", + b"abababab", + option::none(), + ctx + ); + + transfer::public_freeze_object(coin_metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } + +} \ No newline at end of file diff --git a/mover/3690/code/task2/coin/sources/my_coin.move b/mover/3690/code/task2/coin/sources/my_coin.move new file mode 100644 index 000000000..995f52cc4 --- /dev/null +++ b/mover/3690/code/task2/coin/sources/my_coin.move @@ -0,0 +1,46 @@ +module coin::my_coin { + use std::option; + use sui::coin::{Self,TreasuryCap}; + use sui::event::emit; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct MY_COIN has drop {} + + public struct MintEvent has copy, drop{ + amount: u64, + recipient: address + } + + fun init(witness: MY_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 2, + b"MY_COIN", + b"MC", + b"learning for letsmove, power by alva-lin", + option::none(), + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient); + + + emit(MintEvent{ + amount, + recipient + }) + } + +} \ No newline at end of file diff --git a/mover/3690/code/task7/check_in/Move.lock b/mover/3690/code/task7/check_in/Move.lock new file mode 100644 index 000000000..58b434c76 --- /dev/null +++ b/mover/3690/code/task7/check_in/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "14C88A42FF2CD688D12FDA1AF4F6015FD9FB755EFAE36D985671D87CA22B3EBF" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { local = "C:\\A\\sui-main\\crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { local = "C:\\A\\sui-main\\crates\\sui-framework\\packages\\sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.26.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "2b337d4f" +original-published-id = "0xc69dc9dcf5abc68f4a4d3d5dc0c822116766109c89ef6ed30184cb2d1e2d2f4a" +latest-published-id = "0xc69dc9dcf5abc68f4a4d3d5dc0c822116766109c89ef6ed30184cb2d1e2d2f4a" +published-version = "1" + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x579d4ee8d7f61de6298de1bf02fc244a74694c54485f1df1129636b68c4b3043" +latest-published-id = "0x579d4ee8d7f61de6298de1bf02fc244a74694c54485f1df1129636b68c4b3043" +published-version = "1" diff --git a/mover/3690/code/task7/check_in/Move.toml b/mover/3690/code/task7/check_in/Move.toml new file mode 100644 index 000000000..0f1843a6e --- /dev/null +++ b/mover/3690/code/task7/check_in/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "check_in" +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 = { local = "C:/A/sui-main/crates/sui-framework/packages/sui-framework" } + +# 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] +check_in = "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/3690/code/task7/check_in/sources/check_in.move b/mover/3690/code/task7/check_in/sources/check_in.move new file mode 100644 index 000000000..4a90bf8f3 --- /dev/null +++ b/mover/3690/code/task7/check_in/sources/check_in.move @@ -0,0 +1,63 @@ +module check_in::check_in { + use std::ascii::{String, string}; + use std::string; + use std::vector; + use sui::event; + use sui::object; + use sui::random; + use sui::random::Random; + use sui::transfer::share_object; + use sui::tx_context::{Self, TxContext}; + + const ESTRING: u64 = 0; + + public struct Flag has copy, drop { + sender: address, + flag: bool, + } + + public struct FlagString has key { + id: UID, + str: String, + ture_num:u64 + } + + fun init(ctx: &mut TxContext) { + let flag_str = FlagString { + id: object::new(ctx), + str: string(b"LetsMoveCTF") , + ture_num:0 + }; + share_object(flag_str); + } + + + entry fun get_flag(string: String, flag_str: &mut FlagString, rand: &Random, ctx: &mut TxContext) { + assert!(string == flag_str.str, ESTRING); + + flag_str.str = getRandomString(rand,ctx); + + flag_str.ture_num = flag_str.ture_num +1; + + event::emit(Flag { + sender: tx_context::sender(ctx), + flag: true, + }); + } + + + fun getRandomString(rand: &Random, ctx: &mut TxContext): String{ + let mut gen = random::new_generator(rand, ctx); + + let mut str_len = random::generate_u8_in_range(&mut gen, 4, 30); + + let mut rand: vector = b""; + while (str_len != 0) { + let rand_num = random::generate_u8_in_range(&mut gen, 34, 126); + vector::push_back(&mut rand, rand_num); + str_len = str_len - 1; + }; + + string(rand) + } +} diff --git a/mover/3690/code/task7/check_in/sources/task7.md b/mover/3690/code/task7/check_in/sources/task7.md new file mode 100644 index 000000000..4501fe26d --- /dev/null +++ b/mover/3690/code/task7/check_in/sources/task7.md @@ -0,0 +1,38 @@ +1. 确保在测试网,因为0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd在测试网上 + +2. 把源码publish上链 + +3. 查询上一个人输入后得到的str + +[点击](https://testnet.suivision.xyz/object/0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56)查询,Fields里的str便是 +当然,也可以通过`sui client object `等方式查看 + +4. 使用ascii编码转换一下str + +5. 使用命令调用 + +sui client call --package 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd --module check_in --function get_flag --gas-budget 10000000 --args "6|R2M52rcc=Oo:q" 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 0x8 + +Transaction Digest: JD6Kh1gvFmoNit8GA9RGkMULTFXZuVyRdyw9GcPUGK6F +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x87c9d18b81827481a9c637e9514ba443fb595718b837192d74413789b5fa8d14 │ +│ Gas Owner: 0x87c9d18b81827481a9c637e9514ba443fb595718b837192d74413789b5fa8d14 │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x6092e16650fc5173bb01834e9a72378a51a620fb2f125f99f05b3b133d22087f │ +│ │ Version: 48024462 │ +│ │ Digest: FBoU24pPw4miZYExFothnriyLXM7vP1TFgSWX9Enbhfk │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: "6|R2M52rcc=Oo:q" │ │ +│ │ 1 Shared Object ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ │ +│ │ 2 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ \ No newline at end of file diff --git a/mover/3690/readme.md b/mover/3690/readme.md index ee809693e..8bca51b78 100644 --- a/mover/3690/readme.md +++ b/mover/3690/readme.md @@ -19,9 +19,9 @@ - [] package id 在 scan上的查看截图: (.\code\task1\hello_move\image\task1_scan.png) ## 02 move coin -- [] My Coin package id : -- [] Faucet package id : -- [] 转账 `My Coin` hash: +- [] My Coin package id : 0xe671219e43ee9e80cbc6c39351eaa9230860f7c99b41e0331e3def574ba2cd99 +- [] Faucet package id : 0xabdd3997da55bd34dc953e595104f152177ac18f92cdb7422c0a8d52b61150d3 +- [] 转账 `My Coin` hash: J4wKpKvFfPkPhxiTV3Sbk9ebUTNLxFUPqejD8AbskZtQ(.\code\task2\coin\image\my_coin_hash.png) ## 03 move NFT - [] nft package id : @@ -38,3 +38,6 @@ ## 06 SDK PTB - [] save hash : + +## 07 Move CTF Check In +- [] flag hash :[https://testnet.suivision.xyz/txblock/JD6Kh1gvFmoNit8GA9RGkMULTFXZuVyRdyw9GcPUGK6F] diff --git a/mover/404ll/code/readme.md b/mover/404ll/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/404ll/code/task1/Move.lock b/mover/404ll/code/task1/Move.lock new file mode 100644 index 000000000..dd9b260a5 --- /dev/null +++ b/mover/404ll/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2E267C18D553336099CDD31F7063857679825E46CD06EC67CC7F7FB0C20317C1" +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.28.3" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x1a852fe63cdf97456f142a042e499e2766fef8f7579c2bb8c10fc7cb2a17904d" +latest-published-id = "0x1a852fe63cdf97456f142a042e499e2766fef8f7579c2bb8c10fc7cb2a17904d" +published-version = "1" diff --git a/mover/404ll/code/task1/Move.toml b/mover/404ll/code/task1/Move.toml new file mode 100644 index 000000000..e75e497eb --- /dev/null +++ b/mover/404ll/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1" +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] +task1 = "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/404ll/code/task1/sources/hello_move.move b/mover/404ll/code/task1/sources/hello_move.move new file mode 100644 index 000000000..c2b47aa54 --- /dev/null +++ b/mover/404ll/code/task1/sources/hello_move.move @@ -0,0 +1,19 @@ +module task1 ::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"Hello my github username is 404ll"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/404ll/code/task1/tests/task1_tests.move b/mover/404ll/code/task1/tests/task1_tests.move new file mode 100644 index 000000000..31fb8c1ac --- /dev/null +++ b/mover/404ll/code/task1/tests/task1_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task1::task1_tests { + // uncomment this line to import the module + // use task1::task1; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task1() { + // pass + } + + #[test, expected_failure(abort_code = ::task1::task1_tests::ENotImplemented)] + fun test_task1_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/404ll/code/task2/FaucetCoin/Move.lock b/mover/404ll/code/task2/FaucetCoin/Move.lock new file mode 100644 index 000000000..120e59676 --- /dev/null +++ b/mover/404ll/code/task2/FaucetCoin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "A3A4289005858BB5EC8B7DFB1830EFFBF1A44FCC005156E36FA379507A61F1BD" +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.28.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x796fe22eb9df4f8d926e111c888d8ef4447d4348c3131f2cb4a82f1ec09c5e63" +latest-published-id = "0x796fe22eb9df4f8d926e111c888d8ef4447d4348c3131f2cb4a82f1ec09c5e63" +published-version = "1" diff --git a/mover/404ll/code/task2/FaucetCoin/Move.toml b/mover/404ll/code/task2/FaucetCoin/Move.toml new file mode 100644 index 000000000..75767836b --- /dev/null +++ b/mover/404ll/code/task2/FaucetCoin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "FaucetCoin" +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] +faucetcoin = "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/404ll/code/task2/FaucetCoin/sources/faucetcoin.move b/mover/404ll/code/task2/FaucetCoin/sources/faucetcoin.move new file mode 100644 index 000000000..f0c1cb730 --- /dev/null +++ b/mover/404ll/code/task2/FaucetCoin/sources/faucetcoin.move @@ -0,0 +1,24 @@ +module faucetcoin::FaucetCoin { + use std::option; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + use sui::coin::{Self, Coin, TreasuryCap}; + + public struct FAUCETCOIN has drop {} + + fun init( witness:FAUCETCOIN,ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, 7, b"404ll_FaucetCoin", b"404ll_FaucetCoin", b"FaucetCoin", option::none(), ctx); + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury) + } + public entry fun mint_and_transfer( + treasury: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + let faucet = coin::mint(treasury, amount, ctx); + transfer::public_transfer(faucet, tx_context::sender(ctx) ) + +} +} \ No newline at end of file diff --git a/mover/404ll/code/task2/FaucetCoin/tests/faucetcoin_tests.move b/mover/404ll/code/task2/FaucetCoin/tests/faucetcoin_tests.move new file mode 100644 index 000000000..381d574d9 --- /dev/null +++ b/mover/404ll/code/task2/FaucetCoin/tests/faucetcoin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module faucetcoin::faucetcoin_tests { + // uncomment this line to import the module + // use faucetcoin::faucetcoin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_faucetcoin() { + // pass + } + + #[test, expected_failure(abort_code = ::faucetcoin::faucetcoin_tests::ENotImplemented)] + fun test_faucetcoin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/404ll/code/task2/mycoin/Move.lock b/mover/404ll/code/task2/mycoin/Move.lock new file mode 100644 index 000000000..468c4e3c5 --- /dev/null +++ b/mover/404ll/code/task2/mycoin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "6C40FE3B1765CDEAB5314EF7C5C5BB46962606BA7C4CDC2111E8A61DB77690AD" +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.28.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x6765b41dc00617512667e5d8623ecb0ea826874614c23c90bdd1ac461ac47b67" +latest-published-id = "0x6765b41dc00617512667e5d8623ecb0ea826874614c23c90bdd1ac461ac47b67" +published-version = "1" diff --git a/mover/404ll/code/task2/mycoin/Move.toml b/mover/404ll/code/task2/mycoin/Move.toml new file mode 100644 index 000000000..905a2be97 --- /dev/null +++ b/mover/404ll/code/task2/mycoin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "FireCoin" +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] +FireCoin = "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/404ll/code/task2/mycoin/sources/mycoin.move b/mover/404ll/code/task2/mycoin/sources/mycoin.move new file mode 100644 index 000000000..e6e922173 --- /dev/null +++ b/mover/404ll/code/task2/mycoin/sources/mycoin.move @@ -0,0 +1,16 @@ +module FireCoin::FireCoin { + use std::option; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + use sui::coin::{Self, Coin, TreasuryCap}; + + public struct FIRECOIN has drop {} + + fun init( witness:FIRECOIN , ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, 7, b"404llcoin", b"FC", b"Full of idal a flame", option::none(), ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)) + } + + +} \ No newline at end of file diff --git a/mover/404ll/code/task2/mycoin/tests/mycoin_tests.move b/mover/404ll/code/task2/mycoin/tests/mycoin_tests.move new file mode 100644 index 000000000..e8e5f0fc4 --- /dev/null +++ b/mover/404ll/code/task2/mycoin/tests/mycoin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module mycoin::mycoin_tests { + // uncomment this line to import the module + // use mycoin::mycoin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_mycoin() { + // pass + } + + #[test, expected_failure(abort_code = ::mycoin::mycoin_tests::ENotImplemented)] + fun test_mycoin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/404ll/code/task3/mynft/Move.lock b/mover/404ll/code/task3/mynft/Move.lock new file mode 100644 index 000000000..65f6061a9 --- /dev/null +++ b/mover/404ll/code/task3/mynft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8616F2E3855F9CD22C6339699001728147605815419FEB1EF09E72CF5A05E332" +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.28.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x9582447aab8669b8f97791efc7319114761d657251c75667f987a98b10be7dd6" +latest-published-id = "0x9582447aab8669b8f97791efc7319114761d657251c75667f987a98b10be7dd6" +published-version = "1" diff --git a/mover/404ll/code/task3/mynft/Move.toml b/mover/404ll/code/task3/mynft/Move.toml new file mode 100644 index 000000000..1d1ff6157 --- /dev/null +++ b/mover/404ll/code/task3/mynft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "mynft" +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] +mynft = "0x703f3e285af2ee26679bd14ce9d3f0cc840cb41541757a1e1ccd8d58db863fd2" + +# 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/404ll/code/task3/mynft/sources/log.txt b/mover/404ll/code/task3/mynft/sources/log.txt new file mode 100644 index 000000000..39f599486 --- /dev/null +++ b/mover/404ll/code/task3/mynft/sources/log.txt @@ -0,0 +1,197 @@ +Transaction Digest: 4iP6UeUxVZM15Tms4YMvuyFFGR8hvr8LqrmvX5Nuvkmt +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x703f3e285af2ee26679bd14ce9d3f0cc840cb41541757a1e1ccd8d58db863fd2 │ +│ Gas Owner: 0x703f3e285af2ee26679bd14ce9d3f0cc840cb41541757a1e1ccd8d58db863fd2 │ +│ Gas Budget: 12670400 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── + │ +│ │ ID: 0x750a8d6f6beffb865a7f7fe8eec113b01294e71674a88df343c63573efc4e38c │ +│ │ Version: 30259397 + │ +│ │ Digest: CHf3e8ohGwwkSAYhNNoA5kJ2HNnBUaQranC2bWzUeBW3 + │ +│ └── + │ +│ + │ +│ Transaction Kind: Programmable + │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects + │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x703f3e285af2ee26679bd14ce9d3f0cc840cb41541757a1e1ccd8d58db863fd2" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ + │ +│ Signatures: + │ +│ Xpq7Ods5mCKozbchRf+4YZppP8sAEHMUuyjR5KTXZ65J3EfaXS7l4DJtRDtUHFx/Y1VauoPMDPzmRun80IfpzA== │ +│ + │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects + │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 4iP6UeUxVZM15Tms4YMvuyFFGR8hvr8LqrmvX5Nuvkmt + │ +│ Status: Success + │ +│ Executed Epoch: 438 + │ +│ + │ +│ Created Objects: + │ +│ ┌── + │ +│ │ ID: 0x9582447aab8669b8f97791efc7319114761d657251c75667f987a98b10be7dd6 │ +│ │ Owner: Immutable + │ +│ │ Version: 1 + │ +│ │ Digest: CouLPoZZtH8p1VtEKW1hmXQja9oYn7a6f4E9d4wt3Pxy + │ +│ └── + │ +│ ┌── + │ +│ │ ID: 0xb5794e99d1e39a098d7a004cd64b1cd45762a3e5a999a8927f1fd00432e4b62f │ +│ │ Owner: Account Address ( 0x703f3e285af2ee26679bd14ce9d3f0cc840cb41541757a1e1ccd8d58db863fd2 ) │ +│ │ Version: 30259398 + │ +│ │ Digest: FhRxgxXYkRR933sQByaGmXsQvAfHXdYAWG9uLBpPsQ97 + │ +│ └── + │ +│ Mutated Objects: + │ +│ ┌── + │ +│ │ ID: 0x750a8d6f6beffb865a7f7fe8eec113b01294e71674a88df343c63573efc4e38c │ +│ │ Owner: Account Address ( 0x703f3e285af2ee26679bd14ce9d3f0cc840cb41541757a1e1ccd8d58db863fd2 ) │ +│ │ Version: 30259398 + │ +│ │ Digest: 7z3ZG9cVHEV3WguNaJDrHxs9aAoDM3V7aZWgyM2MUMan + │ +│ └── + │ +│ Gas Object: + │ +│ ┌── + │ +│ │ ID: 0x750a8d6f6beffb865a7f7fe8eec113b01294e71674a88df343c63573efc4e38c │ +│ │ Owner: Account Address ( 0x703f3e285af2ee26679bd14ce9d3f0cc840cb41541757a1e1ccd8d58db863fd2 ) │ +│ │ Version: 30259398 + │ +│ │ Digest: 7z3ZG9cVHEV3WguNaJDrHxs9aAoDM3V7aZWgyM2MUMan + │ +│ └── + │ +│ Gas Cost Summary: + │ +│ Storage Cost: 10670400 MIST + │ +│ Computation Cost: 1000000 MIST + │ +│ Storage Rebate: 978120 MIST + │ +│ Non-refundable Storage Fee: 9880 MIST + │ +│ + │ +│ Transaction Dependencies: + │ +│ 58LAir5DDFJ97j7M9gfgw6WCtvcSZFPBhndS4TH8Ck6M + │ +│ GJxBnqnKctMno5ZKPk7vKbt7WitFQAHBp13Lv7FVHW9x + │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes + │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: + │ +│ ┌── + │ +│ │ ObjectID: 0xb5794e99d1e39a098d7a004cd64b1cd45762a3e5a999a8927f1fd00432e4b62f │ +│ │ Sender: 0x703f3e285af2ee26679bd14ce9d3f0cc840cb41541757a1e1ccd8d58db863fd2 │ +│ │ Owner: Account Address ( 0x703f3e285af2ee26679bd14ce9d3f0cc840cb41541757a1e1ccd8d58db863fd2 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap + │ +│ │ Version: 30259398 + │ +│ │ Digest: FhRxgxXYkRR933sQByaGmXsQvAfHXdYAWG9uLBpPsQ97 + │ +│ └── + │ +│ Mutated Objects: + │ +│ ┌── + │ +│ │ ObjectID: 0x750a8d6f6beffb865a7f7fe8eec113b01294e71674a88df343c63573efc4e38c │ +│ │ Sender: 0x703f3e285af2ee26679bd14ce9d3f0cc840cb41541757a1e1ccd8d58db863fd2 │ +│ │ Owner: Account Address ( 0x703f3e285af2ee26679bd14ce9d3f0cc840cb41541757a1e1ccd8d58db863fd2 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> + │ +│ │ Version: 30259398 + │ +│ │ Digest: 7z3ZG9cVHEV3WguNaJDrHxs9aAoDM3V7aZWgyM2MUMan + │ +│ └── + │ +│ Published Objects: + │ +│ ┌── + │ +│ │ PackageID: 0x9582447aab8669b8f97791efc7319114761d657251c75667f987a98b10be7dd6 │ +│ │ Version: 1 + │ +│ │ Digest: CouLPoZZtH8p1VtEKW1hmXQja9oYn7a6f4E9d4wt3Pxy + │ +│ │ Modules: mynft + │ +│ └── + │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes + │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── + │ +│ │ Owner: Account Address ( 0x703f3e285af2ee26679bd14ce9d3f0cc840cb41541757a1e1ccd8d58db863fd2 ) │ +│ │ CoinType: 0x2::sui::SUI + │ +│ │ Amount: -10692280 + │ +│ └── + │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ \ No newline at end of file diff --git a/mover/404ll/code/task3/mynft/sources/mynft.move b/mover/404ll/code/task3/mynft/sources/mynft.move new file mode 100644 index 000000000..4b778ec55 --- /dev/null +++ b/mover/404ll/code/task3/mynft/sources/mynft.move @@ -0,0 +1,80 @@ + +module mynft::mynft { + use sui::url::{Self, Url}; + use std::string; + use sui::event; + + /// An example NFT that can be minted by anybody + public struct FireNFT has key, store { + id: UID, + /// Name for the token + name: string::String, + /// Description of the token + description: string::String, + /// URL for the token + url: Url, + // TODO: allow custom attributes + } + + // ===== Events ===== + + public struct NFTMinted has copy, drop { + // The Object ID of the NFT + object_id: ID, + // The creator of the NFT + creator: address, + // The name of the NFT + name: string::String, + } + + // ===== Public view functions ===== + + /// Get the NFT's `name` + public fun name(nft: &FireNFT): &string::String { + &nft.name + } + + /// Get the NFT's `description` + public fun description(nft: &FireNFT): &string::String { + &nft.description + } + + /// Get the NFT's `url` + public fun url(nft: &FireNFT): &Url { + &nft.url + } + + // ===== Entrypoints ===== + + /// Create a new devnet_nft + public entry fun mint_to_sender( + name: vector, + description: vector, + url: vector, + ctx: &mut TxContext + ) { + let sender = ctx.sender(); + let nft = FireNFT { + id: object::new(ctx), + name: string::utf8(b"Fire"), + description: string::utf8(b"FireNFT"), + url: url::new_unsafe_from_bytes(b"https://sm.ms/image/I8MUP6C1fi2zYno") + }; + + event::emit(NFTMinted { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + /// Transfer `nft` to `recipient` + public entry fun transfer( + nft: FireNFT, recipient: address, _: &mut TxContext + ) { + transfer::public_transfer(nft, recipient) + } + +} \ No newline at end of file diff --git a/mover/404ll/code/task3/mynft/tests/mynft_tests.move b/mover/404ll/code/task3/mynft/tests/mynft_tests.move new file mode 100644 index 000000000..389932796 --- /dev/null +++ b/mover/404ll/code/task3/mynft/tests/mynft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module mynft::mynft_tests { + // uncomment this line to import the module + // use mynft::mynft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_mynft() { + // pass + } + + #[test, expected_failure(abort_code = ::mynft::mynft_tests::ENotImplemented)] + fun test_mynft_fail() { + abort ENotImplemented + } +} +*/ diff --git "a/mover/404ll/images/Sui\347\211\210\346\234\254\345\217\267.png" "b/mover/404ll/images/Sui\347\211\210\346\234\254\345\217\267.png" new file mode 100644 index 000000000..3d455e4a0 Binary files /dev/null and "b/mover/404ll/images/Sui\347\211\210\346\234\254\345\217\267.png" differ diff --git a/mover/404ll/images/image-20240723234546877.png b/mover/404ll/images/image-20240723234546877.png new file mode 100644 index 000000000..1e4b63d16 Binary files /dev/null and b/mover/404ll/images/image-20240723234546877.png differ diff --git "a/mover/404ll/images/\346\265\217\350\247\210\345\231\250\346\210\252\345\233\276.png" "b/mover/404ll/images/\346\265\217\350\247\210\345\231\250\346\210\252\345\233\276.png" new file mode 100644 index 000000000..9fe927c2b Binary files /dev/null and "b/mover/404ll/images/\346\265\217\350\247\210\345\231\250\346\210\252\345\233\276.png" differ diff --git "a/mover/404ll/images/\351\222\261\345\214\205\346\210\252\345\233\276.png" "b/mover/404ll/images/\351\222\261\345\214\205\346\210\252\345\233\276.png" new file mode 100644 index 000000000..6c2bb4574 Binary files /dev/null and "b/mover/404ll/images/\351\222\261\345\214\205\346\210\252\345\233\276.png" differ diff --git a/mover/404ll/notes/task1.md b/mover/404ll/notes/task1.md new file mode 100644 index 000000000..b06c13e48 --- /dev/null +++ b/mover/404ll/notes/task1.md @@ -0,0 +1,45 @@ +# letmove_notes + +## task1 报错篇 + +### 网络不好,无法下载依赖 + +```powershell +Failed to build Move modules: Failed to resolve dependencies for package 'task1' + +Caused by: + 0: Fetching 'Sui' + 1: Failed to fetch to latest Git state for package 'Sui', to skip set --skip-fetch-latest-git-deps | Exit status: exit code: 128. +``` + +解决方法(个人认为魔法比较好用): + +1. 使用终端魔法,去Clash(window)中复制` powershell` 魔法后,再次部署 +2. 将`Move.toml`中的 [dependencies] + Sui = { git = "https://github.com/MystenLabs/sui.git" 的`github`替换为`gitee` + +### gas不够(命令行中大概这么个意思) + +解决方法: + +1. 浏览器领水 http://getsui.com/address 将`address`替换为命令行输入`sui client active-address`后生成的活跃地址。 +2. 找朋友给你发点,白嫖(bushi + +### 模块名称错误 + +```powershell +error[E03001]: address with no value + ┌─ \\?\D:\letsmove\mover\404ll\code\task1\sources\hello_move.move:1:8 + │ +1 │ module hello_move ::hello { + │ ^^^^^^^^^^ address 'hello_move' is not assigned a value. Try assigning it a value when calling the compiler + +``` + +解决方法:将`module hello_move ::hello` 的第一个`hello_move`替换成Move.toml中显示的名称 + +例: + +[package] + +name = "task1" \ No newline at end of file diff --git a/mover/404ll/notes/task2.md b/mover/404ll/notes/task2.md new file mode 100644 index 000000000..42319e647 --- /dev/null +++ b/mover/404ll/notes/task2.md @@ -0,0 +1,25 @@ +# task2-注意 + +windows 使用call命令时,可以将`\`删去,只在前几条语句的最后留下 空格 即可 + +### **注意1**: + +创造代币采用了one-time-witness 见证者模式,因此需要满足它的要求,否则会报错,要求如下: + +名称必须与包的名字完全相同,并且全部大写;没有字段,只有drop(销毁)能力;通过`fun init (witness: Struct, ctx: &mut TxContext) {}` 传入 + +### 注意2: + +对于call函数中地址的区分: + +sui client call --gas-budget 100000000 + +--package 0x2 + +--module coin + +--function mint_and_transfer + +--type-args '' + +--args Object id mint_coin_number coin的接受地址 \ No newline at end of file diff --git a/mover/404ll/readme.md b/mover/404ll/readme.md new file mode 100644 index 000000000..2d76230e7 --- /dev/null +++ b/mover/404ll/readme.md @@ -0,0 +1,57 @@ +- 基本信息 + + - Sui钱包地址: `0x1aa50d1de8de613816f4e3061bfc71dc8a3a5a5bf475041e29adf16fee2808a5` + + - github: `404ll` + + ## 个人简介 + - 工作经验: 0 + - 技术栈: C, solidity + + + + - 区块链专业大一在读,All in Web3,非常热爱加密,正在不断学习中,热爱建设,如果有需要帮忙的地方随叫随到! + - 联系方式: tg: '77' + + ## 任务 + + ## 01 hello move + - [sui 1.28.3] Sui cli version: + - [] Sui钱包截图: Sui钱包截图 + - [0x1a852fe63cdf97456f142a042e499e2766fef8f7579c2bb8c10fc7cb2a17904d] package id: + - [] package id 在 scan上的查看截图:Scan截图 + + ## 02 move coin + - [0x6765b41dc00617512667e5d8623ecb0ea826874614c23c90bdd1ac461ac47b67] My Coin package id : + - [0x796fe22eb9df4f8d926e111c888d8ef4447d4348c3131f2cb4a82f1ec09c5e63] Faucet package id : + - [0xed3f44cfe2b4c9e7e0de2deaefd47457fdf206a763a235bb99d391bba31313b4] 转账 `My Coin` hash: + - [0x42bd0305cafd782e8cd5f3b8f92e108c1bd66b0ea8838d040ccc6bb945b35c8b] `Faucet Coin` address1 mint hash: + - [0x9b8b1f4ece3c93c75f3abc1cd14b50d0aa7135fc4ba8a6ffe5f2929dca1f78ce] `Faucet Coin` address2 mint hash: + + ## 03 move NFT + - [0x9582447aab8669b8f97791efc7319114761d657251c75667f987a98b10be7dd6] nft package id : + - [0xb5794e99d1e39a098d7a004cd64b1cd45762a3e5a999a8927f1fd00432e4b62f] nft object id : + - [DCc5whebJi8fWKyBvu4A1WSsshmbraqpfzv5E9bBLZsR] 转账 nft hash: + - [![image-20240723234546877](image-20240723234546877.png)] scan上的NFT截图:![Scan截图](./images/你的图片地址) + + ## 04 Move Game + - [] game package id : + - [] deposit Coin hash: + - [] withdraw `Coin` hash: + - [] play game hash: + + ## 05 Move Swap + - [] swap package id : + - [] call swap CoinA-> CoinB hash : + - [] call swap CoinB-> CoinA hash : + + ## 06 Dapp-kit SDK PTB + - [] save hash : + + ## 07 Move CTF Check In + - [] CLI call 截图 : ![截图](./images/你的图片地址) + - [] flag hash : + + ## 08 Move CTF Lets Move + - [] proof : + - [] flag hash : diff --git a/mover/604137978/images/sui.png b/mover/604137978/images/sui.png new file mode 100644 index 000000000..1c4ebb098 Binary files /dev/null and b/mover/604137978/images/sui.png differ diff --git a/mover/604137978/images/sui_scan.png b/mover/604137978/images/sui_scan.png new file mode 100644 index 000000000..c0152a7d1 Binary files /dev/null and b/mover/604137978/images/sui_scan.png differ diff --git a/mover/604137978/images/task3.png b/mover/604137978/images/task3.png new file mode 100644 index 000000000..02d565bd0 Binary files /dev/null and b/mover/604137978/images/task3.png differ diff --git a/mover/604137978/images/task7.png b/mover/604137978/images/task7.png new file mode 100644 index 000000000..11af64111 Binary files /dev/null and b/mover/604137978/images/task7.png differ diff --git a/mover/604137978/readme.md b/mover/604137978/readme.md new file mode 100644 index 000000000..301436526 --- /dev/null +++ b/mover/604137978/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x26f97173911b644bff7f99271ceef139c6d125d06c2b4b30902c44606f1ee7a5` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `604137978` + +## 个人简介 +- 工作经验: 1年 +- 技术栈: 前端 +> 重要提示 请认真写自己的简介 +- rust 入门中 +- 联系方式: `604137978@qq.com` + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.27.0 +- [x] Sui钱包截图: ![Sui钱包截图](./images/sui.png) +- [x] package id: 0xc1b88f7d39cf4b5d0cb5bfcc38860739de8d1ba8a4a1743db57165a23a3d2448 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/sui_scan.png) + +## 02 move coin +- [x] My Coin package id : 0xf2d31bf186bd425f6772349ac59863e49a733d5e2a29bad97a9de7435489cbb5 +- [x] Faucet package id : 0xa06247df0859c7dff209bb56c1835e3ff4f7c48bc008cfcbd8e57ace5b81c111 +- [x] 转账 `My Coin` hash: AVpDkZXmeum5YhDABSWYr7XD5ugHB5nEnexht9RPnFCt +- [x] `Faucet Coin` address1 mint hash: 47k7xC6uVL5kxPvdxkikaD4RV9MQ35b5qDeBp7eYzc2q +- [x] `Faucet Coin` address2 mint hash: HTrpLZQfPqtpFspkdA5VuMrwkme7K8dhGe86EWAQ4ZLK + +## 03 move NFT +- [x] nft package id : 0x4378ca6f8a40899ea9f74ced249911492cea27d5ec91bf50b8c7322d30e90c50 +- [x] nft object id :0xa89c8380ad0fb7254be20f7ccf0c2e0d53de9f17db5a16fc74a6d481625573dd +- [x] 转账 nft hash: Dum4nugdM2ZHsTK75fZwtZMEkzNBm2jCVEvr5nFrDCj2 +- [x] scan上的NFT截图: 8KfUWLay18vTcGX7zogH698VAKVZ2hNF38JkeVJDt1w7 ![task3](./images/task3.png) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/task7.png) +- [x] flag hash : 3iBXYaMmYt4qAWDeJrNwCRHPhULVty6svQjuexRfLVAS + +## 08 Move CTF Lets Move +- [x] proof : 25506975 +- [x] flag hash : DectkVSus8iVVnU7rU2RcviBsvPdMYwpn8J7MnXz1vNv diff --git a/mover/604137978/task1/Move.lock b/mover/604137978/task1/Move.lock new file mode 100644 index 000000000..c9c980b6d --- /dev/null +++ b/mover/604137978/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E03D8CCB139FD5AAA6C3DF53281A5C2A7267CEEDE876153DF254B492715959CB" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xc1b88f7d39cf4b5d0cb5bfcc38860739de8d1ba8a4a1743db57165a23a3d2448" +latest-published-id = "0xc1b88f7d39cf4b5d0cb5bfcc38860739de8d1ba8a4a1743db57165a23a3d2448" +published-version = "1" diff --git a/mover/604137978/task1/Move.toml b/mover/604137978/task1/Move.toml new file mode 100644 index 000000000..ade8a6442 --- /dev/null +++ b/mover/604137978/task1/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "hello_move" +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/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] +hello_move = "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/604137978/task1/sources/hello_move.move b/mover/604137978/task1/sources/hello_move.move new file mode 100644 index 000000000..05c8e82a7 --- /dev/null +++ b/mover/604137978/task1/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"a_604137978"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/604137978/task1/tests/hello_move_tests.move b/mover/604137978/task1/tests/hello_move_tests.move new file mode 100644 index 000000000..07ea8bb3f --- /dev/null +++ b/mover/604137978/task1/tests/hello_move_tests.move @@ -0,0 +1,17 @@ +// #[test_only] +// module hello_move::hello_move_tests { +// // uncomment this line to import the module +// // use hello_move::hello_move; +// +// const ENotImplemented: u64 = 0; +// +// #[test] +// fun test_hello_move() { +// hello_move::hello_move::hello_move(); +// } +// +// #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] +// fun test_hello_move_fail() { +// abort ENotImplemented +// } +// } diff --git a/mover/604137978/task2/a_604137978_coin/Move.lock b/mover/604137978/task2/a_604137978_coin/Move.lock new file mode 100644 index 000000000..dafcb4539 --- /dev/null +++ b/mover/604137978/task2/a_604137978_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "465C8C4530D22B8543B25230D707A17367B8CCAEB4E049969C68C78E90E03EFA" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xf2d31bf186bd425f6772349ac59863e49a733d5e2a29bad97a9de7435489cbb5" +latest-published-id = "0xf2d31bf186bd425f6772349ac59863e49a733d5e2a29bad97a9de7435489cbb5" +published-version = "1" diff --git a/mover/604137978/task2/a_604137978_coin/Move.toml b/mover/604137978/task2/a_604137978_coin/Move.toml new file mode 100644 index 000000000..0d291619f --- /dev/null +++ b/mover/604137978/task2/a_604137978_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "a_604137978_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://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] +a_604137978_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/604137978/task2/a_604137978_coin/sources/a_604137978_coin.move b/mover/604137978/task2/a_604137978_coin/sources/a_604137978_coin.move new file mode 100644 index 000000000..a26344a3e --- /dev/null +++ b/mover/604137978/task2/a_604137978_coin/sources/a_604137978_coin.move @@ -0,0 +1,32 @@ + +/// Module: a_604137978_coin +module a_604137978_coin::a_604137978_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + public struct A_604137978_COIN has drop {} + fun init(witness: A_604137978_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, // 6 decimal places + b"a_604137978 coin", // symbol + b"a_604137978 coin", // name + b"Awesome Coint", // description + option:: none(), // icon + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} + diff --git a/mover/604137978/task2/a_604137978_faucet/Move.lock b/mover/604137978/task2/a_604137978_faucet/Move.lock new file mode 100644 index 000000000..703fda3dd --- /dev/null +++ b/mover/604137978/task2/a_604137978_faucet/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "3E31E3E7733F30ADD853761D43E5AADCF5470C5D83A0462B66D5E821644A90A1" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xa06247df0859c7dff209bb56c1835e3ff4f7c48bc008cfcbd8e57ace5b81c111" +latest-published-id = "0xa06247df0859c7dff209bb56c1835e3ff4f7c48bc008cfcbd8e57ace5b81c111" +published-version = "1" diff --git a/mover/604137978/task2/a_604137978_faucet/Move.toml b/mover/604137978/task2/a_604137978_faucet/Move.toml new file mode 100644 index 000000000..816a678bc --- /dev/null +++ b/mover/604137978/task2/a_604137978_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "a_604137978_faucet" +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] +a_604137978_faucet = "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/604137978/task2/a_604137978_faucet/sources/a_604137978_faucet.move b/mover/604137978/task2/a_604137978_faucet/sources/a_604137978_faucet.move new file mode 100644 index 000000000..a2cd84531 --- /dev/null +++ b/mover/604137978/task2/a_604137978_faucet/sources/a_604137978_faucet.move @@ -0,0 +1,48 @@ +/// Module: a_604137978_faucet +module a_604137978_faucet::a_604137978_faucet { + use sui::balance::{Balance}; + use sui::balance; + use sui::coin::{Self, TreasuryCap}; + public struct A_604137978_FAUCET has drop {} + public struct PublicWallet has key { + id: UID, + coin: Balance, + faucet_amount: u64, + } + const AMOUNT: u64 = 10^12; + const EFaucetDry: u64 = 1; + #[allow(lint(share_owned))] + fun init(witness: A_604137978_FAUCET, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 10, + b"A_604137978 Faucet", + b"A_604137978 Faucet", + b"Meme Coin", + option::none(), + ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + let wallet = PublicWallet { + id: object::new(ctx), + coin: balance::zero(), + faucet_amount: AMOUNT, + }; + transfer::share_object(wallet); + } + public entry fun mint_faucet( + treasury_cap: &mut TreasuryCap, + amount: u64, + wallet: &mut PublicWallet, + ctx: &mut TxContext) { + let coins = coin::mint(treasury_cap, amount, ctx); + balance::join(&mut wallet.coin, coin::into_balance(coins)); + } + public entry fun get_faucet(wallet: &mut PublicWallet, ctx: &mut TxContext) { + let balance_amount = balance::value(&wallet.coin); + assert!(balance_amount >= wallet.faucet_amount, EFaucetDry); + let mint_balance = balance::split(&mut wallet.coin, wallet.faucet_amount); + let faucet_coin = coin::from_balance(mint_balance, ctx); + transfer::public_transfer(faucet_coin, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/604137978/task3/nft/Move.lock b/mover/604137978/task3/nft/Move.lock new file mode 100644 index 000000000..66efd363a --- /dev/null +++ b/mover/604137978/task3/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9D4FCF5807A34E3110DFBA44AD92FEFEC55EE3DE8CF58F3D302F55D3004E70D1" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x4378ca6f8a40899ea9f74ced249911492cea27d5ec91bf50b8c7322d30e90c50" +latest-published-id = "0x4378ca6f8a40899ea9f74ced249911492cea27d5ec91bf50b8c7322d30e90c50" +published-version = "1" diff --git a/mover/604137978/task3/nft/Move.toml b/mover/604137978/task3/nft/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/604137978/task3/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/604137978/task3/nft/sources/nft.move b/mover/604137978/task3/nft/sources/nft.move new file mode 100644 index 000000000..81f86d923 --- /dev/null +++ b/mover/604137978/task3/nft/sources/nft.move @@ -0,0 +1,61 @@ +module nft::nft { + + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"a_604137978"), + description: string::utf8(b"a_604137978 NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/29201741?v=4" + ) + }; + transfer::public_transfer(nft, recipient); + } +} \ No newline at end of file diff --git a/mover/604137978/task3/nft/tests/nft_tests.move b/mover/604137978/task3/nft/tests/nft_tests.move new file mode 100644 index 000000000..1e3625fad --- /dev/null +++ b/mover/604137978/task3/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/673800357/images/sui.png b/mover/673800357/images/sui.png new file mode 100644 index 000000000..84b241ff3 Binary files /dev/null and b/mover/673800357/images/sui.png differ diff --git a/mover/673800357/images/sui_scan.png b/mover/673800357/images/sui_scan.png new file mode 100644 index 000000000..a6726e630 Binary files /dev/null and b/mover/673800357/images/sui_scan.png differ diff --git a/mover/673800357/images/task3.png b/mover/673800357/images/task3.png new file mode 100644 index 000000000..8e60ffd13 Binary files /dev/null and b/mover/673800357/images/task3.png differ diff --git a/mover/673800357/readme.md b/mover/673800357/readme.md new file mode 100644 index 000000000..eaf354e65 --- /dev/null +++ b/mover/673800357/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `- 0x70631a18ce16ab04e9288824f7f0490570511ebb87d32901be60f9c6437b7f92` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `673800357` + +## 个人简介 +- 工作经验: 0.5年 +- 技术栈: 前端 +> 重要提示 请认真写自己的简介 +- 前端开发, 目前在学习 web3 开发 +- 联系方式: `673800357@qq.com` + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.27.0 +- [x] Sui钱包截图: ![Sui钱包截图](./images/sui.png) +- [x] package id: 0x74db6bd38dfa33de0deebb63f219f83930f55f1a660e954096953bfcff4defe5 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/sui_scan.png) + +## 02 move coin +- [x] My Coin package id : 0xb8a39dc51be7e4ca2899c97fb04f3ec3d370c665f287926f9109097677298571 +- [x] Faucet package id : 0x4be9140e935699fa0953376eeb9932be3105022cf4fec54391af3c861d05b46e +- [x] 转账 `My Coin` hash: DeS1REc5PZEGFySqqAj2xHu6BtBaVFdTN5r2HnZzXTxt +- [x] `Faucet Coin` address1 mint hash: 6J5yzRXnXnu2dZjjFW6HzynPJTXHS8aVZiw8Cbgs5m1s +- [x] `Faucet Coin` address2 mint hash: 2tdaB7gQrsrMkqJBdypFH9u6JB25ETRoRyrU46TmmLFh + +## 03 move NFT +- [x] nft package id : 0x2475fcd2783352031159e44ac38d51caf39f4b9379faf2cb44cee8afac207bb2 +- [x] nft object id : 0x3452403202d020afe21a830807eed65e60ed5cac42564fa7615424fa6edad4a7 +- [x] 转账 nft hash: 8DSh5fLCMKvrnSGZ2d83wSF7RVWPpqVXjxSgqqQcGBLR +- [x] scan上的NFT截图: ![Scan截图](./images/task3.png) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/673800357/task1/Move.lock b/mover/673800357/task1/Move.lock new file mode 100644 index 000000000..3692a9bfd --- /dev/null +++ b/mover/673800357/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E03D8CCB139FD5AAA6C3DF53281A5C2A7267CEEDE876153DF254B492715959CB" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x74db6bd38dfa33de0deebb63f219f83930f55f1a660e954096953bfcff4defe5" +latest-published-id = "0x74db6bd38dfa33de0deebb63f219f83930f55f1a660e954096953bfcff4defe5" +published-version = "1" diff --git a/mover/673800357/task1/Move.toml b/mover/673800357/task1/Move.toml new file mode 100644 index 000000000..ade8a6442 --- /dev/null +++ b/mover/673800357/task1/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "hello_move" +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/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] +hello_move = "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/673800357/task1/sources/hello_move.move b/mover/673800357/task1/sources/hello_move.move new file mode 100644 index 000000000..e2055af79 --- /dev/null +++ b/mover/673800357/task1/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"a_673800357"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/673800357/task1/tests/hello_move_tests.move b/mover/673800357/task1/tests/hello_move_tests.move new file mode 100644 index 000000000..07ea8bb3f --- /dev/null +++ b/mover/673800357/task1/tests/hello_move_tests.move @@ -0,0 +1,17 @@ +// #[test_only] +// module hello_move::hello_move_tests { +// // uncomment this line to import the module +// // use hello_move::hello_move; +// +// const ENotImplemented: u64 = 0; +// +// #[test] +// fun test_hello_move() { +// hello_move::hello_move::hello_move(); +// } +// +// #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] +// fun test_hello_move_fail() { +// abort ENotImplemented +// } +// } diff --git a/mover/673800357/task2/a_673800357_coin/Move.lock b/mover/673800357/task2/a_673800357_coin/Move.lock new file mode 100644 index 000000000..98400caaf --- /dev/null +++ b/mover/673800357/task2/a_673800357_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "B18E768C4E8F460F27F5F1D651E3D55772A377EE9D56A393EB4F5A5C36F8B2EA" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xb8a39dc51be7e4ca2899c97fb04f3ec3d370c665f287926f9109097677298571" +latest-published-id = "0xb8a39dc51be7e4ca2899c97fb04f3ec3d370c665f287926f9109097677298571" +published-version = "1" diff --git a/mover/673800357/task2/a_673800357_coin/Move.toml b/mover/673800357/task2/a_673800357_coin/Move.toml new file mode 100644 index 000000000..172dacba4 --- /dev/null +++ b/mover/673800357/task2/a_673800357_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "a_673800357_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://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] +a_673800357_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/673800357/task2/a_673800357_coin/sources/a_673800357_coin.move b/mover/673800357/task2/a_673800357_coin/sources/a_673800357_coin.move new file mode 100644 index 000000000..a53120f3c --- /dev/null +++ b/mover/673800357/task2/a_673800357_coin/sources/a_673800357_coin.move @@ -0,0 +1,32 @@ + +/// Module: a_673800357_coin +module a_673800357_coin::a_673800357_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + public struct A_673800357_COIN has drop {} + fun init(witness: A_673800357_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, // 6 decimal places + b"a_673800357 coin", // symbol + b"a_673800357 coin", // name + b"Awesome Coint", // description + option:: none(), // icon + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} + diff --git a/mover/673800357/task2/a_673800357_faucet/Move.lock b/mover/673800357/task2/a_673800357_faucet/Move.lock new file mode 100644 index 000000000..14f4cb6d5 --- /dev/null +++ b/mover/673800357/task2/a_673800357_faucet/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "55CE64B6A20C3D11FF802F1E5BAC3740DC611FE21D4431E1CDC9455433D1B4C8" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x4be9140e935699fa0953376eeb9932be3105022cf4fec54391af3c861d05b46e" +latest-published-id = "0x4be9140e935699fa0953376eeb9932be3105022cf4fec54391af3c861d05b46e" +published-version = "1" diff --git a/mover/673800357/task2/a_673800357_faucet/Move.toml b/mover/673800357/task2/a_673800357_faucet/Move.toml new file mode 100644 index 000000000..ec41d127b --- /dev/null +++ b/mover/673800357/task2/a_673800357_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "a_673800357_faucet" +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] +a_673800357_faucet = "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/673800357/task2/a_673800357_faucet/sources/a_673800357_faucet.move b/mover/673800357/task2/a_673800357_faucet/sources/a_673800357_faucet.move new file mode 100644 index 000000000..a63ab6db5 --- /dev/null +++ b/mover/673800357/task2/a_673800357_faucet/sources/a_673800357_faucet.move @@ -0,0 +1,48 @@ +/// Module: a_673800357_faucet +module a_673800357_faucet::a_673800357_faucet { + use sui::balance::{Balance}; + use sui::balance; + use sui::coin::{Self, TreasuryCap}; + public struct A_673800357_FAUCET has drop {} + public struct PublicWallet has key { + id: UID, + coin: Balance, + faucet_amount: u64, + } + const AMOUNT: u64 = 10^12; + const EFaucetDry: u64 = 1; + #[allow(lint(share_owned))] + fun init(witness: A_673800357_FAUCET, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 10, + b"A_673800357 Faucet", + b"A_673800357 Faucet", + b"Meme Coin", + option::none(), + ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + let wallet = PublicWallet { + id: object::new(ctx), + coin: balance::zero(), + faucet_amount: AMOUNT, + }; + transfer::share_object(wallet); + } + public entry fun mint_faucet( + treasury_cap: &mut TreasuryCap, + amount: u64, + wallet: &mut PublicWallet, + ctx: &mut TxContext) { + let coins = coin::mint(treasury_cap, amount, ctx); + balance::join(&mut wallet.coin, coin::into_balance(coins)); + } + public entry fun get_faucet(wallet: &mut PublicWallet, ctx: &mut TxContext) { + let balance_amount = balance::value(&wallet.coin); + assert!(balance_amount >= wallet.faucet_amount, EFaucetDry); + let mint_balance = balance::split(&mut wallet.coin, wallet.faucet_amount); + let faucet_coin = coin::from_balance(mint_balance, ctx); + transfer::public_transfer(faucet_coin, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/673800357/task3/nft/Move.lock b/mover/673800357/task3/nft/Move.lock new file mode 100644 index 000000000..0a10b99e6 --- /dev/null +++ b/mover/673800357/task3/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9D4FCF5807A34E3110DFBA44AD92FEFEC55EE3DE8CF58F3D302F55D3004E70D1" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x2475fcd2783352031159e44ac38d51caf39f4b9379faf2cb44cee8afac207bb2" +latest-published-id = "0x2475fcd2783352031159e44ac38d51caf39f4b9379faf2cb44cee8afac207bb2" +published-version = "1" diff --git a/mover/673800357/task3/nft/Move.toml b/mover/673800357/task3/nft/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/673800357/task3/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/673800357/task3/nft/sources/nft.move b/mover/673800357/task3/nft/sources/nft.move new file mode 100644 index 000000000..061270732 --- /dev/null +++ b/mover/673800357/task3/nft/sources/nft.move @@ -0,0 +1,61 @@ +module nft::nft { + + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"a_673800357"), + description: string::utf8(b"a_673800357 NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/173026386?v=4" + ) + }; + transfer::public_transfer(nft, recipient); + } +} \ No newline at end of file diff --git a/mover/673800357/task3/nft/tests/nft_tests.move b/mover/673800357/task3/nft/tests/nft_tests.move new file mode 100644 index 000000000..1e3625fad --- /dev/null +++ b/mover/673800357/task3/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/AricRedemption/code/hello_dapp/README.md b/mover/AricRedemption/code/hello_dapp/README.md new file mode 100644 index 000000000..ec054a25a --- /dev/null +++ b/mover/AricRedemption/code/hello_dapp/README.md @@ -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": "" + } +}' +``` + +### 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 = ""; +``` + +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 +``` diff --git a/mover/AricRedemption/code/hello_dapp/index.html b/mover/AricRedemption/code/hello_dapp/index.html new file mode 100644 index 000000000..bb7f75b16 --- /dev/null +++ b/mover/AricRedemption/code/hello_dapp/index.html @@ -0,0 +1,59 @@ + + + + + + + Sui dApp Starter + + + + +
+ + + diff --git a/mover/AricRedemption/code/hello_dapp/move/counter/Move.toml b/mover/AricRedemption/code/hello_dapp/move/counter/Move.toml new file mode 100644 index 000000000..e536aaf7e --- /dev/null +++ b/mover/AricRedemption/code/hello_dapp/move/counter/Move.toml @@ -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/devnet" } + +[addresses] +counter = "0x0" diff --git a/mover/AricRedemption/code/hello_dapp/move/counter/sources/counter.move b/mover/AricRedemption/code/hello_dapp/move/counter/sources/counter.move new file mode 100644 index 000000000..857c95d19 --- /dev/null +++ b/mover/AricRedemption/code/hello_dapp/move/counter/sources/counter.move @@ -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) + } +} diff --git a/mover/AricRedemption/code/hello_dapp/package.json b/mover/AricRedemption/code/hello_dapp/package.json new file mode 100644 index 000000000..4bd181970 --- /dev/null +++ b/mover/AricRedemption/code/hello_dapp/package.json @@ -0,0 +1,35 @@ +{ + "name": "hello_dapp", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@mysten/dapp-kit": "0.14.10", + "@mysten/sui": "1.2.0", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@tanstack/react-query": "^5.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } +} \ No newline at end of file diff --git a/mover/AricRedemption/code/hello_dapp/prettier.config.cjs b/mover/AricRedemption/code/hello_dapp/prettier.config.cjs new file mode 100644 index 000000000..c07541106 --- /dev/null +++ b/mover/AricRedemption/code/hello_dapp/prettier.config.cjs @@ -0,0 +1,4 @@ +// eslint-disable-next-line no-undef +module.exports = { + proseWrap: "always", +}; diff --git a/mover/AricRedemption/code/hello_dapp/src/App.tsx b/mover/AricRedemption/code/hello_dapp/src/App.tsx new file mode 100644 index 000000000..dd5506c95 --- /dev/null +++ b/mover/AricRedemption/code/hello_dapp/src/App.tsx @@ -0,0 +1,61 @@ +import { ConnectButton, useCurrentAccount } from "@mysten/dapp-kit"; +import { isValidSuiObjectId } from "@mysten/sui/utils"; +import { Box, Container, Flex, Heading } from "@radix-ui/themes"; +import { useState } from "react"; +import { Counter } from "./Counter"; +import { CreateCounter } from "./CreateCounter"; + +function App() { + const currentAccount = useCurrentAccount(); + const [counterId, setCounter] = useState(() => { + const hash = window.location.hash.slice(1); + return isValidSuiObjectId(hash) ? hash : null; + }); + + return ( + <> + + + dApp Starter Template + + + + + + + + + {currentAccount ? ( + counterId ? ( + + ) : ( + { + window.location.hash = id; + setCounter(id); + }} + /> + ) + ) : ( + Please connect your wallet + )} + + + + ); +} + +export default App; diff --git a/mover/AricRedemption/code/hello_dapp/src/Counter.tsx b/mover/AricRedemption/code/hello_dapp/src/Counter.tsx new file mode 100644 index 000000000..bbd54cfd2 --- /dev/null +++ b/mover/AricRedemption/code/hello_dapp/src/Counter.tsx @@ -0,0 +1,87 @@ +import { + useCurrentAccount, + useSignAndExecuteTransaction, + useSuiClient, + useSuiClientQuery, +} from "@mysten/dapp-kit"; +import type { SuiObjectData } from "@mysten/sui/client"; +import { Transaction } from "@mysten/sui/transactions"; +import { Button, Flex, Heading, Text } from "@radix-ui/themes"; +import { useNetworkVariable } from "./networkConfig"; + +export function Counter({ id }: { id: string }) { + const client = useSuiClient(); + const currentAccount = useCurrentAccount(); + const counterPackageId = useNetworkVariable("counterPackageId"); + const { mutate: signAndExecute } = useSignAndExecuteTransaction(); + const { data, isPending, error, refetch } = useSuiClientQuery("getObject", { + id, + options: { + showContent: true, + showOwner: true, + }, + }); + + const executeMoveCall = (method: "increment" | "reset") => { + const tx = new Transaction(); + + if (method === "reset") { + tx.moveCall({ + arguments: [tx.object(id), tx.pure.u64(0)], + target: `${counterPackageId}::counter::set_value`, + }); + } else { + tx.moveCall({ + arguments: [tx.object(id)], + target: `${counterPackageId}::counter::increment`, + }); + } + + signAndExecute( + { + transaction: tx, + }, + { + onSuccess: (tx) => { + client.waitForTransaction({ digest: tx.digest }).then(() => { + refetch(); + }); + }, + }, + ); + }; + + if (isPending) return Loading...; + + if (error) return Error: {error.message}; + + if (!data.data) return Not found; + + const ownedByCurrentAccount = + getCounterFields(data.data)?.owner === currentAccount?.address; + + return ( + <> + Counter {id} + + + Count: {getCounterFields(data.data)?.value} + + + {ownedByCurrentAccount ? ( + + ) : null} + + + + ); +} +function getCounterFields(data: SuiObjectData) { + if (data.content?.dataType !== "moveObject") { + return null; + } + + return data.content.fields as { value: number; owner: string }; +} diff --git a/mover/AricRedemption/code/hello_dapp/src/CreateCounter.tsx b/mover/AricRedemption/code/hello_dapp/src/CreateCounter.tsx new file mode 100644 index 000000000..38dc3f93f --- /dev/null +++ b/mover/AricRedemption/code/hello_dapp/src/CreateCounter.tsx @@ -0,0 +1,60 @@ +import { Transaction } from "@mysten/sui/transactions"; +import { Button, Container } from "@radix-ui/themes"; +import { useSignAndExecuteTransaction, useSuiClient } from "@mysten/dapp-kit"; +import { useNetworkVariable } from "./networkConfig"; + +export function CreateCounter({ + onCreated, +}: { + onCreated: (id: string) => void; +}) { + const client = useSuiClient(); + const counterPackageId = useNetworkVariable("counterPackageId"); + const { mutate: signAndExecute } = useSignAndExecuteTransaction(); + + return ( + + + + ); + + function create() { + const tx = new Transaction(); + + tx.moveCall({ + arguments: [], + target: `${counterPackageId}::counter::create`, + }); + + signAndExecute( + { + transaction: tx, + }, + { + onSuccess: ({ digest }) => { + client + .waitForTransaction({ + digest: digest, + options: { + showEffects: true, + }, + }) + .then((tx) => { + const objectId = tx.effects?.created?.[0]?.reference?.objectId; + + if (objectId) { + onCreated(objectId); + } + }); + }, + }, + ); + } +} diff --git a/mover/AricRedemption/code/hello_dapp/src/constants.ts b/mover/AricRedemption/code/hello_dapp/src/constants.ts new file mode 100644 index 000000000..ef6fccd67 --- /dev/null +++ b/mover/AricRedemption/code/hello_dapp/src/constants.ts @@ -0,0 +1,3 @@ +export const DEVNET_COUNTER_PACKAGE_ID = "0xTODO"; +export const TESTNET_COUNTER_PACKAGE_ID = "0x1388cb7f8c1e9157c7717b801def1e8384c956c9716b3b4b675a889b0c8c73e0"; +export const MAINNET_COUNTER_PACKAGE_ID = "0xTODO"; diff --git a/mover/AricRedemption/code/hello_dapp/src/main.tsx b/mover/AricRedemption/code/hello_dapp/src/main.tsx new file mode 100644 index 000000000..55f323a5d --- /dev/null +++ b/mover/AricRedemption/code/hello_dapp/src/main.tsx @@ -0,0 +1,26 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "@mysten/dapp-kit/dist/index.css"; +import "@radix-ui/themes/styles.css"; + +import { SuiClientProvider, WalletProvider } from "@mysten/dapp-kit"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { Theme } from "@radix-ui/themes"; +import App from "./App.tsx"; +import { networkConfig } from "./networkConfig.ts"; + +const queryClient = new QueryClient(); + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + + + + + + + , +); diff --git a/mover/AricRedemption/code/hello_dapp/src/networkConfig.ts b/mover/AricRedemption/code/hello_dapp/src/networkConfig.ts new file mode 100644 index 000000000..7b6f8b73d --- /dev/null +++ b/mover/AricRedemption/code/hello_dapp/src/networkConfig.ts @@ -0,0 +1,31 @@ +import { getFullnodeUrl } from "@mysten/sui/client"; +import { + DEVNET_COUNTER_PACKAGE_ID, + TESTNET_COUNTER_PACKAGE_ID, + MAINNET_COUNTER_PACKAGE_ID, +} from "./constants.ts"; +import { createNetworkConfig } from "@mysten/dapp-kit"; + +const { networkConfig, useNetworkVariable, useNetworkVariables } = + createNetworkConfig({ + devnet: { + url: getFullnodeUrl("devnet"), + variables: { + counterPackageId: DEVNET_COUNTER_PACKAGE_ID, + }, + }, + testnet: { + url: getFullnodeUrl("testnet"), + variables: { + counterPackageId: TESTNET_COUNTER_PACKAGE_ID, + }, + }, + mainnet: { + url: getFullnodeUrl("mainnet"), + variables: { + counterPackageId: MAINNET_COUNTER_PACKAGE_ID, + }, + }, + }); + +export { useNetworkVariable, useNetworkVariables, networkConfig }; diff --git a/mover/AricRedemption/code/hello_dapp/src/vite-env.d.ts b/mover/AricRedemption/code/hello_dapp/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/mover/AricRedemption/code/hello_dapp/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mover/AricRedemption/code/hello_dapp/tsconfig.json b/mover/AricRedemption/code/hello_dapp/tsconfig.json new file mode 100644 index 000000000..a7fc6fbf2 --- /dev/null +++ b/mover/AricRedemption/code/hello_dapp/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/AricRedemption/code/hello_dapp/tsconfig.node.json b/mover/AricRedemption/code/hello_dapp/tsconfig.node.json new file mode 100644 index 000000000..42872c59f --- /dev/null +++ b/mover/AricRedemption/code/hello_dapp/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/AricRedemption/code/hello_dapp/vite.config.ts b/mover/AricRedemption/code/hello_dapp/vite.config.ts new file mode 100644 index 000000000..d366e8c8d --- /dev/null +++ b/mover/AricRedemption/code/hello_dapp/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); diff --git a/mover/AricRedemption/code/hello_world/Move.lock b/mover/AricRedemption/code/hello_world/Move.lock new file mode 100644 index 000000000..05c488151 --- /dev/null +++ b/mover/AricRedemption/code/hello_world/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "60F2000F4D6DAD240EF371DB3BC521F7BD4C8B814BC59CA473B852B77FDBE53C" +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 = "0xe07b7d443f195c14e81388b21aa69055ab162a6796d964bec9b302b6a66fc8d4" +latest-published-id = "0xe07b7d443f195c14e81388b21aa69055ab162a6796d964bec9b302b6a66fc8d4" +published-version = "1" diff --git a/mover/AricRedemption/code/hello_world/Move.toml b/mover/AricRedemption/code/hello_world/Move.toml new file mode 100644 index 000000000..201de1731 --- /dev/null +++ b/mover/AricRedemption/code/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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] +hello_world = "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/AricRedemption/code/hello_world/sources/hello_world.move b/mover/AricRedemption/code/hello_world/sources/hello_world.move new file mode 100644 index 000000000..5e6c69184 --- /dev/null +++ b/mover/AricRedemption/code/hello_world/sources/hello_world.move @@ -0,0 +1,19 @@ +module hello_world::hello { + use std::ascii::{String, string}; + use sui::object::{Self, UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key { + id: UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id: object::new(ctx), + say: string(b"move"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/AricRedemption/code/hello_world/tests/hello_world_tests.move b/mover/AricRedemption/code/hello_world/tests/hello_world_tests.move new file mode 100644 index 000000000..8fdf06eec --- /dev/null +++ b/mover/AricRedemption/code/hello_world/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_world::hello_world_tests { + // uncomment this line to import the module + // use hello_world::hello_world; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_world() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_world::hello_world_tests::ENotImplemented)] + fun test_hello_world_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/AricRedemption/images/package_scan.png b/mover/AricRedemption/images/package_scan.png new file mode 100644 index 000000000..95c4f76d3 Binary files /dev/null and b/mover/AricRedemption/images/package_scan.png differ diff --git a/mover/AricRedemption/images/sui_wallet.png b/mover/AricRedemption/images/sui_wallet.png new file mode 100644 index 000000000..1a6ed4ad2 Binary files /dev/null and b/mover/AricRedemption/images/sui_wallet.png differ diff --git a/mover/AricRedemption/readme.md b/mover/AricRedemption/readme.md new file mode 100644 index 000000000..3c604a3a9 --- /dev/null +++ b/mover/AricRedemption/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xc8f7b1a6145f145a59b0953ea2b57fc20fefd0a53d3d7bde81ba9eb02fe926f1` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `https://github.com/AricRedemption` + +## 个人简介 +- 工作经验: 4年 +- 技术栈: `Rust` `Typescript` `NodeJS` `NextJs` `Java` +> 重要提示 请认真写自己的简介 +- 2年web3开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `@AricRedemption` + +## 任务 + +## 01 hello move +- [x] Sui cli version: +- [x] Sui钱包截图: ![Sui钱包截图](./images/sui_wallet.png) +- [x] package id: 0xe07b7d443f195c14e81388b21aa69055ab162a6796d964bec9b302b6a66fc8d4 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/package_scan.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/Azhan1431/notes/image/task07.png b/mover/Azhan1431/notes/image/task07.png new file mode 100644 index 000000000..0871a29e6 Binary files /dev/null and b/mover/Azhan1431/notes/image/task07.png differ diff --git a/mover/Azhan1431/notes/readme.md b/mover/Azhan1431/notes/readme.md index 2aa5b4ca5..b021ae03a 100644 --- a/mover/Azhan1431/notes/readme.md +++ b/mover/Azhan1431/notes/readme.md @@ -44,3 +44,11 @@ ## 06 Dapp-kit SDK PTB - [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./image/task07.png) +- [] flag hash :DTbrYdgsRkAiGyywkMZjTPLgvb8PT7zeCEPpHd8qgGsP + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : \ No newline at end of file diff --git a/mover/BenjaminHang/code/readme.md b/mover/BenjaminHang/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/BenjaminHang/code/task1/hello_world/Move.lock b/mover/BenjaminHang/code/task1/hello_world/Move.lock new file mode 100644 index 000000000..fc308b469 --- /dev/null +++ b/mover/BenjaminHang/code/task1/hello_world/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "B4820E0AB67342E55887DC093A3903B604E5CD2FB09EF8321464A31CDDDC170C" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.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" diff --git a/mover/BenjaminHang/code/task1/hello_world/Move.toml b/mover/BenjaminHang/code/task1/hello_world/Move.toml new file mode 100644 index 000000000..af1041368 --- /dev/null +++ b/mover/BenjaminHang/code/task1/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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/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] +hello_world = "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/BenjaminHang/code/task1/hello_world/sources/hello_world.move b/mover/BenjaminHang/code/task1/hello_world/sources/hello_world.move new file mode 100644 index 000000000..bfb1f580b --- /dev/null +++ b/mover/BenjaminHang/code/task1/hello_world/sources/hello_world.move @@ -0,0 +1,18 @@ +module hello_world::hello_world { + use std::ascii::{String, string}; + use sui::transfer::transfer; + use sui::tx_context::{sender}; + + public struct Hello has key{ + id: UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id: object::new(ctx), + say: string(b"BenjaminHang"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/BenjaminHang/code/task1/hello_world/tests/hello_world_tests.move b/mover/BenjaminHang/code/task1/hello_world/tests/hello_world_tests.move new file mode 100644 index 000000000..8fdf06eec --- /dev/null +++ b/mover/BenjaminHang/code/task1/hello_world/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_world::hello_world_tests { + // uncomment this line to import the module + // use hello_world::hello_world; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_world() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_world::hello_world_tests::ENotImplemented)] + fun test_hello_world_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/BenjaminHang/code/task2/coin/Move.lock b/mover/BenjaminHang/code/task2/coin/Move.lock new file mode 100644 index 000000000..6d4c56673 --- /dev/null +++ b/mover/BenjaminHang/code/task2/coin/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "280442C32C0DAE8F83681EA23F8BA6397001147C727DF125E58CF2B0D17A289B" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.2" +edition = "2024.beta" +flavor = "sui" diff --git a/mover/BenjaminHang/code/task2/coin/Move.toml b/mover/BenjaminHang/code/task2/coin/Move.toml new file mode 100644 index 000000000..452732248 --- /dev/null +++ b/mover/BenjaminHang/code/task2/coin/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "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)"] +published-at = "0xb669c8dfd2913ca91e51ceb298d00c52fa76e83e0c8ae33874076bdbba46bc56" + +[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] +coin = "0xb669c8dfd2913ca91e51ceb298d00c52fa76e83e0c8ae33874076bdbba46bc56" + +# 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/BenjaminHang/code/task2/coin/sources/coin.move b/mover/BenjaminHang/code/task2/coin/sources/coin.move new file mode 100644 index 000000000..a96068a8b --- /dev/null +++ b/mover/BenjaminHang/code/task2/coin/sources/coin.move @@ -0,0 +1,26 @@ +module coin::my_coin { + + use sui::coin::create_currency; + use sui::transfer::{public_transfer, public_freeze_object}; + use sui::tx_context::sender; + + public struct MY_COIN has drop {} + + fun init(witness: MY_COIN, ctx: &mut TxContext) { + let icon_url = option::none(); + let (treasury_cap, coin_metadata) = create_currency( + witness, + 8, + b"BenjaminHang", + b"BenjaminHang", + b"BenjaminHang's coin", + icon_url, + ctx + ); + + // 所有权共享出去,不可变 + public_freeze_object(coin_metadata); + // 所有权发送给合约部署者 + public_transfer(treasury_cap, sender(ctx)); + } +} diff --git a/mover/BenjaminHang/code/task2/coin/sources/faucet_coin.move b/mover/BenjaminHang/code/task2/coin/sources/faucet_coin.move new file mode 100644 index 000000000..54e2bff19 --- /dev/null +++ b/mover/BenjaminHang/code/task2/coin/sources/faucet_coin.move @@ -0,0 +1,25 @@ +module coin::my_faucet_coin { + + use sui::coin::create_currency; + use sui::transfer::{public_freeze_object, public_share_object}; + + public struct MY_FAUCET_COIN has drop {} + + fun init(witness: MY_FAUCET_COIN, ctx: &mut TxContext) { + let icon_url = option::none(); + let (treasury_cap, coin_metadata) = create_currency( + witness, + 8, + b"BenjaminHangFaucet", + b"BenjaminHangFaucet", + b"BenjaminHang's faucet coin", + icon_url, + ctx + ); + + // 所有权共享出去,不可变 + public_freeze_object(coin_metadata); + // 所有权共享出去 + public_share_object(treasury_cap); + } +} diff --git a/mover/BenjaminHang/code/task2/coin/tests/coin_tests.move b/mover/BenjaminHang/code/task2/coin/tests/coin_tests.move new file mode 100644 index 000000000..4cd0af9ad --- /dev/null +++ b/mover/BenjaminHang/code/task2/coin/tests/coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module coin::coin_tests { + // uncomment this line to import the module + // use coin::coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::coin::coin_tests::ENotImplemented)] + fun test_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/BenjaminHang/code/task3/nft/Move.lock b/mover/BenjaminHang/code/task3/nft/Move.lock new file mode 100644 index 000000000..df0d2389e --- /dev/null +++ b/mover/BenjaminHang/code/task3/nft/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "77A43CDB8FC50E2EE1361E455252128DB19D8CD96C0E39ED4D623D15F73C95BC" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/mainnet", 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 = "0xfdd92f6f897fa93d6bd13b028e39cf10fdfa4f7e6660792696fd482253f74d53" +latest-published-id = "0xfdd92f6f897fa93d6bd13b028e39cf10fdfa4f7e6660792696fd482253f74d53" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xc3b5a0dd7409197aa8a06d903fab7f006d37256475dc7c6a2054746ba752fa47" +latest-published-id = "0xc3b5a0dd7409197aa8a06d903fab7f006d37256475dc7c6a2054746ba752fa47" +published-version = "1" diff --git a/mover/BenjaminHang/code/task3/nft/Move.toml b/mover/BenjaminHang/code/task3/nft/Move.toml new file mode 100644 index 000000000..3bd855cca --- /dev/null +++ b/mover/BenjaminHang/code/task3/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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] +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/BenjaminHang/code/task3/nft/sources/nft.move b/mover/BenjaminHang/code/task3/nft/sources/nft.move new file mode 100644 index 000000000..4b7c17567 --- /dev/null +++ b/mover/BenjaminHang/code/task3/nft/sources/nft.move @@ -0,0 +1,54 @@ +module nft::nft { + + use std::string; + use std::string::utf8; + use sui::display; + use sui::package; + use sui::transfer::{public_transfer}; + use sui::tx_context::sender; + + public struct MY_NFT has key, store { + id: UID, + name: string::String, + image_url: string::String, + } + + public struct NFT has drop {} + + fun init(witness: NFT, ctx: &mut tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + utf8(b"description"), + utf8(b"project_url"), + utf8(b"creator"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{image_url}"), + utf8(b"BenjaminHang test NFTs"), + utf8(b"https://github.com/BenjaminHang/letsmove"), + utf8(b"BenjaminHang"), + ]; + + let publisher = package::claim(witness, ctx); + + let mut display = display::new_with_fields(&publisher, keys, values, ctx); + + display::update_version(&mut display); + + public_transfer(publisher, sender(ctx)); + public_transfer(display, sender(ctx)); + } + + public entry fun mint(name: string::String, image_url: string::String, ctx: &mut tx_context::TxContext) { + let my_nft = MY_NFT { + id: object::new(ctx), + name, + image_url, + }; + + public_transfer(my_nft, sender(ctx)); + } +} diff --git a/mover/BenjaminHang/code/task3/nft/tests/nft_tests.move b/mover/BenjaminHang/code/task3/nft/tests/nft_tests.move new file mode 100644 index 000000000..1e3625fad --- /dev/null +++ b/mover/BenjaminHang/code/task3/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/BenjaminHang/code/task4/game/Move.lock b/mover/BenjaminHang/code/task4/game/Move.lock new file mode 100644 index 000000000..5be179d0e --- /dev/null +++ b/mover/BenjaminHang/code/task4/game/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "F32FD7EF3CAC07B296E92144968499443DC5BC5BE7D14210B4CB94D371C78754" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "coin" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "coin" +source = { local = "../../task2/coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.27.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xd5a5daa2c88be180fd8a93dc71699becdf0ca2f8f6057b6d632d111c7471fb95" +latest-published-id = "0xd5a5daa2c88be180fd8a93dc71699becdf0ca2f8f6057b6d632d111c7471fb95" +published-version = "1" diff --git a/mover/BenjaminHang/code/task4/game/Move.toml b/mover/BenjaminHang/code/task4/game/Move.toml new file mode 100644 index 000000000..025035308 --- /dev/null +++ b/mover/BenjaminHang/code/task4/game/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "game" +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" } +coin = { local = "../../task2/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] +game = "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/BenjaminHang/code/task4/game/sources/flip_coin.move b/mover/BenjaminHang/code/task4/game/sources/flip_coin.move new file mode 100644 index 000000000..2f1e17743 --- /dev/null +++ b/mover/BenjaminHang/code/task4/game/sources/flip_coin.move @@ -0,0 +1,100 @@ +module game::flip_coin { + + use sui::balance; + use sui::balance::{Balance, zero}; + use sui::coin; + use sui::coin::{from_balance, into_balance}; + use sui::object; + use sui::random; + use sui::random::Random; + use sui::transfer::{share_object, transfer, public_transfer}; + use sui::tx_context::sender; + use coin::my_faucet_coin::MY_FAUCET_COIN; + + public struct Game has key { + id: UID, + val: Balance, + } + + public struct AdaminCap has key { + id: UID, + } + + + fun init(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + val: zero(), + }; + + share_object(game); + + let admin = AdaminCap { + id: object::new(ctx), + }; + + transfer(admin, sender(ctx)); + } + + public entry fun play( + game: &mut Game, + flip_value: bool, + in: coin::Coin, + rand: &Random, + ctx: &mut TxContext + ) { + let coin_value = coin::value(&in); + + let game_val = balance::value(&game.val); + + // 池子总量大于投注数量,防止给用户返还资金不够 + if (game_val < coin_value) { + abort 0; + }; + // 池子总量大于投注数量10倍,防止all in漏洞 + if (game_val < coin_value * 10) { + abort 1; + }; + + // 生成随机数 + let mut gen = random::new_generator(rand, ctx); + let flag = random::generate_bool(&mut gen); + + // 双倍返还 + let play_address = sender(ctx); + if (flip_value == flag) { + withdraw(game, coin_value, play_address, ctx); + public_transfer(in, play_address); + } else { + // 放入国库 + deposit(game, in, ctx); + } + } + + // 内部存钱 + fun deposit(game: &mut Game, in: coin::Coin, ctx: &mut TxContext) { + let in_balance = into_balance(in); + balance::join(&mut game.val, in_balance); + } + + // 供外部调用存钱 + public entry fun public_deposit( + game: &mut Game, + in: coin::Coin, + ctx: &mut TxContext + ) { + deposit(game, in, ctx); + } + + // 内部取钱 + fun withdraw(game: &mut Game, amt: u64, to: address, ctx: &mut TxContext) { + let win_balance = balance::split(&mut game.val, amt); + let win_coin = from_balance(win_balance, ctx); + public_transfer(win_coin, to); + } + + // 供外部调用 + public entry fun public_withdraw(_: &AdaminCap, game: &mut Game, amt: u64, ctx: &mut TxContext) { + withdraw(game, amt, sender(ctx), ctx); + } +} diff --git a/mover/BenjaminHang/code/task4/game/tests/game_tests.move b/mover/BenjaminHang/code/task4/game/tests/game_tests.move new file mode 100644 index 000000000..c7dbc671a --- /dev/null +++ b/mover/BenjaminHang/code/task4/game/tests/game_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module game::game_tests { + // uncomment this line to import the module + // use game::game; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_game() { + // pass + } + + #[test, expected_failure(abort_code = ::game::game_tests::ENotImplemented)] + fun test_game_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/BenjaminHang/code/task5/benjaminhang/Move.lock b/mover/BenjaminHang/code/task5/benjaminhang/Move.lock new file mode 100644 index 000000000..09e9000cf --- /dev/null +++ b/mover/BenjaminHang/code/task5/benjaminhang/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "63861770FC287E0CC181CDDE846C5349BE8A20F0F6F9CF156D62326C57F88880" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/mainnet", 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.mainnet] +chain-id = "35834a8a" +original-published-id = "0x35cb07c876fab777bffa1e3f9faa3df82190540bf4dd5e481c02945ea2b9deac" +latest-published-id = "0x35cb07c876fab777bffa1e3f9faa3df82190540bf4dd5e481c02945ea2b9deac" +published-version = "1" diff --git a/mover/BenjaminHang/code/task5/benjaminhang/Move.toml b/mover/BenjaminHang/code/task5/benjaminhang/Move.toml new file mode 100644 index 000000000..79b349c4d --- /dev/null +++ b/mover/BenjaminHang/code/task5/benjaminhang/Move.toml @@ -0,0 +1,36 @@ +[package] +name = "benjaminhang" +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] +benjaminhang = "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/BenjaminHang/code/task5/benjaminhang/sources/swap.move b/mover/BenjaminHang/code/task5/benjaminhang/sources/swap.move new file mode 100644 index 000000000..b556bd96d --- /dev/null +++ b/mover/BenjaminHang/code/task5/benjaminhang/sources/swap.move @@ -0,0 +1,112 @@ +module benjaminhang::swap { + + use sui::balance::{Balance, zero, join, split}; + use sui::coin; + use sui::coin::{Coin, into_balance, from_balance}; + use sui::transfer::{share_object, transfer, public_transfer}; + use sui::tx_context::sender; + + public struct Bank has key { + id: UID, + coin1: Balance, + coin2: Balance + } + + public struct AdminCap has key { + id: UID, + } + + fun init(ctx: &mut TxContext) { + let admin = AdminCap { + id: object::new(ctx), + }; + + transfer(admin, sender(ctx)); + } + + public entry fun create_bank(ctx: &mut TxContext) { + let bank = Bank { + id: object::new(ctx), + coin1: zero(), + coin2: zero(), + }; + share_object(bank); + } + + // 内部存钱函数 + fun deposit(bank_coin: &mut Balance, in: Coin) { + let in_balance = into_balance(in); + join(bank_coin, in_balance); + } + + // 内部取钱函数 + fun withdraw(bank_coin: &mut Balance, amt: u64, ctx: &mut TxContext) { + let out_balance = split(bank_coin, amt); + let out_coin = from_balance(out_balance, ctx); + public_transfer(out_coin, sender(ctx)); + } + + // 存coin1 + public entry fun deposit_coin1( + bank: &mut Bank, + in: Coin, + _: &mut TxContext + ) { + deposit(&mut bank.coin1, in); + } + + // 取coin1 + public entry fun withdraw_coin1( + _: &AdminCap, + bank: &mut Bank, + amt: u64, + ctx: &mut TxContext + ) { + withdraw(&mut bank.coin1, amt, ctx); + } + + // 存coin2 + public entry fun deposit_coin2( + bank: &mut Bank, + in: Coin, + _: &mut TxContext + ) { + deposit(&mut bank.coin2, in); + } + + // 取coin2 + public entry fun withdraw_coin2( + _: &AdminCap, + bank: &mut Bank, + amt: u64, + ctx: &mut TxContext + ) { + withdraw(&mut bank.coin2, amt, ctx); + } + + // swap coin1 to coin2 + public entry fun swap_1_2( + bank: &mut Bank, + in: Coin, + ctx: &mut TxContext + ) { + let in_value = coin::value(&in); + let out_amt = in_value * 73 / 10; + + deposit(&mut bank.coin1, in); + withdraw(&mut bank.coin2, out_amt, ctx); + } + + // swap coin2 to coin1 + public entry fun swap_2_1( + bank: &mut Bank, + in: Coin, + ctx: &mut TxContext + ) { + let in_value = coin::value(&in); + let out_amt = in_value * 10 / 73; + + deposit(&mut bank.coin2, in); + withdraw(&mut bank.coin1, out_amt, ctx); + } +} diff --git a/mover/BenjaminHang/code/task5/benjaminhang/tests/benjaminhang_tests.move b/mover/BenjaminHang/code/task5/benjaminhang/tests/benjaminhang_tests.move new file mode 100644 index 000000000..aed4d727c --- /dev/null +++ b/mover/BenjaminHang/code/task5/benjaminhang/tests/benjaminhang_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module benjaminhang::benjaminhang_tests { + // uncomment this line to import the module + // use benjaminhang::benjaminhang; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_benjaminhang() { + // pass + } + + #[test, expected_failure(abort_code = ::benjaminhang::benjaminhang_tests::ENotImplemented)] + fun test_benjaminhang_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/BenjaminHang/code/task6/basic-dapp-ptb/README.md b/mover/BenjaminHang/code/task6/basic-dapp-ptb/README.md new file mode 100644 index 000000000..d0889dcae --- /dev/null +++ b/mover/BenjaminHang/code/task6/basic-dapp-ptb/README.md @@ -0,0 +1,35 @@ +# 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/) +- [`@mysten/dapp-kit`](https://sdk.mystenlabs.com/dapp-kit) for connecting to + wallets and loading data +- [pnpm](https://pnpm.io/) for package management + +## 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 +``` diff --git a/mover/BenjaminHang/code/task6/basic-dapp-ptb/index.html b/mover/BenjaminHang/code/task6/basic-dapp-ptb/index.html new file mode 100644 index 000000000..bb7f75b16 --- /dev/null +++ b/mover/BenjaminHang/code/task6/basic-dapp-ptb/index.html @@ -0,0 +1,59 @@ + + + + + + + Sui dApp Starter + + + + +
+ + + diff --git a/mover/BenjaminHang/code/task6/basic-dapp-ptb/package-lock.json b/mover/BenjaminHang/code/task6/basic-dapp-ptb/package-lock.json new file mode 100644 index 000000000..e3ae359dc --- /dev/null +++ b/mover/BenjaminHang/code/task6/basic-dapp-ptb/package-lock.json @@ -0,0 +1,7772 @@ +{ + "name": "basic-dapp", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "basic-dapp", + "version": "0.0.0", + "dependencies": { + "@mysten/dapp-kit": "0.14.11", + "@mysten/sui": "1.2.1", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@tanstack/react-query": "^5.0.0", + "navi-sdk": "^1.1.23", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } + }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "license": "MIT", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, + "node_modules/@0no-co/graphqlsp": { + "version": "1.12.11", + "resolved": "https://registry.npmmirror.com/@0no-co/graphqlsp/-/graphqlsp-1.12.11.tgz", + "integrity": "sha512-vLja9r7L6BBXwxW86Wyi5z5hjTHscH7qoQooy+MXHkM9srBB6ZuesYZq5DQ/+SErQrFyaxeY+hwv2qBAksxriw==", + "license": "MIT", + "dependencies": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.7.tgz", + "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@digitak/grubber": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/@digitak/grubber/-/grubber-3.1.4.tgz", + "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==", + "license": "MIT" + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmmirror.com/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.4", + "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.6.4.tgz", + "integrity": "sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.4" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.7", + "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.6.7.tgz", + "integrity": "sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.4" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/@floating-ui/react-dom/-/react-dom-2.1.1.tgz", + "integrity": "sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.4", + "resolved": "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.4.tgz", + "integrity": "sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==", + "license": "MIT" + }, + "node_modules/@gql.tada/cli-utils": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/@gql.tada/cli-utils/-/cli-utils-1.5.1.tgz", + "integrity": "sha512-JVLpoXLa4msrE7MHnmW/7fYnIl8dncLom8T/Ghsxu+Kz5iMGnzK2joJN5cZt4ewCAqfCV3HZZ0VH189OalGd9g==", + "license": "MIT", + "dependencies": { + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/internal": "1.0.4", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + }, + "peerDependencies": { + "@0no-co/graphqlsp": "^1.12.9", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@gql.tada/internal": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@gql.tada/internal/-/internal-1.0.4.tgz", + "integrity": "sha512-tq0rgoqjhdVqKWEsbrkiX7Qpp5gA4/Br9r9TVBeh3WpJIcuGh5U48UjB4IOxtXBePZdX8E0oc07GjOid/P60Wg==", + "license": "MIT", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "license": "MIT", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mysten/bcs": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@mysten/bcs/-/bcs-1.0.2.tgz", + "integrity": "sha512-haHT0km/9yIIe8lwo8gDFxGLnoxfRF4WmEVCz4lDXbEVQRsZkF0zB97kukiwMjDuFBaGVUhrOMCLz6td8tSMaQ==", + "license": "Apache-2.0", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/dapp-kit": { + "version": "0.14.11", + "resolved": "https://registry.npmmirror.com/@mysten/dapp-kit/-/dapp-kit-0.14.11.tgz", + "integrity": "sha512-9wInc/XEmM7gU3p7drpiGsWCIeFomcsXJqeDgiPGWl3BWS1+0q1/nm6rQMiLx8M1LeCFvDgTYHB4Lg4fTGpvIQ==", + "license": "Apache-2.0", + "dependencies": { + "@mysten/sui": "1.2.1", + "@mysten/wallet-standard": "0.12.11", + "@mysten/zksend": "0.10.0", + "@radix-ui/react-dialog": "^1.0.4", + "@radix-ui/react-dropdown-menu": "^2.0.5", + "@radix-ui/react-slot": "^1.0.2", + "@vanilla-extract/css": "^1.13.0", + "@vanilla-extract/dynamic": "^2.0.3", + "@vanilla-extract/recipes": "^0.5.0", + "clsx": "^2.0.0", + "zustand": "^4.4.1" + }, + "peerDependencies": { + "@tanstack/react-query": "^5.0.0", + "react": "*" + } + }, + "node_modules/@mysten/sui": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@mysten/sui/-/sui-1.2.1.tgz", + "integrity": "sha512-1vPJOxuQhYGiDPFXs1diLFHZ8HaYSvhWipg1BSk/VkwTN2Kxa1cJTA2iN6AiuBwC6KEbtEXfHD9CeCnPRhJchg==", + "license": "Apache-2.0", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "1.0.2", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.7.0", + "graphql": "^16.8.1", + "tweetnacl": "^1.0.3", + "valibot": "^0.25.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmmirror.com/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "license": "Apache-2.0", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@mysten/sui.js/node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "license": "Apache-2.0", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/wallet-standard": { + "version": "0.12.11", + "resolved": "https://registry.npmmirror.com/@mysten/wallet-standard/-/wallet-standard-0.12.11.tgz", + "integrity": "sha512-2fjggE9aLXPYjE/rvN9NmwIJDmuuT3F/uwD8L3wQuvxn0OOzTqwtnjZ1dp2HnwbsG5+uM88IoDOlPm5AoWlNxA==", + "license": "Apache-2.0", + "dependencies": { + "@mysten/sui": "1.2.1", + "@wallet-standard/core": "1.0.3" + } + }, + "node_modules/@mysten/zksend": { + "version": "0.10.0", + "resolved": "https://registry.npmmirror.com/@mysten/zksend/-/zksend-0.10.0.tgz", + "integrity": "sha512-KVeZQGp8/VCUxc1inicS50rFoMAhfGBeSi2OdlZ8/Ui+ctxv9k10El3/ROJ1rWT1LauMqE6pF8N7tcAMmodK8A==", + "license": "Apache-2.0", + "dependencies": { + "@mysten/sui": "1.2.1", + "@mysten/wallet-standard": "0.12.11", + "mitt": "^3.0.1", + "nanostores": "^0.9.3", + "valibot": "^0.25.0" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@radix-ui/colors": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/colors/-/colors-3.0.0.tgz", + "integrity": "sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==", + "license": "MIT" + }, + "node_modules/@radix-ui/number": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/number/-/number-1.1.0.tgz", + "integrity": "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==", + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/primitive/-/primitive-1.1.0.tgz", + "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-accessible-icon": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.1.0.tgz", + "integrity": "sha512-i9Zg4NOSXlfUva0agzI2DjWrvFJm9uO4L6CMW7nmMa5CIOOX/Yin894W7WwjodFQWPwe5kmAJ4JF33R8slKI2g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-visually-hidden": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-alert-dialog": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.1.tgz", + "integrity": "sha512-wmCoJwj7byuVuiLKqDLlX7ClSUU0vd9sdCeM+2Ls+uf13+cpSJoMgwysHq1SGVVkJj5Xn0XWi1NoRCdkMpr6Mw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dialog": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", + "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-aspect-ratio": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.0.tgz", + "integrity": "sha512-dP87DM/Y7jFlPgUZTlhx6FF5CEzOiaxp2rBCKlaXlpH5Ip/9Fg5zZ9lDOQ5o/MOfUlf36eak14zoWYpgcgGoOg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-avatar/-/react-avatar-1.1.0.tgz", + "integrity": "sha512-Q/PbuSMk/vyAd/UoIShVGZ7StHHeRFYU7wXmi5GV+8cLXflZAEpHL/F697H1klrzxKXNtZ97vWiC0q3RKUH8UA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-checkbox/-/react-checkbox-1.1.1.tgz", + "integrity": "sha512-0i/EKJ222Afa1FE0C6pNJxDq1itzcl3HChE9DwskA4th4KRse8ojx8a1nVcOjwJdbpDLcz7uol77yYnQNMHdKw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", + "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", + "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context-menu": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-context-menu/-/react-context-menu-2.2.1.tgz", + "integrity": "sha512-wvMKKIeb3eOrkJ96s722vcidZ+2ZNfcYZWBPRHIB1VWrF+fiF851Io6LX0kmK5wTDQFKdulCCKJk2c3SBaQHvA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-menu": "2.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-dialog/-/react-dialog-1.1.1.tgz", + "integrity": "sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz", + "integrity": "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.1.tgz", + "integrity": "sha512-y8E+x9fBq9qvteD2Zwa4397pUVhYsh9iq44b5RD5qu1GMJWBCBuVg1hMyItbc6+zH00TxGRqd9Iot4wzf3OoBQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-menu": "2.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.0.tgz", + "integrity": "sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", + "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-form/-/react-form-0.0.3.tgz", + "integrity": "sha512-kgE+Z/haV6fxE5WqIXj05KkaXa3OkZASoTDy25yX2EIp/x0c54rOH/vFr5nOZTg7n7T1z8bSyXmiVIFP9bbhPQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-label": "2.0.2", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-context": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-id": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-hover-card": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-hover-card/-/react-hover-card-1.1.1.tgz", + "integrity": "sha512-IwzAOP97hQpDADYVKrEEHUH/b2LA+9MgB0LgdmnbFO2u/3M5hmEofjjr2M6CyzUblaAqJdFm6B7oFtU72DPXrA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-icons": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-icons/-/react-icons-1.3.0.tgz", + "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==", + "license": "MIT", + "peerDependencies": { + "react": "^16.x || ^17.x || ^18.x" + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-label/-/react-label-2.0.2.tgz", + "integrity": "sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-menu/-/react-menu-2.1.1.tgz", + "integrity": "sha512-oa3mXRRVjHi6DZu/ghuzdylyjaMXLymx83irM7hTxutQbD+7IhPKdMdRHD26Rm+kHRrWcrUkkRPv5pd47a2xFQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-popover/-/react-popover-1.1.1.tgz", + "integrity": "sha512-3y1A3isulwnWhvTTwmIreiB8CF4L+qRjZnK1wYLO7pplddzXKby/GnZ2M7OZY3qgnl6p9AodUIHRYGXNah8Y7g==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-popper/-/react-popper-1.2.0.tgz", + "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-portal/-/react-portal-1.1.1.tgz", + "integrity": "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-presence/-/react-presence-1.1.0.tgz", + "integrity": "sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", + "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-radio-group": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-radio-group/-/react-radio-group-1.2.0.tgz", + "integrity": "sha512-yv+oiLaicYMBpqgfpSPw6q+RyXlLdIpQWDHZbUKURxe+nEh53hFXPPlfhfQQtYkS5MMK/5IWIa76SksleQZSzw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz", + "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-scroll-area/-/react-scroll-area-1.1.0.tgz", + "integrity": "sha512-9ArIZ9HWhsrfqS765h+GZuLoxaRHD/j0ZWOWilsCvYTpYJp8XwCqNG7Dt9Nu/TItKOdgLGkOPCodQvDc+UMwYg==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-select/-/react-select-2.1.1.tgz", + "integrity": "sha512-8iRDfyLtzxlprOo9IicnzvpsO1wNCkuwzzCM+Z5Rb5tNOpCdMvcc2AkzX0Fz+Tz9v6NJ5B/7EEgyZveo4FBRfQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-separator/-/react-separator-1.1.0.tgz", + "integrity": "sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slider": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-slider/-/react-slider-1.2.0.tgz", + "integrity": "sha512-dAHCDA4/ySXROEPaRtaMV5WHL8+JB/DbtyTbJjYkY0RXmKMO2Ln8DFZhywG5/mVQ4WqHDBc8smc14yPXPqZHYA==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", + "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-switch/-/react-switch-1.1.0.tgz", + "integrity": "sha512-OBzy5WAj641k0AOSpKQtreDMe+isX0MQJ1IVyF03ucdF3DunOnROVrjWs8zsXUxC3zfZ6JL9HFVCUlMghz9dJw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-tabs/-/react-tabs-1.1.0.tgz", + "integrity": "sha512-bZgOKB/LtZIij75FSuPzyEti/XBhJH52ExgtdVqjCIh+Nx/FW+LhnbXtbCzIi34ccyMsyOja8T0thCzoHFXNKA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-tooltip/-/react-tooltip-1.1.2.tgz", + "integrity": "sha512-9XRsLwe6Yb9B/tlnYCPVUd/TFS4J7HuOZW345DCeC6vKIxQGMZdx21RK4VoZauPD5frgkXTYVS5y90L+3YBn4w==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz", + "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz", + "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==", + "license": "MIT" + }, + "node_modules/@radix-ui/themes": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/themes/-/themes-2.0.3.tgz", + "integrity": "sha512-yaXQ8aWT2P1CQ0Xe6YCRD9HXsfMTvKkrIYkrc4aitCzhGTLS0sjtTqKmrxIWMVA+3DIbEuG9K/8aAMRJBhep8g==", + "license": "MIT", + "dependencies": { + "@radix-ui/colors": "^3.0.0", + "@radix-ui/primitive": "^1.0.1", + "@radix-ui/react-accessible-icon": "^1.0.3", + "@radix-ui/react-alert-dialog": "^1.0.5", + "@radix-ui/react-aspect-ratio": "^1.0.3", + "@radix-ui/react-avatar": "^1.0.4", + "@radix-ui/react-checkbox": "^1.0.4", + "@radix-ui/react-context-menu": "^2.1.5", + "@radix-ui/react-dialog": "^1.0.5", + "@radix-ui/react-direction": "^1.0.1", + "@radix-ui/react-dropdown-menu": "^2.0.6", + "@radix-ui/react-form": "^0.0.3", + "@radix-ui/react-hover-card": "^1.0.7", + "@radix-ui/react-popover": "^1.0.7", + "@radix-ui/react-portal": "^1.0.4", + "@radix-ui/react-radio-group": "^1.1.3", + "@radix-ui/react-scroll-area": "^1.0.5", + "@radix-ui/react-select": "^2.0.0", + "@radix-ui/react-separator": "^1.0.3", + "@radix-ui/react-slider": "^1.1.2", + "@radix-ui/react-slot": "^1.0.2", + "@radix-ui/react-switch": "^1.0.3", + "@radix-ui/react-tabs": "^1.0.4", + "@radix-ui/react-tooltip": "^1.0.7", + "@radix-ui/react-use-callback-ref": "^1.0.1", + "@radix-ui/react-visually-hidden": "^1.0.3", + "classnames": "^2.3.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz", + "integrity": "sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz", + "integrity": "sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz", + "integrity": "sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz", + "integrity": "sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz", + "integrity": "sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz", + "integrity": "sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz", + "integrity": "sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz", + "integrity": "sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz", + "integrity": "sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz", + "integrity": "sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz", + "integrity": "sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz", + "integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz", + "integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz", + "integrity": "sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz", + "integrity": "sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz", + "integrity": "sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@scure/base": { + "version": "1.1.7", + "resolved": "https://registry.npmmirror.com/@scure/base/-/base-1.1.7.tgz", + "integrity": "sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "license": "MIT" + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==", + "license": "MIT" + }, + "node_modules/@swc/core": { + "version": "1.6.13", + "resolved": "https://registry.npmmirror.com/@swc/core/-/core-1.6.13.tgz", + "integrity": "sha512-eailUYex6fkfaQTev4Oa3mwn0/e3mQU4H8y1WPuImYQESOQDtVrowwUGDSc19evpBbHpKtwM+hw8nLlhIsF+Tw==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.9" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.6.13", + "@swc/core-darwin-x64": "1.6.13", + "@swc/core-linux-arm-gnueabihf": "1.6.13", + "@swc/core-linux-arm64-gnu": "1.6.13", + "@swc/core-linux-arm64-musl": "1.6.13", + "@swc/core-linux-x64-gnu": "1.6.13", + "@swc/core-linux-x64-musl": "1.6.13", + "@swc/core-win32-arm64-msvc": "1.6.13", + "@swc/core-win32-ia32-msvc": "1.6.13", + "@swc/core-win32-x64-msvc": "1.6.13" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.6.13", + "resolved": "https://registry.npmmirror.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.6.13.tgz", + "integrity": "sha512-SOF4buAis72K22BGJ3N8y88mLNfxLNprTuJUpzikyMGrvkuBFNcxYtMhmomO0XHsgLDzOJ+hWzcgjRNzjMsUcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.6.13", + "resolved": "https://registry.npmmirror.com/@swc/core-darwin-x64/-/core-darwin-x64-1.6.13.tgz", + "integrity": "sha512-AW8akFSC+tmPE6YQQvK9S2A1B8pjnXEINg+gGgw0KRUUXunvu1/OEOeC5L2Co1wAwhD7bhnaefi06Qi9AiwOag==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.6.13", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.6.13.tgz", + "integrity": "sha512-f4gxxvDXVUm2HLYXRd311mSrmbpQF2MZ4Ja6XCQz1hWAxXdhRl1gpnZ+LH/xIfGSwQChrtLLVrkxdYUCVuIjFg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.6.13", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.6.13.tgz", + "integrity": "sha512-Nf/eoW2CbG8s+9JoLtjl9FByBXyQ5cjdBsA4efO7Zw4p+YSuXDgc8HRPC+E2+ns0praDpKNZtLvDtmF2lL+2Gg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.6.13", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.6.13.tgz", + "integrity": "sha512-2OysYSYtdw79prJYuKIiux/Gj0iaGEbpS2QZWCIY4X9sGoETJ5iMg+lY+YCrIxdkkNYd7OhIbXdYFyGs/w5LDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.6.13", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.6.13.tgz", + "integrity": "sha512-PkR4CZYJNk5hcd2+tMWBpnisnmYsUzazI1O5X7VkIGFcGePTqJ/bWlfUIVVExWxvAI33PQFzLbzmN5scyIUyGQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.6.13", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.6.13.tgz", + "integrity": "sha512-OdsY7wryTxCKwGQcwW9jwWg3cxaHBkTTHi91+5nm7hFPpmZMz1HivJrWAMwVE7iXFw+M4l6ugB/wCvpYrUAAjA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.6.13", + "resolved": "https://registry.npmmirror.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.6.13.tgz", + "integrity": "sha512-ap6uNmYjwk9M/+bFEuWRNl3hq4VqgQ/Lk+ID/F5WGqczNr0L7vEf+pOsRAn0F6EV+o/nyb3ePt8rLhE/wjHpPg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.6.13", + "resolved": "https://registry.npmmirror.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.6.13.tgz", + "integrity": "sha512-IJ8KH4yIUHTnS/U1jwQmtbfQals7zWPG0a9hbEfIr4zI0yKzjd83lmtS09lm2Q24QBWOCFGEEbuZxR4tIlvfzA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.6.13", + "resolved": "https://registry.npmmirror.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.6.13.tgz", + "integrity": "sha512-f6/sx6LMuEnbuxtiSL/EkR0Y6qUHFw1XVrh6rwzKXptTipUdOY+nXpKoh+1UsBm/r7H0/5DtOdrn3q5ZHbFZjQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/types": { + "version": "0.1.9", + "resolved": "https://registry.npmmirror.com/@swc/types/-/types-0.1.9.tgz", + "integrity": "sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.50.1", + "resolved": "https://registry.npmmirror.com/@tanstack/query-core/-/query-core-5.50.1.tgz", + "integrity": "sha512-lpfhKPrJlyV2DSVcQb/HuozH3Av3kws4ge22agx+lNGpFkS4vLZ7St0l3GLwlAD+bqB+qXGex3JdRKUNtMviEQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.50.1", + "resolved": "https://registry.npmmirror.com/@tanstack/react-query/-/react-query-5.50.1.tgz", + "integrity": "sha512-s0DW3rVBDPReDDovUjVqItVa3R2nPfUANK9nqGvarO2DwTiY9U4EBTsqizMxItRCoGgK5apeM7D3mxlHrSKpdQ==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.50.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmmirror.com/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vanilla-extract/css": { + "version": "1.15.3", + "resolved": "https://registry.npmmirror.com/@vanilla-extract/css/-/css-1.15.3.tgz", + "integrity": "sha512-mxoskDAxdQAspbkmQRxBvolUi1u1jnyy9WZGm+GeH8V2wwhEvndzl1QoK7w8JfA0WFevTxbev5d+i+xACZlPhA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@vanilla-extract/private": "^1.0.5", + "css-what": "^6.1.0", + "cssesc": "^3.0.0", + "csstype": "^3.0.7", + "dedent": "^1.5.3", + "deep-object-diff": "^1.1.9", + "deepmerge": "^4.2.2", + "media-query-parser": "^2.0.2", + "modern-ahocorasick": "^1.0.0", + "picocolors": "^1.0.0" + } + }, + "node_modules/@vanilla-extract/dynamic": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/@vanilla-extract/dynamic/-/dynamic-2.1.1.tgz", + "integrity": "sha512-iqf736036ujEIKsIq28UsBEMaLC2vR2DhwKyrG3NDb/fRy9qL9FKl1TqTtBV4daU30Uh3saeik4vRzN8bzQMbw==", + "license": "MIT", + "dependencies": { + "@vanilla-extract/private": "^1.0.5" + } + }, + "node_modules/@vanilla-extract/private": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@vanilla-extract/private/-/private-1.0.5.tgz", + "integrity": "sha512-6YXeOEKYTA3UV+RC8DeAjFk+/okoNz/h88R+McnzA2zpaVqTR/Ep+vszkWYlGBcMNO7vEkqbq5nT/JMMvhi+tw==", + "license": "MIT" + }, + "node_modules/@vanilla-extract/recipes": { + "version": "0.5.3", + "resolved": "https://registry.npmmirror.com/@vanilla-extract/recipes/-/recipes-0.5.3.tgz", + "integrity": "sha512-SPREq1NmaoKuvJeOV0pppOkwy3pWZUoDufsyQ6iHrbkHhAU7XQqG9o0iZSmg5JoVgDLIiOr9djQb0x9wuxig7A==", + "license": "MIT", + "peerDependencies": { + "@vanilla-extract/css": "^1.0.0" + } + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.0.tgz", + "integrity": "sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@swc/core": "^1.5.7" + }, + "peerDependencies": { + "vite": "^4 || ^5" + } + }, + "node_modules/@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "license": "MIT", + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "license": "MIT", + "dependencies": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "license": "MIT", + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "license": "MIT", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.0-alpha.15", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.4.0-alpha.15.tgz", + "integrity": "sha512-mt8z4Fm2WxfQYoQHPcKVjLQV6PgPqyKLbkCVY2cr5RSaamqCHjhKEpsFX66aL4D/7oYguuaUw9Bx03Vt0TpIIA==", + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.0-alpha.15" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.0-alpha.15", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-2.4.0-alpha.15.tgz", + "integrity": "sha512-8Htngw5TmBY4L3ClDqBGyfLhsB8EmoEXUH1xydyEtEoK0O6NX5ur4Jw8jgvscTlwzizyl/wsN1vn0cQXVbbXYg==", + "license": "MIT" + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.31", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.31.tgz", + "integrity": "sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.31", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.31", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.31.tgz", + "integrity": "sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.4.31", + "@vue/shared": "3.4.31" + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.26", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-2.0.26.tgz", + "integrity": "sha512-/lt6SfQ3O1yDAhPsnLv9iSUgXd1dMHqUm/t3RctfqjuwQf1LnftZ414X3UBn6aXT4MiwXWtbNJ4Z0NZWwDWgJQ==", + "license": "MIT", + "dependencies": { + "@volar/language-core": "~2.4.0-alpha.15", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.4.31", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.31.tgz", + "integrity": "sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==", + "license": "MIT" + }, + "node_modules/@wallet-standard/app": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@wallet-standard/app/-/app-1.0.1.tgz", + "integrity": "sha512-LnLYq2Vy2guTZ8GQKKSXQK3+FRGPil75XEdkZqE6fiLixJhZJoJa5hT7lXxwe0ykVTt9LEThdTbOpT7KadS26Q==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/base": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@wallet-standard/base/-/base-1.0.1.tgz", + "integrity": "sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w==", + "license": "Apache-2.0", + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/core": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@wallet-standard/core/-/core-1.0.3.tgz", + "integrity": "sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/app": "^1.0.1", + "@wallet-standard/base": "^1.0.1", + "@wallet-standard/features": "^1.0.3", + "@wallet-standard/wallet": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/features": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@wallet-standard/features/-/features-1.0.3.tgz", + "integrity": "sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/wallet": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@wallet-standard/wallet/-/wallet-1.0.1.tgz", + "integrity": "sha512-qkhJeuQU2afQTZ02yMZE5SFc91Fo3hyFjFkpQglHudENNyiSG0oUKcIjky8X32xVSaumgTZSQUAzpXnCTWHzKQ==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==", + "license": "MIT" + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "license": "MIT", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmmirror.com/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/code-red/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", + "peer": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmmirror.com/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==", + "license": "MIT" + }, + "node_modules/deep-eql": { + "version": "4.1.4", + "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "license": "MIT", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-object-diff": { + "version": "1.1.9", + "resolved": "https://registry.npmmirror.com/deep-object-diff/-/deep-object-diff-1.1.9.tgz", + "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.8", + "resolved": "https://registry.npmmirror.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.8.tgz", + "integrity": "sha512-MIKAclwaDFIiYtVBLzDdm16E+Ty4GwhB6wZlCAG1R3Ur+F9Qbo6PRxpA5DK7XtDgm+WlCoAY2WxAwqhmIDHg6Q==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrun": { + "version": "3.2.26", + "resolved": "https://registry.npmmirror.com/esrun/-/esrun-3.2.26.tgz", + "integrity": "sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==", + "license": "ISC", + "dependencies": { + "@digitak/grubber": "^3.1.4", + "chokidar": "^3.5.1", + "esbuild": "^0.17.4" + }, + "bin": { + "esrun": "bin.js" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/esrun/node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gql.tada": { + "version": "1.8.2", + "resolved": "https://registry.npmmirror.com/gql.tada/-/gql.tada-1.8.2.tgz", + "integrity": "sha512-LLt+2RcLY6i+Rq+LQQwx3uiEAPfA+pmEaAo/bJjUdaV1CVJBy3Wowds6GHeerW5kvekRM/XdbPTJw5OvnLq/DQ==", + "license": "MIT", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5", + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/cli-utils": "1.5.1", + "@gql.tada/internal": "1.0.4" + }, + "bin": { + "gql-tada": "bin/cli.js", + "gql.tada": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/graphql": { + "version": "16.9.0", + "resolved": "https://registry.npmmirror.com/graphql/-/graphql-16.9.0.tgz", + "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "license": "MIT", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "license": "MIT", + "peer": true + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmmirror.com/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0", + "peer": true + }, + "node_modules/media-query-parser": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/media-query-parser/-/media-query-parser-2.0.2.tgz", + "integrity": "sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/mlly": { + "version": "1.7.1", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.1.tgz", + "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", + "license": "MIT", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + } + }, + "node_modules/modern-ahocorasick": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/modern-ahocorasick/-/modern-ahocorasick-1.0.1.tgz", + "integrity": "sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanostores": { + "version": "0.9.5", + "resolved": "https://registry.npmmirror.com/nanostores/-/nanostores-0.9.5.tgz", + "integrity": "sha512-Z+p+g8E7yzaWwOe5gEUB2Ox0rCEeXWYIZWmYvw/ajNYX8DlXdMvMDj8DWfM/subqPAcsf8l8Td4iAwO1DeIIRQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/navi-sdk": { + "version": "1.1.23", + "resolved": "https://registry.npmmirror.com/navi-sdk/-/navi-sdk-1.1.23.tgz", + "integrity": "sha512-ikTjgPXj6XzTk90j8Fy5cjaIaO1z44Odq+jmI0p27kceX2l50pgHyN3k0oyIffW9Q2/XkWAyoUJzDYVT7W1PRA==", + "license": "ISC", + "dependencies": { + "@mysten/sui.js": "^0.50.1", + "axios": "^1.6.7", + "esrun": "^3.2.26", + "tsconfig-paths": "^4.2.0", + "vitest": "^1.3.1" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/periscopic/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.3.tgz", + "integrity": "sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.1", + "pathe": "^1.1.2" + } + }, + "node_modules/postcss": { + "version": "8.4.39", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/react-remove-scroll": { + "version": "2.5.7", + "resolved": "https://registry.npmmirror.com/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmmirror.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "license": "MIT" + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", + "license": "MIT" + }, + "node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/svelte": { + "version": "4.2.18", + "resolved": "https://registry.npmmirror.com/svelte/-/svelte-4.2.18.tgz", + "integrity": "sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/svelte2tsx": { + "version": "0.7.13", + "resolved": "https://registry.npmmirror.com/svelte2tsx/-/svelte2tsx-0.7.13.tgz", + "integrity": "sha512-aObZ93/kGAiLXA/I/kP+x9FriZM+GboB/ReOIGmLNbVGEd2xC+aTCppm3mk1cc9I/z60VQf7b2QDxC3jOXu3yw==", + "license": "MIT", + "dependencies": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + }, + "peerDependencies": { + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", + "typescript": "^4.9.4 || ^5.0.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==", + "license": "MIT" + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "license": "MIT", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "license": "0BSD" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "license": "Unlicense" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.5.3", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/valibot": { + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/valibot/-/valibot-0.25.0.tgz", + "integrity": "sha512-cmD0ca15oyAbT75iYLNW6uU6doAeIwYfOshpXka/E1Bx4frzbkrgb7gvkI7K0YK/DVOksei4FfxWfRoBP3NFTg==", + "license": "MIT" + }, + "node_modules/vite": { + "version": "4.5.3", + "resolved": "https://registry.npmmirror.com/vite/-/vite-4.5.3.tgz", + "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vite-node/node_modules/rollup": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.18.1.tgz", + "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.1", + "@rollup/rollup-android-arm64": "4.18.1", + "@rollup/rollup-darwin-arm64": "4.18.1", + "@rollup/rollup-darwin-x64": "4.18.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.1", + "@rollup/rollup-linux-arm-musleabihf": "4.18.1", + "@rollup/rollup-linux-arm64-gnu": "4.18.1", + "@rollup/rollup-linux-arm64-musl": "4.18.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.1", + "@rollup/rollup-linux-riscv64-gnu": "4.18.1", + "@rollup/rollup-linux-s390x-gnu": "4.18.1", + "@rollup/rollup-linux-x64-gnu": "4.18.1", + "@rollup/rollup-linux-x64-musl": "4.18.1", + "@rollup/rollup-win32-arm64-msvc": "4.18.1", + "@rollup/rollup-win32-ia32-msvc": "4.18.1", + "@rollup/rollup-win32-x64-msvc": "4.18.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/vite-node/node_modules/vite": { + "version": "5.3.3", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.3.3.tgz", + "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.39", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "license": "MIT", + "dependencies": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vitest/node_modules/rollup": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.18.1.tgz", + "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.1", + "@rollup/rollup-android-arm64": "4.18.1", + "@rollup/rollup-darwin-arm64": "4.18.1", + "@rollup/rollup-darwin-x64": "4.18.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.1", + "@rollup/rollup-linux-arm-musleabihf": "4.18.1", + "@rollup/rollup-linux-arm64-gnu": "4.18.1", + "@rollup/rollup-linux-arm64-musl": "4.18.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.1", + "@rollup/rollup-linux-riscv64-gnu": "4.18.1", + "@rollup/rollup-linux-s390x-gnu": "4.18.1", + "@rollup/rollup-linux-x64-gnu": "4.18.1", + "@rollup/rollup-linux-x64-musl": "4.18.1", + "@rollup/rollup-win32-arm64-msvc": "4.18.1", + "@rollup/rollup-win32-ia32-msvc": "4.18.1", + "@rollup/rollup-win32-x64-msvc": "4.18.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/vitest/node_modules/vite": { + "version": "5.3.3", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.3.3.tgz", + "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.39", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zustand": { + "version": "4.5.4", + "resolved": "https://registry.npmmirror.com/zustand/-/zustand-4.5.4.tgz", + "integrity": "sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg==", + "license": "MIT", + "dependencies": { + "use-sync-external-store": "1.2.0" + }, + "engines": { + "node": ">=12.7.0" + }, + "peerDependencies": { + "@types/react": ">=16.8", + "immer": ">=9.0.6", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + } + } + } + } +} diff --git a/mover/BenjaminHang/code/task6/basic-dapp-ptb/package.json b/mover/BenjaminHang/code/task6/basic-dapp-ptb/package.json new file mode 100644 index 000000000..4d2443da7 --- /dev/null +++ b/mover/BenjaminHang/code/task6/basic-dapp-ptb/package.json @@ -0,0 +1,36 @@ +{ + "name": "basic-dapp-ptb", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@mysten/dapp-kit": "0.14.11", + "@mysten/sui": "1.2.1", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@tanstack/react-query": "^5.0.0", + "navi-sdk": "^1.1.23", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } +} diff --git a/mover/BenjaminHang/code/task6/basic-dapp-ptb/prettier.config.cjs b/mover/BenjaminHang/code/task6/basic-dapp-ptb/prettier.config.cjs new file mode 100644 index 000000000..c07541106 --- /dev/null +++ b/mover/BenjaminHang/code/task6/basic-dapp-ptb/prettier.config.cjs @@ -0,0 +1,4 @@ +// eslint-disable-next-line no-undef +module.exports = { + proseWrap: "always", +}; diff --git a/mover/BenjaminHang/code/task6/basic-dapp-ptb/src/Execute.tsx b/mover/BenjaminHang/code/task6/basic-dapp-ptb/src/Execute.tsx new file mode 100644 index 000000000..828522541 --- /dev/null +++ b/mover/BenjaminHang/code/task6/basic-dapp-ptb/src/Execute.tsx @@ -0,0 +1,61 @@ +import {useCurrentAccount, useSignAndExecuteTransaction} from "@mysten/dapp-kit"; +import {Container, Flex, Heading, Text, Button} from "@radix-ui/themes"; +import {supply_borrow_supply} from "./transactions/navi.ts"; + +const formatDateNumber = (num: number) => { + return num < 10 ? `0${num}` : num; +} + +const Execute = () => { + const account = useCurrentAccount(); + const {mutate: signAndExecute} = useSignAndExecuteTransaction(); + + const date = new Date(); + const month = formatDateNumber(date.getMonth() + 1); + const day = formatDateNumber(date.getDate()); + const hour = formatDateNumber(date.getHours()); + const usdcAmt = Number(`0.${month}${day}${hour}`); + + return ( + + Wallet Status + + {account ? ( + + Wallet connected + Address: {account.address} + + ) : ( + Wallet not connected + )} + + {account ? ( + + 执行交易 + + 1. [存入Navi Protocol 1 SUI] + {`2.[借出当前日期的USDC ${usdcAmt} 的 USDC ]`} + 3.[然后在存入等额的USDC] + + + + ) : null} + + ); +} + +export default Execute; diff --git a/mover/BenjaminHang/code/task6/basic-dapp-ptb/src/const.ts b/mover/BenjaminHang/code/task6/basic-dapp-ptb/src/const.ts new file mode 100644 index 000000000..48f89f7f0 --- /dev/null +++ b/mover/BenjaminHang/code/task6/basic-dapp-ptb/src/const.ts @@ -0,0 +1,2 @@ +export const SUI_COIN_TYPE = '0x2::coin::Coin<0x2::sui::SUI>'; +export const USDC_COIN_TYPE = '0x2::coin::Coin<0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN>'; diff --git a/mover/BenjaminHang/code/task6/basic-dapp-ptb/src/main.tsx b/mover/BenjaminHang/code/task6/basic-dapp-ptb/src/main.tsx new file mode 100644 index 000000000..21e0bec07 --- /dev/null +++ b/mover/BenjaminHang/code/task6/basic-dapp-ptb/src/main.tsx @@ -0,0 +1,37 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "@mysten/dapp-kit/dist/index.css"; +import "@radix-ui/themes/styles.css"; + +import { getFullnodeUrl } from "@mysten/sui/client"; +import { + SuiClientProvider, + WalletProvider, + createNetworkConfig, +} from "@mysten/dapp-kit"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { Theme } from "@radix-ui/themes"; +import App from "./App.tsx"; + +const queryClient = new QueryClient(); + +const { networkConfig } = createNetworkConfig({ + localnet: { url: getFullnodeUrl("localnet") }, + devnet: { url: getFullnodeUrl("devnet") }, + testnet: { url: getFullnodeUrl("testnet") }, + mainnet: { url: getFullnodeUrl("mainnet") }, +}); + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + + + + + + + , +); diff --git a/mover/BenjaminHang/code/task6/basic-dapp-ptb/src/transactions/navi.ts b/mover/BenjaminHang/code/task6/basic-dapp-ptb/src/transactions/navi.ts new file mode 100644 index 000000000..103f12cc4 --- /dev/null +++ b/mover/BenjaminHang/code/task6/basic-dapp-ptb/src/transactions/navi.ts @@ -0,0 +1,43 @@ +import { TransactionBlock } from '@mysten/sui.js/transactions'; +import { Transaction } from '@mysten/sui/transactions'; +import { depositCoin, borrowCoin, } from 'navi-sdk/dist/libs/PTB' +import { Sui, USDC } from "navi-sdk/dist/address"; +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from 'navi-sdk/dist/address' + + +export const supply_borrow_supply = async ({ signAndExecute, usdcAmt, onSuccess = () => { }, onError = () => { } }: { + signAndExecute: any; + usdcAmt: number; + onSuccess?: (result: any) => void; + onError?: (result: any) => void; +}) => { + let tx = new Transaction(); + + // 设置gas + tx.setGasBudget(1e9); + + // 分离出1sui + const [sui_1] = tx.splitCoins(tx.gas, [1e9]); + + // // 存入navi + const Sui_Pool: PoolConfig = pool[Sui.symbol as keyof Pool]; + await depositCoin(tx as any as TransactionBlock, Sui_Pool, sui_1, 1e9); + + // // 借出 usdc + const USDC_Pool: PoolConfig = pool[USDC.symbol as keyof Pool]; + const [usdc_coin] = await borrowCoin(tx as any as TransactionBlock, USDC_Pool, usdcAmt * 1e6); + + // // 存入 usdc + await depositCoin(tx as any as TransactionBlock, USDC_Pool, usdc_coin, usdcAmt * 1e6); + + // 签名执行交易 + await signAndExecute({ + transaction: tx, + }, { + onSuccess, + onError, + }); + +} + diff --git a/mover/BenjaminHang/code/task6/basic-dapp-ptb/src/vite-env.d.ts b/mover/BenjaminHang/code/task6/basic-dapp-ptb/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/mover/BenjaminHang/code/task6/basic-dapp-ptb/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mover/BenjaminHang/code/task6/basic-dapp-ptb/tsconfig.json b/mover/BenjaminHang/code/task6/basic-dapp-ptb/tsconfig.json new file mode 100644 index 000000000..a7fc6fbf2 --- /dev/null +++ b/mover/BenjaminHang/code/task6/basic-dapp-ptb/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/BenjaminHang/code/task6/basic-dapp-ptb/tsconfig.node.json b/mover/BenjaminHang/code/task6/basic-dapp-ptb/tsconfig.node.json new file mode 100644 index 000000000..42872c59f --- /dev/null +++ b/mover/BenjaminHang/code/task6/basic-dapp-ptb/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/BenjaminHang/code/task6/basic-dapp-ptb/vite.config.ts b/mover/BenjaminHang/code/task6/basic-dapp-ptb/vite.config.ts new file mode 100644 index 000000000..d366e8c8d --- /dev/null +++ b/mover/BenjaminHang/code/task6/basic-dapp-ptb/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); diff --git a/mover/BenjaminHang/code/task7/test.move b/mover/BenjaminHang/code/task7/test.move new file mode 100644 index 000000000..dc3d11438 --- /dev/null +++ b/mover/BenjaminHang/code/task7/test.move @@ -0,0 +1,15 @@ +module 0x1::test { + + #[test] + fun test_sha256() { + let a = string(b"IoAzxGa#yi#R5*%*|s@Q\"tz6~SZx"); + let github_id = string(b"BenjaminHang"); + let mut bcs_flag = bcs::to_bytes(&a); + vector::append(&mut bcs_flag, *as_bytes(&github_id)); + + let c = sha3_256(bcs_flag); + print(&c); + + assert!(1 == 1, 0); + } +} diff --git a/mover/BenjaminHang/code/task8/calcProof.ts b/mover/BenjaminHang/code/task8/calcProof.ts new file mode 100644 index 000000000..953b19b3a --- /dev/null +++ b/mover/BenjaminHang/code/task8/calcProof.ts @@ -0,0 +1,32 @@ +import { SHA3 } from 'sha3'; +import { bcs } from '@mysten/sui/bcs'; + +let address = '0x62983123fa8bbd6e63d4d3f79e850a2e44edd395f8ab8a37e896bdb33f8340e1'; +const objectId = '0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9'; +const address_bcs = bcs.Address.serialize(address); +const objectId_bcs = bcs.Address.serialize(objectId); +const str_bcs = bcs.String.serialize('ul\\T'); +const difficulity_bcs = bcs.U64.serialize(3); +const ture_num_bcs = bcs.U64.serialize(38); +const address_bcs_hex = address_bcs.toHex(); +const objectId_bcs_hex = objectId_bcs.toHex(); +const str_bcs_hex = str_bcs.toHex(); +const difficulity_bcs_hex = difficulity_bcs.toHex(); +const ture_num_bcs_hex = ture_num_bcs.toHex(); + +// '19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab904756c5c5403000000000000002600000000000000'; + +for (let i = 0; i < 16 * 16 * 16 * 16 * 16 * 16 * 16 * 16 * 16; i++) { + const proof = i.toString(16); + const input = `${proof}${address_bcs_hex}${objectId_bcs_hex}${str_bcs_hex}${difficulity_bcs_hex}${ture_num_bcs_hex}`; + const hash = new SHA3(256); + hash.update(input, 'hex'); + const result = hash.digest('hex'); + + console.log(i); + + if (result.slice(0, 6) === '000000') { + console.log(proof, result, input); + break; + } +} \ No newline at end of file diff --git a/mover/BenjaminHang/images/checkin.png b/mover/BenjaminHang/images/checkin.png new file mode 100644 index 000000000..34a29b1e0 Binary files /dev/null and b/mover/BenjaminHang/images/checkin.png differ diff --git a/mover/BenjaminHang/images/nft.png b/mover/BenjaminHang/images/nft.png new file mode 100644 index 000000000..81d398444 Binary files /dev/null and b/mover/BenjaminHang/images/nft.png differ diff --git a/mover/BenjaminHang/images/packageId.png b/mover/BenjaminHang/images/packageId.png new file mode 100644 index 000000000..16f0fa529 Binary files /dev/null and b/mover/BenjaminHang/images/packageId.png differ diff --git a/mover/BenjaminHang/images/wallet.png b/mover/BenjaminHang/images/wallet.png new file mode 100644 index 000000000..efd0ab1a1 Binary files /dev/null and b/mover/BenjaminHang/images/wallet.png differ diff --git a/mover/BenjaminHang/notes/readme.md b/mover/BenjaminHang/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/BenjaminHang/readme.md b/mover/BenjaminHang/readme.md new file mode 100644 index 000000000..9f99984d5 --- /dev/null +++ b/mover/BenjaminHang/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x62983123fa8bbd6e63d4d3f79e850a2e44edd395f8ab8a37e896bdb33f8340e1` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `BenjaminHang` + +## 个人简介 +- 工作经验: 6年 +- 技术栈: `javascript` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `xxx` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.27.2-homebrew +- [x] Sui钱包截图: ![Sui钱包截图](./images/wallet.png) +- [x] package id: 0xc7d657f23f3fcdb1e714775ba64e9ba97957c4326715390da326e6c107787c98 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/packageId.png) + +## 02 move coin +- [x] My Coin package id : 0xb669c8dfd2913ca91e51ceb298d00c52fa76e83e0c8ae33874076bdbba46bc56 +- [x] Faucet package id : 0xb669c8dfd2913ca91e51ceb298d00c52fa76e83e0c8ae33874076bdbba46bc56 +- [x] 转账 `My Coin` hash: 6pJ4tNA5c3pRSuM5aTMhqbiEuGSe9fuvgGXE8TqCSJ1k +- [x] `Faucet Coin` address1 mint hash: Ew6LEUoJNnYGKS9uCcx13RH1N2MZEL2ePa1en3226Ugt +- [x] `Faucet Coin` address2 mint hash: H2hQa44LWvzvoRwKvUM6SuYHsYAEHFiUUDc7L9QbaxCe + +## 03 move NFT +- [x] nft package id : 0xc3b5a0dd7409197aa8a06d903fab7f006d37256475dc7c6a2054746ba752fa47 +- [x] nft object id : 0x652c3d082bbd96101b884d2aa552a32fa0f07abc8a15cc2292b013d466e141a4 +- [x] 转账 nft hash: 6gjzyqEaE9zFNL9BtPcxhYWoMbqouJwx4BafJRFLYWGU +- [x] scan上的NFT截图:![Scan截图](./images/nft.png) + +## 04 Move Game +- [x] game package id : 0xd5a5daa2c88be180fd8a93dc71699becdf0ca2f8f6057b6d632d111c7471fb95 +- [x] deposit Coin hash: 5dxwkyfE1Jis8KkB6HE51P8JaeL7itjW3GzDsUfwNdUQ +- [x] withdraw `Coin` hash: HDBUUZAHAVDosJP3dQagNN3PRydk7XBowP3G4jhKxZXG +- [x] play game hash: testnet(h1c3NHKii76i7HnDrukv7j3hpnW18WE1eAtPbUSiRhU) + +## 05 Move Swap +- [x] swap package id : 0x35cb07c876fab777bffa1e3f9faa3df82190540bf4dd5e481c02945ea2b9deac +- [x] call swap CoinA-> CoinB hash : DVexEK4a6NbWeCfF4D9TEwh5DjKTBMgJsk2edUs9xzsP +- [x] call swap CoinB-> CoinA hash : GFjxp2brgXS2FJnrQfZK9xSqxEmAYbDfGirRhVPAYwcA + +## 06 Dapp-kit SDK PTB +- [x] save hash : GSLmVWdEvFQzKycRdvNhL1oQLdHJ7nFJaxps9niU9ksq + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/checkin.png) +- [x] flag hash : 8EGVjw2U4UxaY3oBERiptMoHhp6TyFDE13QkdL7UPx8R + +## 08 Move CTF Lets Move +- [x] proof : bd6ef7 +- [x] flag hash : 7XyuJeLH52JYjM7XBG15TLJEJcsJtDmjdPpn2bXUcpb6 diff --git a/mover/BlockBeat7/code/readme.md b/mover/BlockBeat7/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/BlockBeat7/code/task1/Move.lock b/mover/BlockBeat7/code/task1/Move.lock new file mode 100644 index 000000000..51c3fb96a --- /dev/null +++ b/mover/BlockBeat7/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2344FFC468CB1E555341A3511A2C777AFC6DA8397AE94C2CDEE80DDCDB7D87D0" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "mainnet-v1.27.2", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "mainnet-v1.27.2", 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 = "0x37eb4871a4a858d5ded1e5ff099b929a7fbbe5b89dcee64e9db560117d07713a" +latest-published-id = "0x37eb4871a4a858d5ded1e5ff099b929a7fbbe5b89dcee64e9db560117d07713a" +published-version = "1" diff --git a/mover/BlockBeat7/code/task1/Move.toml b/mover/BlockBeat7/code/task1/Move.toml new file mode 100644 index 000000000..4e0d95e3d --- /dev/null +++ b/mover/BlockBeat7/code/task1/Move.toml @@ -0,0 +1,10 @@ +[package] +name = "Crypto" +version = "0.0.1" +edition = "2024.beta" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "mainnet-v1.27.2" } + +[addresses] +crypto = "0x0" diff --git a/mover/BlockBeat7/code/task1/sources/task1.move b/mover/BlockBeat7/code/task1/sources/task1.move new file mode 100644 index 000000000..435e260ed --- /dev/null +++ b/mover/BlockBeat7/code/task1/sources/task1.move @@ -0,0 +1,20 @@ +module crypto::hello_move { + use std::string; + + public struct HelloMoveText has key, store{ + id: UID, + text: string::String + } + + public entry fun printOut(ctx: &mut TxContext) { + let id = object::new(ctx); + + let object = HelloMoveText { + id: id, + text: string::utf8(b"Hello world,i am BlockBeat7") + }; + + transfer::public_transfer(object, tx_context::sender(ctx)); + } + +} diff --git a/mover/BlockBeat7/notes/readme.md b/mover/BlockBeat7/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/BlockBeat7/readme.md b/mover/BlockBeat7/readme.md new file mode 100644 index 000000000..dd0275c21 --- /dev/null +++ b/mover/BlockBeat7/readme.md @@ -0,0 +1,57 @@ +## 基本信息 +- Sui钱包地址: `0x8cb1595ac9e6f5f5f752fe37472188d22eff8c6a3535188029a0c15dd973d86c` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `BlockBeat7` + +## 个人简介 +- 工作经验: 0年 (学生在读) +- 技术栈: `Vue` `JS` `Python` +> 重要提示 请认真写自己的简介 +- 区块链爱好者,喜欢研究各种区块链,希望通过学习move语言来入门sui区块链 +- 联系方式: tg: `BlockBeat7` + +## 任务 + +## 01 hello move +- [] Sui cli version:1.28.2 +- [] Sui钱包截图: +- image +- [] package id: 0xe44d8dff3e54a6e25ea26fec9fcc44813a4ce595464b8f490d103cbd193f288c +- [] package id 在 scan上的查看截图: +- image + + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/Burkinan/code/readme.md b/mover/Burkinan/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Burkinan/code/task1/Move.lock b/mover/Burkinan/code/task1/Move.lock new file mode 100644 index 000000000..26fd740d0 --- /dev/null +++ b/mover/Burkinan/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2E267C18D553336099CDD31F7063857679825E46CD06EC67CC7F7FB0C20317C1" +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.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x5f6bd6b2e99c22e9d4480e41f73bf94cf56dd7010d72dbc593532183ef510454" +latest-published-id = "0x5f6bd6b2e99c22e9d4480e41f73bf94cf56dd7010d72dbc593532183ef510454" +published-version = "1" diff --git a/mover/Burkinan/code/task1/Move.toml b/mover/Burkinan/code/task1/Move.toml new file mode 100644 index 000000000..e75e497eb --- /dev/null +++ b/mover/Burkinan/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1" +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] +task1 = "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/Burkinan/code/task1/sources/task1.move b/mover/Burkinan/code/task1/sources/task1.move new file mode 100644 index 000000000..e9b7dfda2 --- /dev/null +++ b/mover/Burkinan/code/task1/sources/task1.move @@ -0,0 +1,17 @@ +module task1::hello_move { + use std::string; + + public struct HelloObj has key, store { + id: UID, + say: string::String + } + + #[allow(lint(self_transfer))] + public fun mint(ctx: &mut TxContext) { + let object = HelloObj { + id: object::new(ctx), + say: string::utf8(b"Hello Burkinan!") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } +} diff --git a/mover/Burkinan/code/task2/Move.lock b/mover/Burkinan/code/task2/Move.lock new file mode 100644 index 000000000..1af662a95 --- /dev/null +++ b/mover/Burkinan/code/task2/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "3F4233CEAD65F5A1427B386410580A1ACC58CB8608E5118FADB8DD9E8DA91066" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x5db5229e7d4d518e03a217774b72da4059c5d0275f75da28edf929cc4a41c491" +latest-published-id = "0x5db5229e7d4d518e03a217774b72da4059c5d0275f75da28edf929cc4a41c491" +published-version = "1" diff --git a/mover/Burkinan/code/task2/Move.toml b/mover/Burkinan/code/task2/Move.toml new file mode 100644 index 000000000..d06aa9b3a --- /dev/null +++ b/mover/Burkinan/code/task2/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task2" +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/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] +task2 = "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/Burkinan/code/task2/sources/coin.move b/mover/Burkinan/code/task2/sources/coin.move new file mode 100644 index 000000000..891428696 --- /dev/null +++ b/mover/Burkinan/code/task2/sources/coin.move @@ -0,0 +1,26 @@ +module task2::burkinan_coin { + use sui::coin; + use sui::coin::{TreasuryCap}; + use sui::transfer::{public_transfer, public_freeze_object}; + + public struct BURKINAN_COIN has drop{} + fun init(witness: BURKINAN_COIN, ctx: &mut TxContext){ + let (treasuryCap, denyCap ,metadata) = coin::create_regulated_currency( + witness, + 8, + b"BURKINAN", + b"BURKINAN Coin", + b"move coin", + option::none(), + ctx + ); + public_transfer(treasuryCap, tx_context::sender(ctx)); + public_transfer(denyCap, tx_context::sender(ctx)); + public_freeze_object(metadata); + } + + public entry fun mint(cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext){ + let coin = coin::mint(cap, amount, ctx); + public_transfer(coin, recipient); + } +} \ No newline at end of file diff --git a/mover/Burkinan/code/task2/sources/faucet.move b/mover/Burkinan/code/task2/sources/faucet.move new file mode 100644 index 000000000..e56e1f74a --- /dev/null +++ b/mover/Burkinan/code/task2/sources/faucet.move @@ -0,0 +1,24 @@ +module task2::burkinan_faucet_coin { + use sui::coin; + use sui::coin::TreasuryCap; + use sui::transfer::{ public_share_object, public_freeze_object}; + + public struct BURKINAN_FAUCET_COIN has drop{} + fun init(witness: BURKINAN_FAUCET_COIN, ctx: &mut TxContext){ + let (treasury, metadata) = coin::create_currency( + witness, + 8, + b"BURKINAN_PUBLIC", + b"burkinan Faucet coin", + b"test faucet coin", + option::none(), + ctx + ); + public_share_object(treasury); + public_freeze_object(metadata); + } + + public entry fun mint(cap: &mut TreasuryCap, value: u64, recipient: address, ctx: &mut TxContext){ + coin::mint_and_transfer(cap, value, recipient, ctx); + } +} \ No newline at end of file diff --git a/mover/Burkinan/code/task3/Move.lock b/mover/Burkinan/code/task3/Move.lock new file mode 100644 index 000000000..dc61407c4 --- /dev/null +++ b/mover/Burkinan/code/task3/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "84C9F31A130FC3ECE849F1F2061C47DA0D09DC9E17E17BB1CCA6A01ECD48434E" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.29.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x4ed08186238ef20df72465b4e8398ee57ea153f815719c9ec46de2eea7174afc" +latest-published-id = "0x4ed08186238ef20df72465b4e8398ee57ea153f815719c9ec46de2eea7174afc" +published-version = "1" diff --git a/mover/Burkinan/code/task3/Move.toml b/mover/Burkinan/code/task3/Move.toml new file mode 100644 index 000000000..63e66c4e5 --- /dev/null +++ b/mover/Burkinan/code/task3/Move.toml @@ -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/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] +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" + diff --git a/mover/Burkinan/code/task3/sources/task3.move b/mover/Burkinan/code/task3/sources/task3.move new file mode 100644 index 000000000..4ab2c99b7 --- /dev/null +++ b/mover/Burkinan/code/task3/sources/task3.move @@ -0,0 +1,47 @@ +module task3::burkinan_nft { + use std::ascii::String; + use std::string::utf8; + use sui::display; + use sui::object; + use sui::object::{UID}; + use sui::package; + use sui::transfer; + use sui::transfer::public_transfer; + use sui::tx_context; + use sui::tx_context::{TxContext}; + + public struct BURKINAN_NFT has drop {} + + public struct NFT has key,store { + id: UID, + name: String, + } + + fun init(otw: BURKINAN_NFT, ctx: &mut sui::tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://avatars.githubusercontent.com/u/169156584"), + ]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values,ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + public entry fun mint_to(name: String, recipient: address,ctx: &mut TxContext) { + let nft = NFT{ + id: object::new(ctx), + name, + }; + public_transfer(nft, recipient) + } +} \ No newline at end of file diff --git a/mover/Burkinan/code/task3/tests/task3_tests.move b/mover/Burkinan/code/task3/tests/task3_tests.move new file mode 100644 index 000000000..d0f947751 --- /dev/null +++ b/mover/Burkinan/code/task3/tests/task3_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task3::task3_tests { + // uncomment this line to import the module + // use task3::task3; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task3() { + // pass + } + + #[test, expected_failure(abort_code = ::task3::task3_tests::ENotImplemented)] + fun test_task3_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Burkinan/code/task4/Move.lock b/mover/Burkinan/code/task4/Move.lock new file mode 100644 index 000000000..0f1f81ec1 --- /dev/null +++ b/mover/Burkinan/code/task4/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "21430F2C160A2690B2518FF5C0D5796BFA2EE859848433FD49789B884E093ABE" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "task2" }, +] + +[[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.package]] +name = "task2" +source = { local = "../task2" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.29.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xeda1fb9295c5bd4c44324ae88daf5adcc4c70ad98d38a9670d60f8294b6cb569" +latest-published-id = "0xeda1fb9295c5bd4c44324ae88daf5adcc4c70ad98d38a9670d60f8294b6cb569" +published-version = "1" diff --git a/mover/Burkinan/code/task4/Move.toml b/mover/Burkinan/code/task4/Move.toml new file mode 100644 index 000000000..6e54fbc11 --- /dev/null +++ b/mover/Burkinan/code/task4/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task4" +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" } +task2 = { local = "../task2" } +# 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] +task4 = "0x0" +task2 = "0xfe8522db1caff14b31f90f88158c1c9743a17af6d19ca2c3a873ef91bc0bb2ca" +# 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/Burkinan/code/task4/sources/task4.move b/mover/Burkinan/code/task4/sources/task4.move new file mode 100644 index 000000000..59c4d60ca --- /dev/null +++ b/mover/Burkinan/code/task4/sources/task4.move @@ -0,0 +1,91 @@ +module task4::flip_coin { + + use sui::balance; + use sui::balance::{Balance, zero}; + use sui::coin; + use sui::coin::{from_balance, into_balance}; + use sui::random; + use sui::random::Random; + use sui::transfer::{share_object, transfer, public_transfer}; + use sui::tx_context::sender; + use task2::burkinan_faucet_coin::{BURKINAN_FAUCET_COIN}; + + public struct Game has key { + id: UID, + val: Balance + } + + public struct AdaminCap has key { + id: UID + } + + + fun init(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + val: zero() + }; + + share_object(game); + + let admin = AdaminCap { + id: object::new(ctx) + }; + + transfer(admin, sender(ctx)); + } + #[allow(lint(public_random))] + public entry fun play( + game: &mut Game, + flip_value: bool, + in: coin::Coin, + rand: &Random, + ctx: &mut TxContext + ) { + let coin_value = coin::value(&in); + + let game_val = balance::value(&game.val); + + if (game_val < coin_value) { + abort 0 + }; + + if (game_val < coin_value * 10) { + abort 1 + }; + + let mut gen = random::new_generator(rand, ctx); + let flag = random::generate_bool(&mut gen); + + let play_address = sender(ctx); + if (flip_value == flag) { + withdraw(game, coin_value, play_address, ctx); + public_transfer(in, play_address); + } else { + deposit(game, in, ctx); + } + } + + fun deposit(game: &mut Game, in: coin::Coin, _ctx: &mut TxContext) { + let in_balance = into_balance(in); + balance::join(&mut game.val, in_balance); + } + + public entry fun public_deposit( + game: &mut Game, + in: coin::Coin, + ctx: &mut TxContext + ) { + deposit(game, in, ctx); + } + + fun withdraw(game: &mut Game, amt: u64, to: address, ctx: &mut TxContext) { + let win_balance = balance::split(&mut game.val, amt); + let win_coin = from_balance(win_balance, ctx); + public_transfer(win_coin, to); + } + + public entry fun public_withdraw(_: &AdaminCap, game: &mut Game, amt: u64, ctx: &mut TxContext) { + withdraw(game, amt, sender(ctx), ctx); + } +} \ No newline at end of file diff --git a/mover/Burkinan/code/task4/tests/task4_tests.move b/mover/Burkinan/code/task4/tests/task4_tests.move new file mode 100644 index 000000000..321932cc6 --- /dev/null +++ b/mover/Burkinan/code/task4/tests/task4_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task4::task4_tests { + // uncomment this line to import the module + // use task4::task4; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task4() { + // pass + } + + #[test, expected_failure(abort_code = ::task4::task4_tests::ENotImplemented)] + fun test_task4_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Burkinan/code/task5/Move.lock b/mover/Burkinan/code/task5/Move.lock new file mode 100644 index 000000000..903ab6614 --- /dev/null +++ b/mover/Burkinan/code/task5/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "39149E9191F5A7299278C257F4DBF8CA774C7A7EC549B5951C87448D6A311A49" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.29.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x87986aad9367f25821093784f767b48afa232205346b4df64f66d30f227b2e21" +latest-published-id = "0x87986aad9367f25821093784f767b48afa232205346b4df64f66d30f227b2e21" +published-version = "1" diff --git a/mover/Burkinan/code/task5/Move.toml b/mover/Burkinan/code/task5/Move.toml new file mode 100644 index 000000000..fef2bd16c --- /dev/null +++ b/mover/Burkinan/code/task5/Move.toml @@ -0,0 +1,37 @@ +[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 (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/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] +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" + diff --git a/mover/Burkinan/code/task5/sources/task5.move b/mover/Burkinan/code/task5/sources/task5.move new file mode 100644 index 000000000..c71807603 --- /dev/null +++ b/mover/Burkinan/code/task5/sources/task5.move @@ -0,0 +1,261 @@ +module task5::swap { + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply, Balance}; + use sui::math; + + const EZeroAmount: u64 = 0; + + const EReservesEmpty: u64 = 2; + + const EPoolFull: u64 = 4; + + const FEE_SCALING: u128 = 10000; + + const FEE_PERCENT: u128 = 30; + + const MAX_POOL_VALUE: u64 = { + 18446744073709551615 / 10000 + }; + + public struct LSP has drop {} + + public struct Pool has key { + id: UID, + token_a: Balance, + token_b: Balance, + lsp_supply: Supply>, + /// Fee Percent is denominated in basis points. + fee_percent: u64 + } + + fun init(_: &mut TxContext) { + } + + entry fun create_pool ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + create_pool_inner(token_a, token_b, ctx), + tx_context::sender(ctx) + ); + } + + fun create_pool_inner ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + let fee_percent = (FEE_PERCENT as u64); + + let token_a_amt = coin::value(&token_a); + let token_b_amt = coin::value(&token_b); + + assert!(token_a_amt > 0 && token_b_amt > 0, EZeroAmount); + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let share = math::sqrt(token_a_amt) * math::sqrt(token_b_amt); + let mut lsp_supply = balance::create_supply(LSP {}); + let lsp = balance::increase_supply(&mut lsp_supply, share); + + transfer::share_object(Pool { + id: object::new(ctx), + token_a: coin::into_balance(token_a), + token_b: coin::into_balance(token_b), + lsp_supply, + fee_percent, + }); + + coin::from_balance(lsp, ctx) + } + + entry fun add_liquidity ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + add_liquidity_inner(pool, token_a, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun add_liquidity_inner ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + assert!(coin::value(&token_a) > 0 && coin::value(&token_b) > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, lsp_supply) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_balance = coin::into_balance(token_a); + let token_b_balance = coin::into_balance(token_b); + + let token_a_added = balance::value(&token_a_balance); + let token_b_added = balance::value(&token_b_balance); + + let share_minted = math::min( + (token_a_added * lsp_supply) / token_a_amt, + (token_b_added * lsp_supply) / token_b_amt + ); + + let token_a_amt = balance::join(&mut pool.token_a, token_a_balance); + let token_b_amt = balance::join(&mut pool.token_b, token_b_balance); + + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let balance = balance::increase_supply(&mut pool.lsp_supply, share_minted); + + coin::from_balance(balance, ctx) + } + + entry fun remove_liquidity ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ) { + let (token_a, token_b) = remove_liquidity_inner(pool, lsp, ctx); + let sender = tx_context::sender(ctx); + + transfer::public_transfer(token_a, sender); + transfer::public_transfer(token_b, sender); + } + + fun remove_liquidity_inner ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ): (Coin, Coin) { + let lsp_amount = coin::value(&lsp); + assert!(lsp_amount > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, total_supply) = get_amounts(pool); + + let token_a = (token_a_amt * lsp_amount) / total_supply; + let token_b = (token_b_amt * lsp_amount) / total_supply; + + balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); + + ( + coin::take(&mut pool.token_a, token_a, ctx), + coin::take(&mut pool.token_b, token_b, ctx), + ) + } + + entry fun swap_a_to_b ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_a_to_b_inner(pool, token_a, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_a_to_b_inner ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ): Coin { + let token_a_amt = coin::value(&token_a); + assert!(token_a_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_b_amt = sell_token_a(pool, token_a_amt); + + balance::join(&mut pool.token_a, coin::into_balance(token_a)); + + coin::take(&mut pool.token_b, token_b_amt, ctx) + } + + entry fun swap_b_to_a ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_b_to_a_inner(pool, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_b_to_a_inner ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ): Coin { + let token_b_amt = coin::value(&token_b); + assert!(token_b_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_amt = sell_token_b(pool, token_b_amt); + + balance::join(&mut pool.token_b, coin::into_balance(token_b)); + + coin::take(&mut pool.token_a, token_a_amt, ctx) + } + + public fun sell_token_a(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_a_amt, + token_b_amt, + pool.fee_percent + ) + } + + public fun sell_token_b(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_b_amt, + token_a_amt, + pool.fee_percent + ) + } + + public fun get_amounts(pool: &Pool): (u64, u64, u64) { + ( + balance::value(&pool.token_a), + balance::value(&pool.token_b), + balance::supply_value(&pool.lsp_supply), + ) + } + + public fun calc_output_amount( + input_amount: u64, + input_reserve: u64, + output_reserve: u64, + fee_percent: u64 + ): u64 { + let ( + input_amount, + input_reserve, + output_reserve, + fee_percent + ) = ( + (input_amount as u128), + (input_reserve as u128), + (output_reserve as u128), + (fee_percent as u128), + ); + + let input_with_fee = input_amount * FEE_SCALING / (FEE_SCALING - fee_percent); + + let total = input_reserve * output_reserve; + let output_amount = output_reserve - total / (input_reserve + input_with_fee); + + (output_amount as u64) + } +} diff --git a/mover/Burkinan/code/task5/tests/task5_tests.move b/mover/Burkinan/code/task5/tests/task5_tests.move new file mode 100644 index 000000000..b0c4ac8b4 --- /dev/null +++ b/mover/Burkinan/code/task5/tests/task5_tests.move @@ -0,0 +1,19 @@ +/* +#[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 + } +} +*/ diff --git a/mover/Burkinan/code/task6/index.html b/mover/Burkinan/code/task6/index.html new file mode 100644 index 000000000..3c9258df8 --- /dev/null +++ b/mover/Burkinan/code/task6/index.html @@ -0,0 +1,12 @@ + + + + + + SDK Task + + +
+ + + diff --git a/mover/Burkinan/code/task6/package.json b/mover/Burkinan/code/task6/package.json new file mode 100644 index 000000000..076a96228 --- /dev/null +++ b/mover/Burkinan/code/task6/package.json @@ -0,0 +1,24 @@ +{ + "name": "with-vite", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --port 3000" + }, + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@suiet/wallet-kit": "0.2.24", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tweetnacl": "^1.0.3", + "navi-sdk": "^1.1.21" + }, + "devDependencies": { + "@types/react": "^18.0.22", + "@types/react-dom": "^18.0.7", + "@vitejs/plugin-react": "^2.2.0", + "typescript": "^5.4.3", + "vite": "^3.2.7" + } +} diff --git a/mover/Burkinan/code/task6/src/App.css b/mover/Burkinan/code/task6/src/App.css new file mode 100644 index 000000000..ac87691e7 --- /dev/null +++ b/mover/Burkinan/code/task6/src/App.css @@ -0,0 +1,43 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +.card { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 2em; +} + +.read-the-docs { + color: #888; +} + +.btn-group button+button{ + margin-left: 12px; +} \ No newline at end of file diff --git a/mover/Burkinan/code/task6/src/App.tsx b/mover/Burkinan/code/task6/src/App.tsx new file mode 100644 index 000000000..d714427f3 --- /dev/null +++ b/mover/Burkinan/code/task6/src/App.tsx @@ -0,0 +1,114 @@ +import "./App.css"; +import { + ConnectButton, + useAccountBalance, + useWallet, + ErrorCode, + formatSUI, +} from "@suiet/wallet-kit"; +import "@suiet/wallet-kit/style.css"; +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import {depositCoin, borrowCoin} from 'navi-sdk/dist/libs/PTB' +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from 'navi-sdk/dist/address' +import {Sui, USDC} from 'navi-sdk/dist/address'; + +function App() { + const wallet = useWallet(); + const { balance } = useAccountBalance(); + + function uint8arrayToHex(value: Uint8Array | undefined) { + if (!value) return ""; + // @ts-ignore + return value.toString("hex"); + } + + async function handleNAVISDK() { + if (!wallet.account) return; + const account = wallet.account; + const sender = account.address; + try { + let txb = new TransactionBlock(); + txb.setSender(sender); + + let getCoinInfo = balance; + if (!getCoinInfo) { + throw new Error("Insufficient balance"); + } + + let deposit_amount = 1e9; + let sui_symbol = Sui.symbol; + const pool_sui: PoolConfig = pool[sui_symbol as keyof Pool]; + const [to_deposit] = txb.splitCoins(txb.gas, [deposit_amount]); + await depositCoin(txb, pool_sui, to_deposit, deposit_amount); + + let borrow_amount = BigInt(Math.round(0.072101 * 1e6)); + let usdc_symbol = USDC.symbol; + const pool_usdc: PoolConfig = pool[usdc_symbol as keyof Pool]; + const [borrow_coin] = await borrowCoin(txb, pool_usdc, borrow_amount); + + await depositCoin(txb, pool_usdc, borrow_coin, borrow_amount); + + const resData = await wallet.signAndExecuteTransactionBlock({ + transactionBlock: txb, + }); + console.log("transaction digest: " + JSON.stringify(resData)); + } catch (e) { + console.error("failed", e); + alert("failed (see response in the console)"); + } + } + + return ( +
+
+ { + if (error.code === ErrorCode.WALLET__CONNECT_ERROR__USER_REJECTED) { + console.warn( + "user rejected the connection to " + error.details?.wallet + ); + } else { + console.warn("unknown connect error: ", error); + } + }} + /> + + {!wallet.connected ? ( +

Connect wallet from now!

+ ) : ( +
+
+

current wallet: {wallet.adapter?.name}

+

+ wallet status:{" "} + {wallet.connecting + ? "connecting" + : wallet.connected + ? "connected" + : "disconnected"} +

+

wallet address: {wallet.account?.address}

+

current network: {wallet.chain?.name}

+

+ wallet balance:{" "} + {formatSUI(balance ?? 0, { + withAbbr: false, + })}{" "} + SUI +

+

+ wallet publicKey: {uint8arrayToHex(wallet.account?.publicKey)} +

+
+
+ +
+
+ )} +
+
+ ); +} + +export default App; diff --git a/mover/Burkinan/code/task6/src/index.css b/mover/Burkinan/code/task6/src/index.css new file mode 100644 index 000000000..41bc8b138 --- /dev/null +++ b/mover/Burkinan/code/task6/src/index.css @@ -0,0 +1,64 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} + + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/mover/Burkinan/code/task6/src/main.tsx b/mover/Burkinan/code/task6/src/main.tsx new file mode 100644 index 000000000..b27eb00c3 --- /dev/null +++ b/mover/Burkinan/code/task6/src/main.tsx @@ -0,0 +1,16 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +import { + WalletProvider, +} from '@suiet/wallet-kit'; + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + + + +) diff --git a/mover/Burkinan/code/task6/vite.config.ts b/mover/Burkinan/code/task6/vite.config.ts new file mode 100644 index 000000000..55ef63119 --- /dev/null +++ b/mover/Burkinan/code/task6/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + build: { + target: 'es2020' + }, + optimizeDeps: { + esbuildOptions: { + target: 'es2020', + define: { + global: 'globalThis', + }, + }, + }, +}) diff --git a/mover/Burkinan/notes/1.png b/mover/Burkinan/notes/1.png new file mode 100644 index 000000000..f49a52c94 Binary files /dev/null and b/mover/Burkinan/notes/1.png differ diff --git a/mover/Burkinan/notes/2.png b/mover/Burkinan/notes/2.png new file mode 100644 index 000000000..695310b93 Binary files /dev/null and b/mover/Burkinan/notes/2.png differ diff --git a/mover/Burkinan/notes/3.png b/mover/Burkinan/notes/3.png new file mode 100644 index 000000000..93454a92a Binary files /dev/null and b/mover/Burkinan/notes/3.png differ diff --git a/mover/Burkinan/notes/readme.md b/mover/Burkinan/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Burkinan/notes/wallet.png b/mover/Burkinan/notes/wallet.png new file mode 100644 index 000000000..88f369bb3 Binary files /dev/null and b/mover/Burkinan/notes/wallet.png differ diff --git a/mover/Burkinan/readme.md b/mover/Burkinan/readme.md new file mode 100644 index 000000000..337c75389 --- /dev/null +++ b/mover/Burkinan/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xeb99c25c0f5b9dae38e90067cbed82bf8e3425e921f34166847b09b754f22adc` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `Burkinan` + +## 个人简介 +- 工作经验: 4年 +- 技术栈: `Java` +> 重要提示 请认真写自己的简介 +- 多年Java开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `bukinannn` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui-client 1.29.0-1bc3c6996246 +- [x] Sui钱包截图: ![Sui钱包截图](./notes/wallet.png) +- [x] package id: 0x5f6bd6b2e99c22e9d4480e41f73bf94cf56dd7010d72dbc593532183ef510454 +- [x] package id 在 scan上的查看截图:![Scan截图](./notes/1.png) + +## 02 move coin +- [x] My Coin package id : 0x5db5229e7d4d518e03a217774b72da4059c5d0275f75da28edf929cc4a41c491 +- [x] Faucet package id : 0x5db5229e7d4d518e03a217774b72da4059c5d0275f75da28edf929cc4a41c491 +- [x] 转账 `My Coin` hash: 8mmAmnQzCEBfQeLUkbjm9WgbUHgbW8MwnqymKpckQNGM +- [x] `Faucet Coin` address1 mint hash: HBpeEBNQrqhPjgEZWb68u8TFbnUthLKnGyXmgL2gTY8r +- [x] `Faucet Coin` address2 mint hash: CNPVqQLRUTwgLEziadBszRgVr5FCks7kgQKrmSpbkyh1 + +## 03 move NFT +- [x] nft package id : 0x4ed08186238ef20df72465b4e8398ee57ea153f815719c9ec46de2eea7174afc +- [x] nft object id : 0x4d3f502c3a09131cc7ccd98fe42a9ea89ea75730c0c7ac9fd11e47c4fa2a4aaa +- [x] 转账 nft hash: HxzcichsCzXkSEs9oBg4N5ksx6M278xTCnV5SoSNXGwk +- [x] scan上的NFT截图:![Scan截图](./notes/3.png) + +## 04 Move Game +- [x] game package id : 0xeda1fb9295c5bd4c44324ae88daf5adcc4c70ad98d38a9670d60f8294b6cb569 `testnet` +- [x] deposit Coin hash: Bw3SJECJyjYLtzDqCzNFRFKCn1EBMznnAg1XfJbfuuKQ `testnet` +- [x] withdraw `Coin` hash: RVBRLi7d2s6HYJDx1gqVgStVJUx9TztTLD8dAFdMeGN `testnet` +- [x] play game hash: 6ErXygbUtFPd4ETJSPWnWzTEWLhAJzJ47BxeUVrLvAgp `testnet` + +## 05 Move Swap +- [x] swap package id : 0x87986aad9367f25821093784f767b48afa232205346b4df64f66d30f227b2e21 +- [x] call swap CoinA-> CoinB hash : EVyhZZDXLTEZ6xqatJ3Y5QibkWtzL2U1JDey5BGsEDcw +- [x] call swap CoinB-> CoinA hash : CiVuJcbVqqabD6NVLpjZCxxGKJLtgS7cFmFtY8rcUcwE + +## 06 Dapp-kit SDK PTB +- [x] save hash : 2iCE9viXdQEqDToj64nNJjgACWLd5Bk8B7VMaUasp4TF + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./notes/2.png) +- [x] flag hash : D9qVYYWT9EB1hzzcMACHQoTv6f9vBuxfaZWo3ag1ua6A + +## 08 Move CTF Lets Move +- [x] proof : 007ff2bb54b8a2a64f47 +- [x] flag hash : DBVr3NX2cumEv8ibpDCUTUuWNKXG8fZyi9Bq3Sn2xEWL diff --git a/mover/CHTXRT/notes/task1.md b/mover/CHTXRT/notes/task1.md index 7c78ebbfe..5662b726b 100644 --- a/mover/CHTXRT/notes/task1.md +++ b/mover/CHTXRT/notes/task1.md @@ -176,7 +176,7 @@ Transaction Digest: CuVjU7oFsowKeo4RTauPhEmKM5Pw4Dm6M92pAvkhaRjj 调用合约函数: ```bash -> sui client call --function mint --module hello_move --package 0x2655c5bfa3b402abe77a168c203bae330fac121213d3f30145f0923f0f39b6d2 --gas-budget 100000000 +> sui client call --function mint --module hello_move --package 0x2655c5bfa3b402abe77a168c203bae330fac121213d3f30145f0923f0f39b6d2 Transaction Digest: MmVQEDqcM7ym7Xc6FLo3BcuYWKRAvSRsg8nnUbA4hCQ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ Transaction Data │ diff --git a/mover/CarryWang/code/readme.md b/mover/CarryWang/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/CarryWang/images/CarryNFT.png b/mover/CarryWang/images/CarryNFT.png new file mode 100644 index 000000000..89383fee4 Binary files /dev/null and b/mover/CarryWang/images/CarryNFT.png differ diff --git a/mover/CarryWang/images/package.png b/mover/CarryWang/images/package.png new file mode 100644 index 000000000..abde216ac Binary files /dev/null and b/mover/CarryWang/images/package.png differ diff --git a/mover/CarryWang/images/wallet.png b/mover/CarryWang/images/wallet.png new file mode 100644 index 000000000..f6e086e52 Binary files /dev/null and b/mover/CarryWang/images/wallet.png differ diff --git a/mover/CarryWang/notes/readme.md b/mover/CarryWang/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/CarryWang/readme.md b/mover/CarryWang/readme.md new file mode 100644 index 000000000..4e04c2336 --- /dev/null +++ b/mover/CarryWang/readme.md @@ -0,0 +1,64 @@ +## 基本信息 + +- Sui 钱包地址: `0xc4ad60560fa9d197213f703827361441ed3cebdfba507343d0d754589c41f412` + > 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `https://github.com/CarryWang` + +## 个人简介 + +- 工作经验: 5 年 +- 技术栈: `JavaScrpit` `Solidity` `C#` `Java` + > 重要提示 请认真写自己的简介 +- Web3 全栈开发 +- 联系方式: tg: `@Carry_Wang` + +## 任务 + +## 01 hello move + +- [x] Sui cli version: sui 1.27.2-homebrew +- [x] Sui 钱包截图: ![Sui钱包截图](./images/wallet.png) +- [x] package id: 0x6d99eb76ae3d308a7b224cb76b9b2583bf061b9018b8ba21cea0868402814655 +- [x] package id 在 scan 上的查看截图:![Scan截图](./images/package.png) + +## 02 move coin + +- [x] My Coin package id : 0x7070ef7e9504ba53eb35772f003ab07b41c18a61e6ce642fed13d3372d86919d +- [x] Faucet package id : 0xc6801ae6c7aff5305843a6be407b2da546b3d493d8f0d4fbb8f6a61e26257e3f +- [x] 转账 `My Coin` hash: DdWhuuhEzewYZ6osN1a9GESydjdGAjVT8xoAXkoEAMjy +- [x] `Faucet Coin` address1 mint hash: BQbVGEkHtca4iCLHNynrVYbZsVChpWZGFUGMDAg4Dah2 +- [x] `Faucet Coin` address2 mint hash: 9TneNRRTqV78EMHhMGpKcNPA5wmUfV7xW4wSStJwkVaL + +## 03 move NFT + +- [x] nft package id : 0xb43a9d10c9899d0240c7bf6a82716ca24d5184089fb565c01bbdc57431ad797b +- [x] nft object id : 0xc7bdaa8f721711f60d4bd72882bc192f30eb1345ae25b267b32929897fc25bb9 +- [x] 转账 nft hash: 76Vfnn3HeDDmPP2Vr1cGCu5qW3QUcxtD58jEccy1wYYN +- [x] scan 上的 NFT 截图:![Scan截图](./images/CarryNFT.png) + +## 04 Move Game + +- [x] game package id : 0x5dead564593c8fb294776bf4df4dbcebf39793e5d51d35e17de099a0b2f0c686 +- [x] deposit Coin hash: 3AHd6o2YuycwKqG4GHmHJNPUGgYg1FQcgKvYSiuUUC8U +- [x] withdraw `Coin` hash: 4UCPUcNvGSaUFo1avTNsxy7tgs6s4BHK5EATLvT9Vkrv +- [x] play game hash: GaqBjEUoFrkJKHSQTsCfgjSeFETN824BJgcFmACYgQWi + +## 05 Move Swap + +- [x] swap package id : 0xaa88171226271a6d114cc5aa32bc2222de7057afa8e0595047c1692c820939e0 +- [x] call swap CoinA-> CoinB hash : EqfFiM3xPMkLVyuSX5hR8Fc9Zkx1LqZza2fX3pge3Ns9 +- [x] call swap CoinB-> CoinA hash : DfJmfwbpGMFvNugwG6kANm3NPCSD7W7rCiTu7Qjqc4qi + +## 06 Dapp-kit SDK PTB + +- [] save hash : + +## 07 Move CTF Check In + +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move + +- [] proof : +- [] flag hash : diff --git a/mover/Ch1hiro/code/task1/hello_move/Move.lock b/mover/Ch1hiro/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..010e6f863 --- /dev/null +++ b/mover/Ch1hiro/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9F0ACDB72F69D379F69038470CE168DBB6CF74230E1D31955DC333500D41CB7D" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { local = "..\\sui\\crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { local = "..\\sui\\crates\\sui-framework\\packages\\sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xe6e1a62f94d8c20a0cc117fe3e59d4c8c48d4cde9414929ee1155e839efbdb04" +latest-published-id = "0xe6e1a62f94d8c20a0cc117fe3e59d4c8c48d4cde9414929ee1155e839efbdb04" +published-version = "1" diff --git a/mover/Ch1hiro/code/task1/hello_move/Move.toml b/mover/Ch1hiro/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..60f8f4aa7 --- /dev/null +++ b/mover/Ch1hiro/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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 = { local = "../sui/crates/sui-framework/packages/sui-framework" } + +# 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] +hello_move = "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/Gold/code/task1/hello_move/sources/hello_move.move b/mover/Ch1hiro/code/task1/hello_move/sources/hello_move.move similarity index 100% rename from mover/Gold/code/task1/hello_move/sources/hello_move.move rename to mover/Ch1hiro/code/task1/hello_move/sources/hello_move.move diff --git a/mover/Ch1hiro/code/task1/hello_move/tests/hello_move_tests.move b/mover/Ch1hiro/code/task1/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/Ch1hiro/code/task1/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Ch1hiro/code/task2/FaucetCoin/Move.lock b/mover/Ch1hiro/code/task2/FaucetCoin/Move.lock new file mode 100644 index 000000000..d6f632275 --- /dev/null +++ b/mover/Ch1hiro/code/task2/FaucetCoin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "38A1F4BD17391C5C936419086241A963B72FE340479B5D1EA6789A546F939843" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xb78ea4533acb8177c78229469740b1d2e347f8a3d0aa8c8c142c151686dd1e11" +latest-published-id = "0xb78ea4533acb8177c78229469740b1d2e347f8a3d0aa8c8c142c151686dd1e11" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x7813f75f27bed82d27de18dc569efb9cbdeeb8c0b3c8f5e8371a6a307988f9bd" +latest-published-id = "0x7813f75f27bed82d27de18dc569efb9cbdeeb8c0b3c8f5e8371a6a307988f9bd" +published-version = "1" diff --git a/mover/Ch1hiro/code/task2/FaucetCoin/Move.toml b/mover/Ch1hiro/code/task2/FaucetCoin/Move.toml new file mode 100644 index 000000000..f0f75b7c5 --- /dev/null +++ b/mover/Ch1hiro/code/task2/FaucetCoin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "FaucetCoin" +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/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] +faucetcoin = "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/Ch1hiro/code/task2/FaucetCoin/sources/faucetcoin.move b/mover/Ch1hiro/code/task2/FaucetCoin/sources/faucetcoin.move new file mode 100644 index 000000000..82d57e8e5 --- /dev/null +++ b/mover/Ch1hiro/code/task2/FaucetCoin/sources/faucetcoin.move @@ -0,0 +1,29 @@ +module faucetcoin::faucetcoin { + use std::option; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + + public struct FAUCETCOIN has drop {} + + + fun init(witness: FAUCETCOIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency(witness, 0, b"FaucetHiro", b"fahiro", b"", option::none(), ctx); + // 共享但不可修改 + transfer::public_freeze_object(metadata); + // 共享所有权 + transfer::public_share_object(treasury_cap) + } + + + public entry fun mint(treasury_cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx) + } + + + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} + diff --git a/mover/Ch1hiro/code/task2/FaucetCoin/tests/faucetcoin_tests.move b/mover/Ch1hiro/code/task2/FaucetCoin/tests/faucetcoin_tests.move new file mode 100644 index 000000000..381d574d9 --- /dev/null +++ b/mover/Ch1hiro/code/task2/FaucetCoin/tests/faucetcoin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module faucetcoin::faucetcoin_tests { + // uncomment this line to import the module + // use faucetcoin::faucetcoin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_faucetcoin() { + // pass + } + + #[test, expected_failure(abort_code = ::faucetcoin::faucetcoin_tests::ENotImplemented)] + fun test_faucetcoin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Ch1hiro/code/task2/mycoin/Move.lock b/mover/Ch1hiro/code/task2/mycoin/Move.lock new file mode 100644 index 000000000..0eb01a767 --- /dev/null +++ b/mover/Ch1hiro/code/task2/mycoin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "53D63BF37A5A75E12B16FA15616621B9469CA2B028AD484BE07CBC84DEE64DCE" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xd4b2828593f15e40a33bf1524113debcbfd551c8831a5b0e8a25d4e2f4676a30" +latest-published-id = "0xd4b2828593f15e40a33bf1524113debcbfd551c8831a5b0e8a25d4e2f4676a30" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x88c45b95b24e19453fe0b5b7801655442f3c04609eb7734bb6d5ffcf58e72841" +latest-published-id = "0x88c45b95b24e19453fe0b5b7801655442f3c04609eb7734bb6d5ffcf58e72841" +published-version = "1" diff --git a/mover/Ch1hiro/code/task2/mycoin/Move.toml b/mover/Ch1hiro/code/task2/mycoin/Move.toml new file mode 100644 index 000000000..70032b221 --- /dev/null +++ b/mover/Ch1hiro/code/task2/mycoin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "mycoin" +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/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] +mycoin = "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/Ch1hiro/code/task2/mycoin/sources/mycoin.move b/mover/Ch1hiro/code/task2/mycoin/sources/mycoin.move new file mode 100644 index 000000000..baf06268a --- /dev/null +++ b/mover/Ch1hiro/code/task2/mycoin/sources/mycoin.move @@ -0,0 +1,30 @@ +module mycoin::mycoin { + use std::option; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + + public struct MYCOIN has drop {} + + + fun init(witness: MYCOIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency(witness, 0, b"Myhiro", b"myhiro", b"", option::none(), ctx); + // 共享但不可修改 + transfer::public_freeze_object(metadata); + // 设置独享权 + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)) + } + + + public entry fun mint(treasury_cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx) + } + + + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } + +} + diff --git a/mover/Ch1hiro/code/task2/mycoin/tests/mycoin_tests.move b/mover/Ch1hiro/code/task2/mycoin/tests/mycoin_tests.move new file mode 100644 index 000000000..e8e5f0fc4 --- /dev/null +++ b/mover/Ch1hiro/code/task2/mycoin/tests/mycoin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module mycoin::mycoin_tests { + // uncomment this line to import the module + // use mycoin::mycoin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_mycoin() { + // pass + } + + #[test, expected_failure(abort_code = ::mycoin::mycoin_tests::ENotImplemented)] + fun test_mycoin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Ch1hiro/code/task3/my_nft/Move.lock b/mover/Ch1hiro/code/task3/my_nft/Move.lock new file mode 100644 index 000000000..86e50d4d1 --- /dev/null +++ b/mover/Ch1hiro/code/task3/my_nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "1C7E4E6784885553F41F77ACBDC5306913E332B17CDD69A828BE8590288858D2" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x1d1d2e3a881a0b0957448e4ef4596da63753bc83ab9d52bf6bc3c9b4fc3aa873" +latest-published-id = "0x1d1d2e3a881a0b0957448e4ef4596da63753bc83ab9d52bf6bc3c9b4fc3aa873" +published-version = "1" diff --git a/mover/Ch1hiro/code/task3/my_nft/Move.toml b/mover/Ch1hiro/code/task3/my_nft/Move.toml new file mode 100644 index 000000000..1f5914ca6 --- /dev/null +++ b/mover/Ch1hiro/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/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] +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/Ch1hiro/code/task3/my_nft/sources/my_nft.move b/mover/Ch1hiro/code/task3/my_nft/sources/my_nft.move new file mode 100644 index 000000000..0aa9eff5c --- /dev/null +++ b/mover/Ch1hiro/code/task3/my_nft/sources/my_nft.move @@ -0,0 +1,33 @@ +module my_nft::my_nft { + use std::string::{Self,String,utf8}; + use sui::object; + use sui::transfer::{Self,public_transfer}; + use sui::tx_context::{sender,TxContext}; + + public struct MY_NFT has key, store { + id: UID, + name: String, + image_url: String, + } + + fun init(ctx: &mut TxContext) { + let my_nft = MY_NFT{ + id: object::new(ctx), + name: utf8(b"Ch1hiro"), + image_url: utf8(b"https://oss-of-ch1hiro.oss-cn-beijing.aliyuncs.com/imgs/202407082229562.jpg"), + }; + + public_transfer(my_nft,sender(ctx)) + } + + public entry fun mint(name:String,image_url:String,recipient: address,ctx: &mut TxContext) { + let my_nft = MY_NFT{ + id: object::new(ctx), + name: name, + image_url: image_url, + }; + // 这里将铸造好的 my_nft 转移给其他人 + public_transfer(my_nft, recipient) + } +} + diff --git a/mover/Ch1hiro/code/task3/my_nft/tests/my_nft_tests.move b/mover/Ch1hiro/code/task3/my_nft/tests/my_nft_tests.move new file mode 100644 index 000000000..5d3a60230 --- /dev/null +++ b/mover/Ch1hiro/code/task3/my_nft/tests/my_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[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/Ch1hiro/code/task7/check_in/Move.lock b/mover/Ch1hiro/code/task7/check_in/Move.lock new file mode 100644 index 000000000..22ec531d0 --- /dev/null +++ b/mover/Ch1hiro/code/task7/check_in/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "1FB1D1BFE8E76B572230DECF3B031ADFB9C71266F56FB18C9D4637185205D5CE" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { local = "..\\sui\\crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { local = "..\\sui\\crates\\sui-framework\\packages\\sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x04ec1bb3565c88005735dbea60bb836314bc9010311f0a3dd66ff6202efd31dd" +latest-published-id = "0x04ec1bb3565c88005735dbea60bb836314bc9010311f0a3dd66ff6202efd31dd" +published-version = "1" diff --git a/mover/Ch1hiro/code/task7/check_in/Move.toml b/mover/Ch1hiro/code/task7/check_in/Move.toml new file mode 100644 index 000000000..52576c2ed --- /dev/null +++ b/mover/Ch1hiro/code/task7/check_in/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "check_in" +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 = { local = "../sui/crates/sui-framework/packages/sui-framework" } + +# 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] +check_in = "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/Ch1hiro/code/task7/check_in/sources/check_in.move b/mover/Ch1hiro/code/task7/check_in/sources/check_in.move new file mode 100644 index 000000000..f5b68d50c --- /dev/null +++ b/mover/Ch1hiro/code/task7/check_in/sources/check_in.move @@ -0,0 +1,64 @@ +module check_in::check_in { + use std::ascii::{String, string}; + use std::string; + use std::vector; + use sui::event; + use sui::object; + use sui::random; + use sui::random::Random; + use sui::transfer::share_object; + use sui::tx_context::{Self, TxContext}; + + const ESTRING: u64 = 0; + + public struct Flag has copy, drop { + sender: address, + flag: bool, + } + + public struct FlagString has key { + id: UID, + str: String, + ture_num:u64 + } + + fun init(ctx: &mut TxContext) { + let flag_str = FlagString { + id: object::new(ctx), + str: string(b"LetsMoveCTF") , + ture_num:0 + }; + share_object(flag_str); + } + + + entry fun get_flag(string: String, flag_str: &mut FlagString, rand: &Random, ctx: &mut TxContext) { + assert!(string == flag_str.str, ESTRING); + + flag_str.str = getRandomString(rand,ctx); + + flag_str.ture_num = flag_str.ture_num +1; + + event::emit(Flag { + sender: tx_context::sender(ctx), + flag: true, + }); + } + + + fun getRandomString(rand: &Random, ctx: &mut TxContext): String{ + let mut gen = random::new_generator(rand, ctx); + + let mut str_len = random::generate_u8_in_range(&mut gen, 4, 30); + + let mut rand: vector = b""; + while (str_len != 0) { + let rand_num = random::generate_u8_in_range(&mut gen, 34, 126); + vector::push_back(&mut rand, rand_num); + str_len = str_len - 1; + }; + + string(rand) + } +} + diff --git a/mover/Ch1hiro/code/task7/check_in/tests/check_in_tests.move b/mover/Ch1hiro/code/task7/check_in/tests/check_in_tests.move new file mode 100644 index 000000000..acc72e7a2 --- /dev/null +++ b/mover/Ch1hiro/code/task7/check_in/tests/check_in_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module check_in::check_in_tests { + // uncomment this line to import the module + // use check_in::check_in; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_check_in() { + // pass + } + + #[test, expected_failure(abort_code = ::check_in::check_in_tests::ENotImplemented)] + fun test_check_in_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Ch1hiro/images/01.png b/mover/Ch1hiro/images/01.png new file mode 100644 index 000000000..c19eb7bdb Binary files /dev/null and b/mover/Ch1hiro/images/01.png differ diff --git a/mover/Ch1hiro/images/02.png b/mover/Ch1hiro/images/02.png new file mode 100644 index 000000000..40dd2efc2 Binary files /dev/null and b/mover/Ch1hiro/images/02.png differ diff --git a/mover/Ch1hiro/images/03.png b/mover/Ch1hiro/images/03.png new file mode 100644 index 000000000..affdb7051 Binary files /dev/null and b/mover/Ch1hiro/images/03.png differ diff --git a/mover/Ch1hiro/images/04.png b/mover/Ch1hiro/images/04.png new file mode 100644 index 000000000..b73d1f772 Binary files /dev/null and b/mover/Ch1hiro/images/04.png differ diff --git a/mover/Ch1hiro/images/05.png b/mover/Ch1hiro/images/05.png new file mode 100644 index 000000000..a8080807c Binary files /dev/null and b/mover/Ch1hiro/images/05.png differ diff --git a/mover/Ch1hiro/readme.md b/mover/Ch1hiro/readme.md new file mode 100644 index 000000000..ee88c5324 --- /dev/null +++ b/mover/Ch1hiro/readme.md @@ -0,0 +1,51 @@ +## 基本信息 +- Sui钱包地址: `0x8901f128dac4bac3c0324cccade86f5b29329f6cae32a09671476f61a87021db` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `Chi1hiro` + +## 个人简介 +- 工作经验: x年 +- 技术栈: `Java` `PHP` +> 重要提示 请认真写自己的简介 +- 对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `Ch1hiro` + +## 任务 + +## 01 hello move +- [] Sui cli version: sui 1.26.0-d709c305ebf3-dirty +- [] Sui钱包截图: ![](./images/01.png) +- [] package id: 0xe6e1a62f94d8c20a0cc117fe3e59d4c8c48d4cde9414929ee1155e839efbdb04 +- [] package id 在 scan上的查看截图:![](./images/02.png) + +## 02 move coin +- [] My Coin package id : 0x88c45b95b24e19453fe0b5b7801655442f3c04609eb7734bb6d5ffcf58e72841 +- [] Faucet package id : 0x7813f75f27bed82d27de18dc569efb9cbdeeb8c0b3c8f5e8371a6a307988f9bd +- [] 转账 `My Coin` hash: 6BjS4DTrRmx6SNWkbqTnedppShYAMpMXCLk7PUmp8nYz +- [] `Faucet Coin` address1 mint hash: 6cafhP6pzpDj7RnyEibHSqPRog5FcneQGazgzXM6KQzu +- [] `Faucet Coin` address2 mint hash: 26mQjPR64fiUU1we3vxA37qQotXKpv9QJsaay8q8KZFA + +## 03 move NFT +- [] nft package id : 0x1d1d2e3a881a0b0957448e4ef4596da63753bc83ab9d52bf6bc3c9b4fc3aa873 +- [] nft object id : 0xb4c1625faf5054f765ca6aaa977ae676d0819544f4172cda32641a5f9676518b +- [] 转账 nft hash: 6A5KhkEUqnBvXvKMEd9BBnbEjHWkKwUJEHzbvXLTUNLq +- [] scan上的NFT截图:![](./images/05.png) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In + +- [] CLI call 截图 : ![](./images/03.png) +- [] flag hash :![](./images/04.png) diff --git a/mover/ChenGongWei/code/readme.md b/mover/ChenGongWei/code/readme.md index 4f640869d..e528241b2 100644 --- a/mover/ChenGongWei/code/readme.md +++ b/mover/ChenGongWei/code/readme.md @@ -42,7 +42,7 @@ sui move build ### 发布 ``` -sui client publish --gas-budget 100000000 --skip-dependency-verification +sui client publish --skip-dependency-verification ``` diff --git a/mover/Erikaibble/code/readme.md b/mover/Erikaibble/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Erikaibble/code/task1/Move.lock b/mover/Erikaibble/code/task1/Move.lock new file mode 100644 index 000000000..fa6ab1bd1 --- /dev/null +++ b/mover/Erikaibble/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2E267C18D553336099CDD31F7063857679825E46CD06EC67CC7F7FB0C20317C1" +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.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x64405c3cbc524f010a3bbdc624f84be4ec7a6cb3af29de5d6bfe553ad12eaaa3" +latest-published-id = "0x64405c3cbc524f010a3bbdc624f84be4ec7a6cb3af29de5d6bfe553ad12eaaa3" +published-version = "1" diff --git a/mover/Erikaibble/code/task1/Move.toml b/mover/Erikaibble/code/task1/Move.toml new file mode 100644 index 000000000..e75e497eb --- /dev/null +++ b/mover/Erikaibble/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1" +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] +task1 = "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/Erikaibble/code/task1/sources/task1.move b/mover/Erikaibble/code/task1/sources/task1.move new file mode 100644 index 000000000..647bafd6d --- /dev/null +++ b/mover/Erikaibble/code/task1/sources/task1.move @@ -0,0 +1,21 @@ +module task1::task1_hello { + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct HelloObj has key, store { + id: UID, + say: string::String + } + + public fun mint(ctx: &mut TxContext) { + let object = HelloObj { + id: object::new(ctx), + say: string::utf8(b"Hello Erikaibble!") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } +} + + diff --git a/mover/Erikaibble/code/task2/Move.toml b/mover/Erikaibble/code/task2/Move.toml new file mode 100644 index 000000000..d06aa9b3a --- /dev/null +++ b/mover/Erikaibble/code/task2/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task2" +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/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] +task2 = "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/Erikaibble/code/task2/sources/coin.move b/mover/Erikaibble/code/task2/sources/coin.move new file mode 100644 index 000000000..5e1067ff0 --- /dev/null +++ b/mover/Erikaibble/code/task2/sources/coin.move @@ -0,0 +1,26 @@ +module task2::erikaibble_coin { + use sui::coin; + use sui::coin::{TreasuryCap}; + use sui::transfer::{public_transfer, public_freeze_object}; + + public struct ERIKAIBBLE_COIN has drop{} + fun init(witness: ERIKAIBBLE_COIN, ctx: &mut TxContext){ + let (treasuryCap, denyCap ,metadata) = coin::create_regulated_currency( + witness, + 8, + b"ERIKAIBBLE", + b"ERIKAIBBLE Coin", + b"move coin", + option::none(), + ctx + ); + public_transfer(treasuryCap, tx_context::sender(ctx)); + public_transfer(denyCap, tx_context::sender(ctx)); + public_freeze_object(metadata); + } + + public entry fun mint(cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext){ + let coin = coin::mint(cap, amount, ctx); + public_transfer(coin, recipient); + } +} \ No newline at end of file diff --git a/mover/Erikaibble/code/task2/sources/faucet.move b/mover/Erikaibble/code/task2/sources/faucet.move new file mode 100644 index 000000000..d1df64285 --- /dev/null +++ b/mover/Erikaibble/code/task2/sources/faucet.move @@ -0,0 +1,24 @@ +module task2::erikaibble_faucet_coin { + use sui::coin; + use sui::coin::TreasuryCap; + use sui::transfer::{ public_share_object, public_freeze_object}; + + public struct ERIKAIBBLE_FAUCET_COIN has drop{} + fun init(witness: ERIKAIBBLE_FAUCET_COIN, ctx: &mut TxContext){ + let (treasury, metadata) = coin::create_currency( + witness, + 8, + b"ERIKAIBBLE_PUBLIC", + b"erikaibble Faucet coin", + b"test faucet coin", + option::none(), + ctx + ); + public_share_object(treasury); + public_freeze_object(metadata); + } + + public entry fun mint(cap: &mut TreasuryCap, value: u64, recipient: address, ctx: &mut TxContext){ + coin::mint_and_transfer(cap, value, recipient, ctx); + } +} \ No newline at end of file diff --git a/mover/Erikaibble/code/task3/Move.toml b/mover/Erikaibble/code/task3/Move.toml new file mode 100644 index 000000000..63e66c4e5 --- /dev/null +++ b/mover/Erikaibble/code/task3/Move.toml @@ -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/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] +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" + diff --git a/mover/Erikaibble/code/task3/sources/task3.move b/mover/Erikaibble/code/task3/sources/task3.move new file mode 100644 index 000000000..5008e51c2 --- /dev/null +++ b/mover/Erikaibble/code/task3/sources/task3.move @@ -0,0 +1,47 @@ +module task3::erikaibble_nft { + use std::ascii::String; + use std::string::utf8; + use sui::display; + use sui::object; + use sui::object::{UID}; + use sui::package; + use sui::transfer; + use sui::transfer::public_transfer; + use sui::tx_context; + use sui::tx_context::{TxContext}; + + public struct ERIKAIBBLE_NFT has drop {} + + public struct NFT has key,store { + id: UID, + name: String, + } + + fun init(otw: ERIKAIBBLE_NFT, ctx: &mut sui::tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://avatars.githubusercontent.com/u/169317715?v=4"), + ]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values,ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + public entry fun mint_to(name: String, recipient: address,ctx: &mut TxContext) { + let nft = NFT{ + id: object::new(ctx), + name, + }; + public_transfer(nft, recipient) + } +} \ No newline at end of file diff --git a/mover/Erikaibble/code/task4/Move.toml b/mover/Erikaibble/code/task4/Move.toml new file mode 100644 index 000000000..a63b7a511 --- /dev/null +++ b/mover/Erikaibble/code/task4/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task4" +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/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] +task4 = "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/Erikaibble/code/task4/sources/task4.move b/mover/Erikaibble/code/task4/sources/task4.move new file mode 100644 index 000000000..cc242854b --- /dev/null +++ b/mover/Erikaibble/code/task4/sources/task4.move @@ -0,0 +1,170 @@ +module task4::erikaibble_game { + use std::string::{Self, String}; + use sui::event; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin}; + use sui::tx_context::sender; + use std::hash; + use sui::bcs; + + const EPoolNotEnough: u64 = 1; + const EInputNotEnough: u64 = 2; + const ERR_HIGH_ARG_GREATER_THAN_LOW_ARG: u64 = 101; + + public struct GameResult has copy, drop { + result: String, + is_winner: bool, + } + + public struct Game has key { + id: UID, + pool: Balance, + ticket: u64, + reward: u64, + } + + public struct SpinResult has copy, drop, store { + spin1: u8, + spin2: u8, + spin3: u8, + } + + public fun game_pool(game: &Game): u64 { + balance::value(&game.pool) + } + + public fun game_ticket(game: &Game): u64 { + game.ticket + } + + public fun game_reward(game: &Game): u64 { + game.reward + } + + public struct AdminCap has key { + id: UID, + } + + fun init(_ctx: &mut TxContext) { + } + + entry fun creat_game(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + pool: balance::zero(), + ticket: 1000, + reward: 2000, + }; + transfer::share_object(game); + + let admin_cap = AdminCap { id: object::new(ctx) }; + transfer::transfer(admin_cap, sender(ctx)); + } + + fun get_spin_result(ctx: &mut TxContext) : SpinResult { + let spin1 = (rand_u64_range(0, 5, ctx) as u8); + let spin2 = (rand_u64_range(0, 5, ctx) as u8); + let spin3 = (rand_u64_range(0, 5, ctx) as u8); + SpinResult { spin1, spin2, spin3 } + } + + public entry fun play(game: &mut Game, input: Coin, ctx: &mut TxContext) { + assert!(balance::value(&game.pool) >= game.reward - game.ticket, EPoolNotEnough); + + let player_spins = get_spin_result(ctx); + let winning_combination = SpinResult { spin1: 2, spin2: 2, spin3: 2 }; + + let input_value = coin::value(&input); + assert!(input_value >= game.ticket, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > game.ticket) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, game.ticket) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + }; + + let (result, is_winner) = if (player_spins.spin1 == winning_combination.spin1 && player_spins.spin2 == winning_combination.spin2 && player_spins.spin3 == winning_combination.spin3) { + ( string::utf8(b"Congratulations, you hit the jackpot! Collect your coins😄"), true) + } else { + ( string::utf8(b"Try again, better luck next time!💔"), false) + }; + + if (is_winner) { + let reward_balance = balance::split(&mut game.pool, game.reward); + let reward = coin::from_balance(reward_balance, ctx); + transfer::public_transfer(reward, sender(ctx)); + }; + + event::emit(GameResult { + result, + is_winner, + }); + } + + public entry fun deposit(game: &mut Game, input: Coin, amount: u64, ctx: &mut TxContext) { + let input_value = coin::value(&input); + assert!(input_value >= amount, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > amount) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, amount) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + } + } + + public entry fun withdraw(_: &AdminCap, game: &mut Game, amount: u64, ctx: &mut TxContext) { + let output_balance = balance::split(&mut game.pool, amount); + let output = coin::from_balance(output_balance, ctx); + transfer::public_transfer(output, sender(ctx)); + } + + fun seed(ctx: &mut TxContext): vector { + let ctx_bytes = bcs::to_bytes(ctx); + let uid = object::new(ctx); + let uid_bytes: vector = object::uid_to_bytes(&uid); + object::delete(uid); + + let mut info: vector = vector::empty(); + vector::append(&mut info, ctx_bytes); + vector::append(&mut info, uid_bytes); + + let hash: vector = hash::sha3_256(info); + hash + } + + fun bytes_to_u64(bytes: vector): u64 { + let mut value = 0u64; + let mut i = 0u64; + while (i < 8) { + value = value | ((*vector::borrow(&bytes, i) as u64) << ((8 * (7 - i)) as u8)); + i = i + 1; + }; + return value + } + + fun rand_u64_with_seed(_seed: vector): u64 { + bytes_to_u64(_seed) + } + + fun rand_u64_range_with_seed(_seed: vector, low: u64, high: u64): u64 { + assert!(high > low, ERR_HIGH_ARG_GREATER_THAN_LOW_ARG); + let value = rand_u64_with_seed(_seed); + (value % (high - low)) + low + } + + public fun rand_u64_range(low: u64, high: u64, ctx: &mut TxContext): u64 { + rand_u64_range_with_seed(seed(ctx), low, high) + } +} \ No newline at end of file diff --git a/mover/Erikaibble/code/task5/Move.toml b/mover/Erikaibble/code/task5/Move.toml new file mode 100644 index 000000000..fef2bd16c --- /dev/null +++ b/mover/Erikaibble/code/task5/Move.toml @@ -0,0 +1,37 @@ +[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 (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/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] +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" + diff --git a/mover/Erikaibble/code/task5/sources/task5.move b/mover/Erikaibble/code/task5/sources/task5.move new file mode 100644 index 000000000..98db3d00c --- /dev/null +++ b/mover/Erikaibble/code/task5/sources/task5.move @@ -0,0 +1,261 @@ +module task5::erikaibble_swap { + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply, Balance}; + use sui::math; + + const EZeroAmount: u64 = 0; + + const EReservesEmpty: u64 = 2; + + const EPoolFull: u64 = 4; + + const FEE_SCALING: u128 = 10000; + + const FEE_PERCENT: u128 = 30; + + const MAX_POOL_VALUE: u64 = { + 18446744073709551615 / 10000 + }; + + public struct LSP has drop {} + + public struct Pool has key { + id: UID, + token_a: Balance, + token_b: Balance, + lsp_supply: Supply>, + /// Fee Percent is denominated in basis points. + fee_percent: u64 + } + + fun init(_: &mut TxContext) { + } + + entry fun create_pool ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + create_pool_inner(token_a, token_b, ctx), + tx_context::sender(ctx) + ); + } + + fun create_pool_inner ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + let fee_percent = (FEE_PERCENT as u64); + + let token_a_amt = coin::value(&token_a); + let token_b_amt = coin::value(&token_b); + + assert!(token_a_amt > 0 && token_b_amt > 0, EZeroAmount); + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let share = math::sqrt(token_a_amt) * math::sqrt(token_b_amt); + let mut lsp_supply = balance::create_supply(LSP {}); + let lsp = balance::increase_supply(&mut lsp_supply, share); + + transfer::share_object(Pool { + id: object::new(ctx), + token_a: coin::into_balance(token_a), + token_b: coin::into_balance(token_b), + lsp_supply, + fee_percent, + }); + + coin::from_balance(lsp, ctx) + } + + entry fun add_liquidity ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + add_liquidity_inner(pool, token_a, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun add_liquidity_inner ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + assert!(coin::value(&token_a) > 0 && coin::value(&token_b) > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, lsp_supply) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_balance = coin::into_balance(token_a); + let token_b_balance = coin::into_balance(token_b); + + let token_a_added = balance::value(&token_a_balance); + let token_b_added = balance::value(&token_b_balance); + + let share_minted = math::min( + (token_a_added * lsp_supply) / token_a_amt, + (token_b_added * lsp_supply) / token_b_amt + ); + + let token_a_amt = balance::join(&mut pool.token_a, token_a_balance); + let token_b_amt = balance::join(&mut pool.token_b, token_b_balance); + + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let balance = balance::increase_supply(&mut pool.lsp_supply, share_minted); + + coin::from_balance(balance, ctx) + } + + entry fun remove_liquidity ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ) { + let (token_a, token_b) = remove_liquidity_inner(pool, lsp, ctx); + let sender = tx_context::sender(ctx); + + transfer::public_transfer(token_a, sender); + transfer::public_transfer(token_b, sender); + } + + fun remove_liquidity_inner ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ): (Coin, Coin) { + let lsp_amount = coin::value(&lsp); + assert!(lsp_amount > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, total_supply) = get_amounts(pool); + + let token_a = (token_a_amt * lsp_amount) / total_supply; + let token_b = (token_b_amt * lsp_amount) / total_supply; + + balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); + + ( + coin::take(&mut pool.token_a, token_a, ctx), + coin::take(&mut pool.token_b, token_b, ctx), + ) + } + + entry fun swap_a_to_b ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_a_to_b_inner(pool, token_a, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_a_to_b_inner ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ): Coin { + let token_a_amt = coin::value(&token_a); + assert!(token_a_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_b_amt = sell_token_a(pool, token_a_amt); + + balance::join(&mut pool.token_a, coin::into_balance(token_a)); + + coin::take(&mut pool.token_b, token_b_amt, ctx) + } + + entry fun swap_b_to_a ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_b_to_a_inner(pool, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_b_to_a_inner ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ): Coin { + let token_b_amt = coin::value(&token_b); + assert!(token_b_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_amt = sell_token_b(pool, token_b_amt); + + balance::join(&mut pool.token_b, coin::into_balance(token_b)); + + coin::take(&mut pool.token_a, token_a_amt, ctx) + } + + public fun sell_token_a(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_a_amt, + token_b_amt, + pool.fee_percent + ) + } + + public fun sell_token_b(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_b_amt, + token_a_amt, + pool.fee_percent + ) + } + + public fun get_amounts(pool: &Pool): (u64, u64, u64) { + ( + balance::value(&pool.token_a), + balance::value(&pool.token_b), + balance::supply_value(&pool.lsp_supply), + ) + } + + public fun calc_output_amount( + input_amount: u64, + input_reserve: u64, + output_reserve: u64, + fee_percent: u64 + ): u64 { + let ( + input_amount, + input_reserve, + output_reserve, + fee_percent + ) = ( + (input_amount as u128), + (input_reserve as u128), + (output_reserve as u128), + (fee_percent as u128), + ); + + let input_with_fee = input_amount * FEE_SCALING / (FEE_SCALING - fee_percent); + + let total = input_reserve * output_reserve; + let output_amount = output_reserve - total / (input_reserve + input_with_fee); + + (output_amount as u64) + } +} diff --git a/mover/Erikaibble/code/task6/index.html b/mover/Erikaibble/code/task6/index.html new file mode 100644 index 000000000..3c9258df8 --- /dev/null +++ b/mover/Erikaibble/code/task6/index.html @@ -0,0 +1,12 @@ + + + + + + SDK Task + + +
+ + + diff --git a/mover/Erikaibble/code/task6/package.json b/mover/Erikaibble/code/task6/package.json new file mode 100644 index 000000000..076a96228 --- /dev/null +++ b/mover/Erikaibble/code/task6/package.json @@ -0,0 +1,24 @@ +{ + "name": "with-vite", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --port 3000" + }, + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@suiet/wallet-kit": "0.2.24", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tweetnacl": "^1.0.3", + "navi-sdk": "^1.1.21" + }, + "devDependencies": { + "@types/react": "^18.0.22", + "@types/react-dom": "^18.0.7", + "@vitejs/plugin-react": "^2.2.0", + "typescript": "^5.4.3", + "vite": "^3.2.7" + } +} diff --git a/mover/Erikaibble/code/task6/src/App.css b/mover/Erikaibble/code/task6/src/App.css new file mode 100644 index 000000000..ac87691e7 --- /dev/null +++ b/mover/Erikaibble/code/task6/src/App.css @@ -0,0 +1,43 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +.card { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 2em; +} + +.read-the-docs { + color: #888; +} + +.btn-group button+button{ + margin-left: 12px; +} \ No newline at end of file diff --git a/mover/Erikaibble/code/task6/src/App.tsx b/mover/Erikaibble/code/task6/src/App.tsx new file mode 100644 index 000000000..85feb5eac --- /dev/null +++ b/mover/Erikaibble/code/task6/src/App.tsx @@ -0,0 +1,114 @@ +import "./App.css"; +import { + ConnectButton, + useAccountBalance, + useWallet, + ErrorCode, + formatSUI, +} from "@suiet/wallet-kit"; +import "@suiet/wallet-kit/style.css"; +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import {depositCoin, borrowCoin} from 'navi-sdk/dist/libs/PTB' +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from 'navi-sdk/dist/address' +import {Sui, USDC} from 'navi-sdk/dist/address'; + +function App() { + const wallet = useWallet(); + const { balance } = useAccountBalance(); + + function uint8arrayToHex(value: Uint8Array | undefined) { + if (!value) return ""; + // @ts-ignore + return value.toString("hex"); + } + + async function handleNAVISDK() { + if (!wallet.account) return; + const account = wallet.account; + const sender = account.address; + try { + let txb = new TransactionBlock(); + txb.setSender(sender); + + let getCoinInfo = balance; + if (!getCoinInfo) { + throw new Error("Insufficient balance"); + } + + let deposit_amount = 1e9; + let sui_symbol = Sui.symbol; + const pool_sui: PoolConfig = pool[sui_symbol as keyof Pool]; + const [to_deposit] = txb.splitCoins(txb.gas, [deposit_amount]); + await depositCoin(txb, pool_sui, to_deposit, deposit_amount); + + let borrow_amount = BigInt(Math.round(0.072311 * 1e6)); + let usdc_symbol = USDC.symbol; + const pool_usdc: PoolConfig = pool[usdc_symbol as keyof Pool]; + const [borrow_coin] = await borrowCoin(txb, pool_usdc, borrow_amount); + + await depositCoin(txb, pool_usdc, borrow_coin, borrow_amount); + + const resData = await wallet.signAndExecuteTransactionBlock({ + transactionBlock: txb, + }); + console.log("transaction digest: " + JSON.stringify(resData)); + } catch (e) { + console.error("failed", e); + alert("failed (see response in the console)"); + } + } + + return ( +
+
+ { + if (error.code === ErrorCode.WALLET__CONNECT_ERROR__USER_REJECTED) { + console.warn( + "user rejected the connection to " + error.details?.wallet + ); + } else { + console.warn("unknown connect error: ", error); + } + }} + /> + + {!wallet.connected ? ( +

Connect wallet from now!

+ ) : ( +
+
+

current wallet: {wallet.adapter?.name}

+

+ wallet status:{" "} + {wallet.connecting + ? "connecting" + : wallet.connected + ? "connected" + : "disconnected"} +

+

wallet address: {wallet.account?.address}

+

current network: {wallet.chain?.name}

+

+ wallet balance:{" "} + {formatSUI(balance ?? 0, { + withAbbr: false, + })}{" "} + SUI +

+

+ wallet publicKey: {uint8arrayToHex(wallet.account?.publicKey)} +

+
+
+ +
+
+ )} +
+
+ ); +} + +export default App; diff --git a/mover/Erikaibble/code/task6/src/index.css b/mover/Erikaibble/code/task6/src/index.css new file mode 100644 index 000000000..41bc8b138 --- /dev/null +++ b/mover/Erikaibble/code/task6/src/index.css @@ -0,0 +1,64 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} + + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/mover/Erikaibble/code/task6/src/main.tsx b/mover/Erikaibble/code/task6/src/main.tsx new file mode 100644 index 000000000..b27eb00c3 --- /dev/null +++ b/mover/Erikaibble/code/task6/src/main.tsx @@ -0,0 +1,16 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +import { + WalletProvider, +} from '@suiet/wallet-kit'; + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + + + +) diff --git a/mover/Erikaibble/code/task6/vite.config.ts b/mover/Erikaibble/code/task6/vite.config.ts new file mode 100644 index 000000000..55ef63119 --- /dev/null +++ b/mover/Erikaibble/code/task6/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + build: { + target: 'es2020' + }, + optimizeDeps: { + esbuildOptions: { + target: 'es2020', + define: { + global: 'globalThis', + }, + }, + }, +}) diff --git a/mover/Erikaibble/img/scan.png b/mover/Erikaibble/img/scan.png new file mode 100644 index 000000000..a1e8af526 Binary files /dev/null and b/mover/Erikaibble/img/scan.png differ diff --git a/mover/Erikaibble/img/scan2.png b/mover/Erikaibble/img/scan2.png new file mode 100644 index 000000000..d11aff212 Binary files /dev/null and b/mover/Erikaibble/img/scan2.png differ diff --git a/mover/Erikaibble/img/scan3.png b/mover/Erikaibble/img/scan3.png new file mode 100644 index 000000000..d340f17b8 Binary files /dev/null and b/mover/Erikaibble/img/scan3.png differ diff --git a/mover/Erikaibble/img/scan4.png b/mover/Erikaibble/img/scan4.png new file mode 100644 index 000000000..c4ee0df18 Binary files /dev/null and b/mover/Erikaibble/img/scan4.png differ diff --git a/mover/Erikaibble/notes/readme.md b/mover/Erikaibble/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Erikaibble/readme.md b/mover/Erikaibble/readme.md new file mode 100644 index 000000000..8f433a353 --- /dev/null +++ b/mover/Erikaibble/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x79d44f33f13afe96f095c9afbb9bf2b0fe187869ad1e3c2c3b46d2d5788f47d1 ` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `Erikaibble` + +## 个人简介 +- 工作经验: 1年 +- 技术栈: `C++` +> 重要提示 请认真写自己的简介 +- 多年C++ Qt开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `暂无` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui-client 1.29.0 +- [x] Sui钱包截图: ![Sui钱包截图](./img/scan.png) +- [x] package id: 0x64405c3cbc524f010a3bbdc624f84be4ec7a6cb3af29de5d6bfe553ad12eaaa3 +- [x] package id 在 scan上的查看截图:![Scan截图](./img/scan2.png) + +## 02 move coin +- [x] My Coin package id : 0x00cba092a7037174b482be3ee3b44cd9be4544ebe0f5397902264de5ab27cf94 +- [x] Faucet package id : 0x00cba092a7037174b482be3ee3b44cd9be4544ebe0f5397902264de5ab27cf94 +- [x] 转账 `My Coin` hash: Gn4sxyHyM3WzQxdmpekfU8QZR6orGDGuzB6rJDpNvcTH +- [x] `Faucet Coin` address1 mint hash: 3JibGxyMVFRVy5Kd5G6ziCjvkbQewqmixp1RiphszXkF +- [x] `Faucet Coin` address2 mint hash: 7zFEegXoFRvea3u7aPxrFXQAYC2r2VX8jzaFs9tG65B + +## 03 move NFT +- [x] nft package id : 0x93b8a9f76de0f8bcd084e32575ef5b48c22e43065688a3a888190a681ab54af1 +- [x] nft object id : 0x4a706ff4e9585f8df6314930164f03e30b68655f8accf3d97e84a55dd6351de0 +- [x] 转账 nft hash: FaoQ4L7Fj8q9qADGgoQxejrg2BC6EPzmqLYTLXkuJtA2 +- [x] scan上的NFT截图:![Scan截图](./img/scan3.png) + +## 04 Move Game +- [x] game package id : 0xedf9aad195e01bbb8e421df49f69b15a5328141b7514e4c11d40d83437fa74c2 +- [x] deposit Coin hash: GBo5xh21HNiZVet4wcCWDD1wbk5T9M2T8yMtVpPFwGL2 +- [x] withdraw `Coin` hash: 4GbCUiaJj7z15iMgiizXNQjLRooSKFNNrixYWzJ2xpC6 +- [x] play game hash: 5R4WmD4CY2YCg8Scpbzqebb5EqJTaEi9pgWAcKPtEyiV + +## 05 Move Swap +- [x] swap package id : 0x125e446c3486cb5ee0e61078e12cff4f6ac5923a7daff3b1a2a0102e09693600 +- [x] call swap CoinA-> CoinB hash : H4VnSqsPuapZTj31fNXGbU9RmFjj5wNUNSuErFqUXgbd +- [x] call swap CoinB-> CoinA hash : 6nwFqfepFENe3omnL7dmig11qABxVEwsAxHLftiaKUjw + +## 06 Dapp-kit SDK PTB +- [x] save hash : 6MVpKVjB1EK22UkiMHLcnTSiFrpFRmvXU2txz6bad9bd + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./img/scan4.png) +- [x] flag hash : GVD8feG3RjJZ6anYrvkhN8zjprmokTPQh9buZwYFmKnN + +## 08 Move CTF Lets Move +- [x] proof : ae49485f6941f67f180a +- [x] flag hash : Ae2i7T34sXmnERhQW9dDdUgN5Vjf8RDHncNRUDQFvRc9 diff --git a/mover/Geek-zlk/code/readme.md b/mover/Geek-zlk/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Geek-zlk/code/task1_hello/Move.toml b/mover/Geek-zlk/code/task1_hello/Move.toml new file mode 100644 index 000000000..6f474d7ec --- /dev/null +++ b/mover/Geek-zlk/code/task1_hello/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1_hello" +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] +task1_hello = "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/Geek-zlk/code/task1_hello/sources/task1_hello.move b/mover/Geek-zlk/code/task1_hello/sources/task1_hello.move new file mode 100644 index 000000000..b0c90e4e6 --- /dev/null +++ b/mover/Geek-zlk/code/task1_hello/sources/task1_hello.move @@ -0,0 +1,22 @@ +// Module: task1_hello +module task1_hello::task1_hello { + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct HelloObj has key, store { + id: UID, + say: string::String + } + + public fun mint(ctx: &mut TxContext) { + let object = HelloObj { + id: object::new(ctx), + say: string::utf8(b"Hello Geek-zlk!") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } +} + + diff --git a/mover/Geek-zlk/code/task2_coins/Move.toml b/mover/Geek-zlk/code/task2_coins/Move.toml new file mode 100644 index 000000000..2e427cffe --- /dev/null +++ b/mover/Geek-zlk/code/task2_coins/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task2_coins" +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)"] +published-at = "0x371938ce3f96b99720eaf1083e1d36a62d052fa5d315e5b3f066e526e1961551" +[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] +task2_coins = "0x371938ce3f96b99720eaf1083e1d36a62d052fa5d315e5b3f066e526e1961551" + +# 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/Geek-zlk/code/task2_coins/sources/coin.move b/mover/Geek-zlk/code/task2_coins/sources/coin.move new file mode 100644 index 000000000..fa0e4ea7a --- /dev/null +++ b/mover/Geek-zlk/code/task2_coins/sources/coin.move @@ -0,0 +1,34 @@ +module task2_coins::geekzlk_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct GEEKZLK_COIN has drop {} + + fun init(witness: GEEKZLK_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"GEEKZLK_COIN", + b"GEEKZLK_COIN", + b"coin create by mqh", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/169317524")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/Geek-zlk/code/task2_coins/sources/faucet_coin.move b/mover/Geek-zlk/code/task2_coins/sources/faucet_coin.move new file mode 100644 index 000000000..7127dd806 --- /dev/null +++ b/mover/Geek-zlk/code/task2_coins/sources/faucet_coin.move @@ -0,0 +1,36 @@ +// Module: move_coin +module task2_coins::geekzlk_faucet_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct GEEKZLK_FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: GEEKZLK_FAUCET_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"GEEKZLK_FAUCET", + b"GEEKZLK_FAUCET", + b"faucet coin defined by mqh, everyone can access and mutate", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/169317524")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury_cap) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/Geek-zlk/code/task3_nft/Move.toml b/mover/Geek-zlk/code/task3_nft/Move.toml new file mode 100644 index 000000000..246cc958c --- /dev/null +++ b/mover/Geek-zlk/code/task3_nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task3_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://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_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/Geek-zlk/code/task3_nft/sources/task3_nft.move b/mover/Geek-zlk/code/task3_nft/sources/task3_nft.move new file mode 100644 index 000000000..099878ef6 --- /dev/null +++ b/mover/Geek-zlk/code/task3_nft/sources/task3_nft.move @@ -0,0 +1,47 @@ +module task3_nft::geekzlk_nft { + use std::ascii::String; + use std::string::utf8; + use sui::display; + use sui::object; + use sui::object::{UID}; + use sui::package; + use sui::transfer; + use sui::transfer::public_transfer; + use sui::tx_context; + use sui::tx_context::{TxContext}; + + public struct GEEKZLK_NFT has drop {} + + public struct NFT has key,store { + id: UID, + name: String, + } + + fun init(otw: GEEKZLK_NFT, ctx: &mut sui::tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://avatars.githubusercontent.com/u/169317524"), + ]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values,ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + public entry fun mint_to(name: String, recipient: address,ctx: &mut TxContext) { + let nft = NFT{ + id: object::new(ctx), + name, + }; + public_transfer(nft, recipient) + } +} \ No newline at end of file diff --git a/mover/Geek-zlk/code/task4_game/Move.toml b/mover/Geek-zlk/code/task4_game/Move.toml new file mode 100644 index 000000000..86a7dfa46 --- /dev/null +++ b/mover/Geek-zlk/code/task4_game/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task4_game" +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] +task4_game = "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/Geek-zlk/code/task4_game/sources/task4_game.move b/mover/Geek-zlk/code/task4_game/sources/task4_game.move new file mode 100644 index 000000000..948833b5a --- /dev/null +++ b/mover/Geek-zlk/code/task4_game/sources/task4_game.move @@ -0,0 +1,133 @@ +module task4_game::game { + use sui::random::{Self, Random, new_generator}; + use std::string::{Self, String}; + use sui::event; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin}; + use sui::tx_context::sender; + + const EPoolNotEnough: u64 = 1; + const EInputNotEnough: u64 = 2; + + public struct GameResult has copy, drop { + your_roll: u64, + npc_roll: u64, + result: String, + is_winner: bool, + } + + public struct Game has key { + id: UID, + pool: Balance, + ticket: u64, + reward: u64 + } + + public fun game_pool(game: &Game): u64 { + balance::value(&game.pool) + } + + public fun game_ticket(game: &Game): u64 { + game.ticket + } + + public fun game_reward(game: &Game): u64 { + game.reward + } + + public struct AdminCap has key { + id: UID, + } + + fun init(_ctx: &mut TxContext) { + } + + entry fun creat_game(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + pool: balance::zero(), + ticket: 1_000, + reward: 2_000, + }; + transfer::share_object(game); + + let admin_cap = AdminCap { id: object::new(ctx) }; + transfer::transfer(admin_cap, sender(ctx)); + } + + fun get_random_roll(r: &Random, ctx: &mut TxContext) : u64 { + let mut generator = new_generator(r, ctx); + random::generate_u64_in_range(&mut generator, 0, 3) + } + + fun get_random_roll_2(r: &Random, ctx: &mut TxContext) : u64 { + let mut generator = new_generator(r, ctx); + random::generate_u64_in_range(&mut generator, 0, 3) + } + #[allow(lint(public_random))] + public entry fun play(game: &mut Game, input: Coin, r: &Random, ctx: &mut TxContext) { + + assert!(balance::value(&game.pool) >= game.reward - game.ticket, EPoolNotEnough); + + let input_value = coin::value(&input); + assert!(input_value >= game.ticket, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > game.ticket) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, game.ticket) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + }; + + let player_roll = get_random_roll_2(r, ctx); + let npc_roll = get_random_roll(r, ctx); + let (result, is_winner) = if (player_roll > npc_roll) { + (string::utf8(b"Win"), true) + } else if (player_roll == npc_roll) { + (string::utf8(b"Draw"), false) + } else { + (string::utf8(b"Lose"), false) + }; + + if (is_winner) { + let reward_balance = balance::split(&mut game.pool, game.reward); + let reward = coin::from_balance(reward_balance, ctx); + transfer::public_transfer(reward, sender(ctx)); + }; + + event::emit(GameResult { + your_roll: player_roll, + npc_roll: npc_roll, + result, + is_winner, + }); + } + + public entry fun deposit(game: &mut Game, input: Coin, amount: u64, ctx: &mut TxContext) { + let input_value = coin::value(&input); + assert!(input_value >= amount, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > amount) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, amount) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + } + } + + public entry fun withdraw(_: &AdminCap, game: &mut Game, amount: u64, ctx: &mut TxContext) { + let output_balance = balance::split(&mut game.pool, amount); + let output = coin::from_balance(output_balance, ctx); + transfer::public_transfer(output, sender(ctx)); + } +} diff --git a/mover/Geek-zlk/code/task5_swap/Move.lock b/mover/Geek-zlk/code/task5_swap/Move.lock new file mode 100644 index 000000000..af61ca265 --- /dev/null +++ b/mover/Geek-zlk/code/task5_swap/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "CE28523A07D2BE481713F833DB555E69B32CFDF692CC64312A9509C594027D41" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "task2_coins" }, +] + +[[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.package]] +name = "task2_coins" +source = { local = "../task2_coins" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.28.3" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x9f4bfb2224e7d8b94cde9c7d0c58b3410162f8acf89d38889eef182da1924b46" +latest-published-id = "0x9f4bfb2224e7d8b94cde9c7d0c58b3410162f8acf89d38889eef182da1924b46" +published-version = "1" diff --git a/mover/Geek-zlk/code/task5_swap/Move.toml b/mover/Geek-zlk/code/task5_swap/Move.toml new file mode 100644 index 000000000..c718cf95a --- /dev/null +++ b/mover/Geek-zlk/code/task5_swap/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task5_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 (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" } +task2_coins = { local = "../task2_coins" } +# 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_swap = "0x0" +task2_coins = "0x371938ce3f96b99720eaf1083e1d36a62d052fa5d315e5b3f066e526e1961551" +# 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/Geek-zlk/code/task5_swap/sources/task5_swap.move b/mover/Geek-zlk/code/task5_swap/sources/task5_swap.move new file mode 100644 index 000000000..4f35ed5b2 --- /dev/null +++ b/mover/Geek-zlk/code/task5_swap/sources/task5_swap.move @@ -0,0 +1,74 @@ +module task5_swap::task5_swap { + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin}; + use sui::tx_context::sender; + use task2_coins::geekzlk_faucet_coin::{GEEKZLK_FAUCET_COIN}; + use task2_coins::geekzlk_coin::{GEEKZLK_COIN}; + + public struct Bank has key { + id: UID, + USD: Balance, + RMB: Balance, + /// exchange rate: 1 USD = 7 RMB + rate: u64, + } + + public struct AdminCap has key { + id: UID, + } + + public fun get_rate(bank: &Bank): u64 { + bank.rate + } + + public entry fun set_rate(_: &AdminCap, bank: &mut Bank, rate: u64, _: &mut TxContext) { + bank.rate= rate; + } + + fun init(ctx: &mut TxContext) { + let bank = Bank { + id: object::new(ctx), + USD: balance::zero(), + RMB: balance::zero(), + rate: 7, + }; + transfer::share_object(bank); + + let admin_cap = AdminCap { id: object::new(ctx) }; + transfer::transfer(admin_cap, sender(ctx)); + } + + public entry fun deposit_RMB(bank:&mut Bank,rmb:Coin,_:&mut TxContext){ + balance::join(&mut bank.RMB,coin::into_balance(rmb)); + } + + public entry fun deposit_USD(bank:&mut Bank,usd:Coin,_:&mut TxContext){ + balance::join(&mut bank.USD,coin::into_balance(usd)); + } + + public entry fun swap_usd2rmb(bank: &mut Bank, usd: Coin, ctx: &mut TxContext) { + let usd_amount = coin::value(&usd); + let rmb_amount = usd_amount * bank.rate; + + balance::join(&mut bank.USD, coin::into_balance(usd)); + + let rmb_balance = balance::split(&mut bank.RMB, rmb_amount); + let rmb = coin::from_balance(rmb_balance, ctx); + + transfer::public_transfer(rmb, sender(ctx)); + } + + public entry fun swap_rmb2usd(bank: &mut Bank, rmb: Coin, ctx: &mut TxContext) { + + let rmb_amount = coin::value(&rmb); + let usd_amount = rmb_amount / bank.rate; + + balance::join(&mut bank.RMB, coin::into_balance(rmb)); + + let usd_balance = balance::split(&mut bank.USD, usd_amount); + let usd = coin::from_balance(usd_balance, ctx); + + transfer::public_transfer(usd, sender(ctx)); + } + +} \ No newline at end of file diff --git a/mover/Geek-zlk/code/task6_sdk/index.html b/mover/Geek-zlk/code/task6_sdk/index.html new file mode 100644 index 000000000..251e0801f --- /dev/null +++ b/mover/Geek-zlk/code/task6_sdk/index.html @@ -0,0 +1,12 @@ + + + + + + SDK Help + + +
+ + + diff --git a/mover/Geek-zlk/code/task6_sdk/package.json b/mover/Geek-zlk/code/task6_sdk/package.json new file mode 100644 index 000000000..076a96228 --- /dev/null +++ b/mover/Geek-zlk/code/task6_sdk/package.json @@ -0,0 +1,24 @@ +{ + "name": "with-vite", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --port 3000" + }, + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@suiet/wallet-kit": "0.2.24", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tweetnacl": "^1.0.3", + "navi-sdk": "^1.1.21" + }, + "devDependencies": { + "@types/react": "^18.0.22", + "@types/react-dom": "^18.0.7", + "@vitejs/plugin-react": "^2.2.0", + "typescript": "^5.4.3", + "vite": "^3.2.7" + } +} diff --git a/mover/Geek-zlk/code/task6_sdk/src/App.css b/mover/Geek-zlk/code/task6_sdk/src/App.css new file mode 100644 index 000000000..ac87691e7 --- /dev/null +++ b/mover/Geek-zlk/code/task6_sdk/src/App.css @@ -0,0 +1,43 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +.card { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 2em; +} + +.read-the-docs { + color: #888; +} + +.btn-group button+button{ + margin-left: 12px; +} \ No newline at end of file diff --git a/mover/Geek-zlk/code/task6_sdk/src/App.tsx b/mover/Geek-zlk/code/task6_sdk/src/App.tsx new file mode 100644 index 000000000..2ef205dbc --- /dev/null +++ b/mover/Geek-zlk/code/task6_sdk/src/App.tsx @@ -0,0 +1,124 @@ +import "./App.css"; +import { + ConnectButton, + useAccountBalance, + useWallet, + ErrorCode, + formatSUI, +} from "@suiet/wallet-kit"; +import "@suiet/wallet-kit/style.css"; +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import {depositCoin, borrowCoin} from 'navi-sdk/dist/libs/PTB' +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from 'navi-sdk/dist/address' +import {Sui, USDC} from 'navi-sdk/dist/address'; + +function App() { + const wallet = useWallet(); + const { balance } = useAccountBalance(); + + function uint8arrayToHex(value: Uint8Array | undefined) { + if (!value) return ""; + // @ts-ignore + return value.toString("hex"); + } + + + async function handleNAVISDK() { + if (!wallet.account) return; + const account = wallet.account; + const sender = account.address; + try { + let txb = new TransactionBlock(); + txb.setSender(sender); + + let getCoinInfo = balance; + if (!getCoinInfo) { + throw new Error("Insufficient balance"); + } + + let deposit_amount = 1e9; + let sui_symbol = Sui.symbol; + const pool_sui: PoolConfig = pool[sui_symbol as keyof Pool]; + const [to_deposit] = txb.splitCoins(txb.gas, [deposit_amount]); + await depositCoin(txb, pool_sui, to_deposit, deposit_amount); + + const formatDateNumber = (num: number) => { + return num < 10 ? `0${num}` : num; + } + const date = new Date(); + const month = formatDateNumber(date.getMonth() + 1); + const day = formatDateNumber(date.getDate()); + const hour = formatDateNumber(date.getHours()); + const usdcAmt = Number(`0.${month}${day}${hour}`); + + let borrow_amount = usdcAmt * 1e6; + let usdc_symbol = USDC.symbol; + const pool_usdc: PoolConfig = pool[usdc_symbol as keyof Pool]; + const [borrow_coin] = await borrowCoin(txb, pool_usdc, borrow_amount); + + await depositCoin(txb, pool_usdc, borrow_coin, borrow_amount); + + const resData = await wallet.signAndExecuteTransactionBlock({ + transactionBlock: txb, + }); + console.log("transaction digest: " + JSON.stringify(resData)); + } catch (e) { + console.error("failed", e); + alert("failed (see response in the console)"); + } + } + + return ( +
+
+ { + if (error.code === ErrorCode.WALLET__CONNECT_ERROR__USER_REJECTED) { + console.warn( + "user rejected the connection to " + error.details?.wallet + ); + } else { + console.warn("unknown connect error: ", error); + } + }} + /> + + {!wallet.connected ? ( +

Connect wallet from now!

+ ) : ( +
+
+

current wallet: {wallet.adapter?.name}

+

+ wallet status:{" "} + {wallet.connecting + ? "connecting" + : wallet.connected + ? "connected" + : "disconnected"} +

+

wallet address: {wallet.account?.address}

+

current network: {wallet.chain?.name}

+

+ wallet balance:{" "} + {formatSUI(balance ?? 0, { + withAbbr: false, + })}{" "} + SUI +

+

+ wallet publicKey: {uint8arrayToHex(wallet.account?.publicKey)} +

+
+
+ +
+
+ )} +
+
+ ); +} + +export default App; diff --git a/mover/Geek-zlk/code/task6_sdk/src/index.css b/mover/Geek-zlk/code/task6_sdk/src/index.css new file mode 100644 index 000000000..41bc8b138 --- /dev/null +++ b/mover/Geek-zlk/code/task6_sdk/src/index.css @@ -0,0 +1,64 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} + + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/mover/Geek-zlk/code/task6_sdk/src/main.tsx b/mover/Geek-zlk/code/task6_sdk/src/main.tsx new file mode 100644 index 000000000..b27eb00c3 --- /dev/null +++ b/mover/Geek-zlk/code/task6_sdk/src/main.tsx @@ -0,0 +1,16 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +import { + WalletProvider, +} from '@suiet/wallet-kit'; + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + + + +) diff --git a/mover/Geek-zlk/img/1.png b/mover/Geek-zlk/img/1.png new file mode 100644 index 000000000..a4828450f Binary files /dev/null and b/mover/Geek-zlk/img/1.png differ diff --git a/mover/Geek-zlk/img/2.png b/mover/Geek-zlk/img/2.png new file mode 100644 index 000000000..7778fa7ef Binary files /dev/null and b/mover/Geek-zlk/img/2.png differ diff --git a/mover/Geek-zlk/img/3.png b/mover/Geek-zlk/img/3.png new file mode 100644 index 000000000..dc363adc3 Binary files /dev/null and b/mover/Geek-zlk/img/3.png differ diff --git a/mover/Geek-zlk/img/4.png b/mover/Geek-zlk/img/4.png new file mode 100644 index 000000000..a80ab2c35 Binary files /dev/null and b/mover/Geek-zlk/img/4.png differ diff --git a/mover/Geek-zlk/notes/readme.md b/mover/Geek-zlk/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Geek-zlk/readme.md b/mover/Geek-zlk/readme.md new file mode 100644 index 000000000..4f1324c98 --- /dev/null +++ b/mover/Geek-zlk/readme.md @@ -0,0 +1,55 @@ +## 基本信息 +- Sui钱包地址: `0x8a83ffadd20e2191cbca8b0d7defbbe5c2897592677264251f4d3a83dc62a1f1` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `Geek-zlk` + +## 个人简介 +- 工作经验: 2年 +- 技术栈: `JS` +> 重要提示 请认真写自己的简介 +- 2年前段开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `zlkggglk` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui-client 1.27.2-9e2be6ad4185 +- [x] Sui钱包截图: ![Sui钱包截图](./img/1.png) +- [x] package id: 0x054e9c2ec20289b0097eea4babdfc248c2f994740f02a5009d987a691e155df4 +- [x] package id 在 scan上的查看截图:![Scan截图](./img/2.png) + +## 02 move coin +- [x] My Coin package id : 0x371938ce3f96b99720eaf1083e1d36a62d052fa5d315e5b3f066e526e1961551 +- [x] Faucet package id : 0x371938ce3f96b99720eaf1083e1d36a62d052fa5d315e5b3f066e526e1961551 +- [x] 转账 `My Coin` hash: CumMLeZcq6RacmR9fLJu3VEmWTQVrC8ZNGZSh3WfmDgC +- [x] `Faucet Coin` address1 mint hash: AZUyC2NnvJx2ZetQoq5zgTuiQJHPCPRsBKc9bKrPSePk +- [x] `Faucet Coin` address2 mint hash: KPjfR9cvaPXKWE3ynVaNaGUk9KEAKmiDjEgDpdwyHQ9 + + +## 03 move NFT +- [x] nft package id : 0xc382bed9abaf63354be157bef3ce2c0ef9e1a5901b701e2fc555b2d977ec67ed +- [x] nft object id : 0xa24bc3d3328330fedc23e577e67e2edc2ae694ce9388ef0675edededc89ad3c0 +- [x] 转账 nft hash: 6s9DcCoRVyJoXs4rRmoUpgHXteFLBeSL12KFxejajHd8 +- [x] scan上的NFT截图:![Scan截图](./img/3.png) + +## 04 Move Game +- [x] game package id : 0x2068eb036e9979416f64b7c1c585c63cb5609b4af832d0b894b6272391f8ecea +- [x] deposit Coin hash: FbCaftXwQLuJV99aGQ1CdTk1t52sRTNdDPfSK6VjdzAG +- [x] withdraw `Coin` hash: 3NsUJGMNWPhUN5oHPmdCSCw4uCbtEcDeeiSpGfhJ7BMH +- [x] play game hash: EefpeZDi6wcdqkyfu4ytbiYh9d6ZJuN6UHBbpQkvhX4x + +## 05 Move Swap +- [x] swap package id : 0x9f4bfb2224e7d8b94cde9c7d0c58b3410162f8acf89d38889eef182da1924b46 +- [x] call swap CoinA-> CoinB hash : GGj8h33JEBy7DcKh22iErMRe1z32XDmg8Dhss91XKXez +- [x] call swap CoinB-> CoinA hash : 7mCeLNCEtrrp1kihrmnaoBqcRhHDa9HbbZhnf9BqATcf + +## 06 Dapp-kit SDK PTB +- [x] save hash : 84JWFrKa1woNASYskNgysb6woRXs8WCYkRcgbJ3JWVRj + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./img/4.png) +- [x] flag hash : J9GW7fZG1c8UniHjmb225UTX6YsbGMfu6UzWENNjHHkD + +## 08 Move CTF Lets Move +- [x] proof : e9dbd0c9cd2ce66a6c57 +- [x] flag hash : FaN82jfLs4ZWVMKE5DMWY2SWnyJowomVPqWQGVki4UfM \ No newline at end of file diff --git a/mover/Gold/readme.md b/mover/Gold/readme.md deleted file mode 100644 index b370039fd..000000000 --- a/mover/Gold/readme.md +++ /dev/null @@ -1,38 +0,0 @@ -## 基本信息 -- Sui钱包地址: `0x0e0c9ecbf04056e68b27ea392ea0a65ed0908ddd56ba6e76d0147a4380cba1ad` -> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 -- github: `Gold` - -## 个人简介 -- 工作经验: 7年 -- 技术栈: `Java` `Rust` `React` -- web2 -> web3 ing - -## 任务 - -## 01 hello move -- [x] package id: - - devnet: 0x0fc3d411a048d01a5ffc8ddd88b5df4976c175f09cb20c4cf66c9b6c66da584f - - testnet: 0x4b87bf6a740dc0682b661e03aaf853a5a7ae2ebfb61a5fc1ea3be6604e0a5831 - -## 02 move coin -- [] My Coin package id : -- [] Faucet package id : -- [] 转账 `My Coin` hash: - -## 03 move NFT -- [] nft package id : -- [] nft object id : -- [] 转账 nft hash: - -## 04 Move Game -- [] game package id : -- [] call game hash: - -## 05 Move Swap -- [] swap package id : -- [] call swap hash: - -## 06 SDK PTB -- [] save hash : - diff --git a/mover/Heemale/code/task2/Move.toml b/mover/Heemale/code/task2/Move.toml new file mode 100644 index 000000000..a023b6f04 --- /dev/null +++ b/mover/Heemale/code/task2/Move.toml @@ -0,0 +1,12 @@ +[package] +name = "task2" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } + +[addresses] +task2 = "0x0" + +[dev-dependencies] + +[dev-addresses] diff --git a/mover/Heemale/code/task2/sources/faucet_coin.move b/mover/Heemale/code/task2/sources/faucet_coin.move new file mode 100644 index 000000000..355a8689c --- /dev/null +++ b/mover/Heemale/code/task2/sources/faucet_coin.move @@ -0,0 +1,45 @@ +module task2::faucet_coin { + + use std::option; + use std::string; + use sui::coin::{Self, TreasuryCap}; + use sui::transfer; + use sui::tx_context::{TxContext}; + use sui::url; + + struct FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: FAUCET_COIN, ctx: &mut TxContext) { + let (treasury, meta_data) = coin::create_currency( + witness, + 6, + b"Heemale Faucet", + b"Heemale Faucet Coin", + b"相信的心是我们的魔法", + option::some( + url::new_unsafe( + string::to_ascii( + string::utf8( + b"https://avatars.githubusercontent.com/u/57651639?s=400&u=25e8d8a5c8eed5d1408617994c5d8ea8ec0ac5c2&v=4" + ) + ) + ) + ), + ctx + ); + + transfer::public_share_object(treasury); + transfer::public_freeze_object(meta_data); + } + + entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient); + } +} \ No newline at end of file diff --git a/mover/Heemale/code/task2/sources/my_coin.move b/mover/Heemale/code/task2/sources/my_coin.move new file mode 100644 index 000000000..42403259b --- /dev/null +++ b/mover/Heemale/code/task2/sources/my_coin.move @@ -0,0 +1,44 @@ +module task2::my_coin { + + use std::option; + use std::string; + use sui::coin::{Self, TreasuryCap}; + use sui::transfer; + use sui::tx_context::{Self, TxContext }; + use sui::url; + + struct MY_COIN has drop {} + + fun init(witness: MY_COIN, ctx: &mut TxContext) { + let (treasury, meta_data) = coin::create_currency( + witness, + 6, + b"Heemale", + b"Heemale Coin", + b"相信的心是我们的魔法", + option::some( + url::new_unsafe( + string::to_ascii( + string::utf8( + b"https://avatars.githubusercontent.com/u/57651639?s=400&u=25e8d8a5c8eed5d1408617994c5d8ea8ec0ac5c2&v=4" + ) + ) + ) + ), + ctx + ); + + transfer::public_transfer(treasury, tx_context::sender(ctx)); + transfer::public_freeze_object(meta_data); + } + + entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient); + } +} \ No newline at end of file diff --git a/mover/Heemale/code/task3/Move.toml b/mover/Heemale/code/task3/Move.toml new file mode 100644 index 000000000..5be3361ec --- /dev/null +++ b/mover/Heemale/code/task3/Move.toml @@ -0,0 +1,12 @@ +[package] +name = "task3" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } + +[addresses] +task3 = "0x0" + +[dev-dependencies] + +[dev-addresses] diff --git a/mover/Heemale/code/task3/sources/nft.move b/mover/Heemale/code/task3/sources/nft.move new file mode 100644 index 000000000..20b15c813 --- /dev/null +++ b/mover/Heemale/code/task3/sources/nft.move @@ -0,0 +1,64 @@ +module task3::nft { + + use std::string::{Self, utf8, String}; + use sui::object::{Self, UID}; + use sui::tx_context::{Self, TxContext}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + use sui::transfer; + + struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + struct NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"Heemale"), + description: string::utf8(b"Heemale NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/57651639?s=400&u=25e8d8a5c8eed5d1408617994c5d8ea8ec0ac5c2&v=4" + ) + }; + transfer::public_transfer(nft, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/Heemale/notes/img/mintNFT.png b/mover/Heemale/notes/img/mintNFT.png new file mode 100644 index 000000000..761234ccc Binary files /dev/null and b/mover/Heemale/notes/img/mintNFT.png differ diff --git a/mover/Heemale/readme.md b/mover/Heemale/readme.md index 8457e07ab..e01f77e68 100644 --- a/mover/Heemale/readme.md +++ b/mover/Heemale/readme.md @@ -15,14 +15,16 @@ - [x] package id: 0x7f3c649fd0f706ff051779203d4e7bcd809aa6873009bb302e398001a8ab1f9c ## 02 move coin -- [] My Coin package id : -- [] Faucet package id : -- [] 转账 `My Coin` hash: +- [x] My Coin package id : 0x708db97a44f5dc7d11c73fe7a1d823d8a4744f5a2f883f2fbffa362c70678db2 +- [x] Faucet package id : 0x708db97a44f5dc7d11c73fe7a1d823d8a4744f5a2f883f2fbffa362c70678db2 +- [x] 转账 `My Coin` hash: 9pNyKfJAsF5raCRw4GeAZrgFu27FtS3jgFv12CMseUgx ## 03 move NFT -- [] nft package id : -- [] nft object id : -- [] 转账 nft hash: +- [x] nft package id : 0x900bc94e7f303da2c4c6e5671c35c43c2507ee38a6c84a879ac1389e1e5fa6d2 +- [x] nft object id : 0x348bc12f75569efbd9d80c338010db5446bd3b634ec62b31d17037263d041c59 +- [x] 转账 nft hash: 7SoZHuQV5oX9Z5QsjU2d5K8GsxeNxKgFr6MHpEZ2PfxB +- [x] mint到自己地址的浏览器查看(Scan)截图 +![minNFT](./notes/img/mintNFT.png) ## 04 Move Game - [] game package id : @@ -33,4 +35,4 @@ - [] call swap hash: ## 06 SDK PTB -- [] save hash : +- [] save hash: diff --git a/mover/HeyDYF/code/readme.md b/mover/HeyDYF/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/HeyDYF/images/task1-1.png b/mover/HeyDYF/images/task1-1.png new file mode 100644 index 000000000..277773871 Binary files /dev/null and b/mover/HeyDYF/images/task1-1.png differ diff --git a/mover/HeyDYF/images/task1-2.png b/mover/HeyDYF/images/task1-2.png new file mode 100644 index 000000000..2c90f1fc2 Binary files /dev/null and b/mover/HeyDYF/images/task1-2.png differ diff --git a/mover/HeyDYF/notes/readme.md b/mover/HeyDYF/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/HeyDYF/readme.md b/mover/HeyDYF/readme.md new file mode 100644 index 000000000..ea0a14d47 --- /dev/null +++ b/mover/HeyDYF/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x2d5dc5518020ff6a10c09a8634cb14c381a31dcaaa70729212c4981b3a955ec4` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `HeyDYF` + +## 个人简介 +- 工作经验: 0年 +- 技术栈: `Java` `C++` `Python` +> 重要提示 请认真写自己的简介 +- 学生,在读,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `@heyd1f` + +## 任务 + +## 01 hello move +- [] Sui cli version: sui 1.27.0-e5f080922d56-dirty +- [] Sui钱包截图: ![task1-1](D:\Users\Pictures\Typora\task1-1.png) +- [] package id: 0xc7cf74ade0d9dbe67aaa0d393e1b8df6169a1dcd46f22b3b5d34ca6faebb25d5 +- [] package id 在 scan上的查看截图:![task1-2](D:\Users\Pictures\Typora\task1-2.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/Hiroki391/images/ter.png b/mover/Hiroki391/images/ter.png new file mode 100644 index 000000000..3b6b639e6 Binary files /dev/null and b/mover/Hiroki391/images/ter.png differ diff --git a/mover/Hiroki391/readme.md b/mover/Hiroki391/readme.md index f5b8cfa5a..4a7fe2a28 100644 --- a/mover/Hiroki391/readme.md +++ b/mover/Hiroki391/readme.md @@ -44,3 +44,11 @@ ## 06 SDK PTB - [x] save hash : 2crzyf28X96jqgnomsbZh2WVFqmLKMAZvF5JCBsMjJki + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/ter.png) +- [x] flag hash : Cm7dkd49FPjoPwe86TvS9s1BiwJukhHr2rKN3qkk6kbp + +## 08 Move CTF Lets Move +- [x] proof : 82c9a22559470d9db4ab +- [x] flag hash : A5HcogsR7FFaxfuhGtxCrBq1nTs47HvVa5KGNrrUmFTv \ No newline at end of file diff --git a/mover/HlLming/code/readme.md b/mover/HlLming/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/HlLming/code/task1/Move.toml b/mover/HlLming/code/task1/Move.toml new file mode 100644 index 000000000..e75e497eb --- /dev/null +++ b/mover/HlLming/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1" +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] +task1 = "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/HlLming/code/task1/sources/task1.move b/mover/HlLming/code/task1/sources/task1.move new file mode 100644 index 000000000..f2a9b2a22 --- /dev/null +++ b/mover/HlLming/code/task1/sources/task1.move @@ -0,0 +1,19 @@ +module task1::hello_move { + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct HelloObj has key, store { + id: UID, + say: string::String + } + + public fun mint(ctx: &mut TxContext) { + let object = HelloObj { + id: object::new(ctx), + say: string::utf8(b"Hello HlLming!") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } +} diff --git a/mover/HlLming/code/task2/Move.toml b/mover/HlLming/code/task2/Move.toml new file mode 100644 index 000000000..d06aa9b3a --- /dev/null +++ b/mover/HlLming/code/task2/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task2" +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/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] +task2 = "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/HlLming/code/task2/sources/coin.move b/mover/HlLming/code/task2/sources/coin.move new file mode 100644 index 000000000..b4b81e138 --- /dev/null +++ b/mover/HlLming/code/task2/sources/coin.move @@ -0,0 +1,34 @@ +module task2::hllming_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct HLLMING_COIN has drop {} + + fun init(witness: HLLMING_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"HLLMING_COIN", + b"HLLMING_COIN", + b"coin create by mqh", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/169317797")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/HlLming/code/task2/sources/faucet.move b/mover/HlLming/code/task2/sources/faucet.move new file mode 100644 index 000000000..65b27e726 --- /dev/null +++ b/mover/HlLming/code/task2/sources/faucet.move @@ -0,0 +1,35 @@ +module task2::hllming_faucet_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct HLLMING_FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: HLLMING_FAUCET_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"HLLMING_FAUCET", + b"HLLMING_FAUCET", + b"faucet coin defined by mqh, everyone can access and mutate", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/169317797")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury_cap) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/HlLming/code/task3/Move.toml b/mover/HlLming/code/task3/Move.toml new file mode 100644 index 000000000..63e66c4e5 --- /dev/null +++ b/mover/HlLming/code/task3/Move.toml @@ -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/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] +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" + diff --git a/mover/HlLming/code/task3/sources/task3.move b/mover/HlLming/code/task3/sources/task3.move new file mode 100644 index 000000000..b7a22548b --- /dev/null +++ b/mover/HlLming/code/task3/sources/task3.move @@ -0,0 +1,47 @@ +module task3::hllming_nft { + use std::ascii::String; + use std::string::utf8; + use sui::display; + use sui::object; + use sui::object::{UID}; + use sui::package; + use sui::transfer; + use sui::transfer::public_transfer; + use sui::tx_context; + use sui::tx_context::{TxContext}; + + public struct HLLMING_NFT has drop {} + + public struct NFT has key,store { + id: UID, + name: String, + } + + fun init(otw: HLLMING_NFT, ctx: &mut sui::tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://avatars.githubusercontent.com/u/169317797"), + ]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values,ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + public entry fun mint_to(name: String, recipient: address,ctx: &mut TxContext) { + let nft = NFT{ + id: object::new(ctx), + name, + }; + public_transfer(nft, recipient) + } +} \ No newline at end of file diff --git a/mover/HlLming/code/task4/Move.toml b/mover/HlLming/code/task4/Move.toml new file mode 100644 index 000000000..86e124a47 --- /dev/null +++ b/mover/HlLming/code/task4/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task4" +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] +task4 = "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/HlLming/code/task4/sources/task4.move b/mover/HlLming/code/task4/sources/task4.move new file mode 100644 index 000000000..224c560e9 --- /dev/null +++ b/mover/HlLming/code/task4/sources/task4.move @@ -0,0 +1,170 @@ +module task4::hllming_game { + use std::string::{Self, String}; + use sui::event; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin}; + use sui::tx_context::sender; + use std::hash; + use sui::bcs; + + const EPoolNotEnough: u64 = 1; + const EInputNotEnough: u64 = 2; + const ERR_HIGH_ARG_GREATER_THAN_LOW_ARG: u64 = 101; + + public struct GameResult has copy, drop { + result: String, + is_winner: bool, + } + + public struct Game has key { + id: UID, + pool: Balance, + ticket: u64, + reward: u64, + } + + public struct SpinResult has copy, drop, store { + spin1: u8, + spin2: u8, + spin3: u8, + } + + public fun game_pool(game: &Game): u64 { + balance::value(&game.pool) + } + + public fun game_ticket(game: &Game): u64 { + game.ticket + } + + public fun game_reward(game: &Game): u64 { + game.reward + } + + public struct AdminCap has key { + id: UID, + } + + fun init(_ctx: &mut TxContext) { + } + + entry fun creat_game(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + pool: balance::zero(), + ticket: 1000, + reward: 2000, + }; + transfer::share_object(game); + + let admin_cap = AdminCap { id: object::new(ctx) }; + transfer::transfer(admin_cap, sender(ctx)); + } + + fun get_spin_result(ctx: &mut TxContext) : SpinResult { + let spin1 = (rand_u64_range(0, 5, ctx) as u8); + let spin2 = (rand_u64_range(0, 5, ctx) as u8); + let spin3 = (rand_u64_range(0, 5, ctx) as u8); + SpinResult { spin1, spin2, spin3 } + } + + public entry fun play(game: &mut Game, input: Coin, ctx: &mut TxContext) { + assert!(balance::value(&game.pool) >= game.reward - game.ticket, EPoolNotEnough); + + let player_spins = get_spin_result(ctx); + let winning_combination = SpinResult { spin1: 2, spin2: 2, spin3: 2 }; + + let input_value = coin::value(&input); + assert!(input_value >= game.ticket, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > game.ticket) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, game.ticket) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + }; + + let (result, is_winner) = if (player_spins.spin1 == winning_combination.spin1 && player_spins.spin2 == winning_combination.spin2 && player_spins.spin3 == winning_combination.spin3) { + ( string::utf8(b"Congratulations, you hit the jackpot! Collect your coins😄"), true) + } else { + ( string::utf8(b"Try again, better luck next time!💔"), false) + }; + + if (is_winner) { + let reward_balance = balance::split(&mut game.pool, game.reward); + let reward = coin::from_balance(reward_balance, ctx); + transfer::public_transfer(reward, sender(ctx)); + }; + + event::emit(GameResult { + result, + is_winner, + }); + } + + public entry fun deposit(game: &mut Game, input: Coin, amount: u64, ctx: &mut TxContext) { + let input_value = coin::value(&input); + assert!(input_value >= amount, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > amount) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, amount) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + } + } + + public entry fun withdraw(_: &AdminCap, game: &mut Game, amount: u64, ctx: &mut TxContext) { + let output_balance = balance::split(&mut game.pool, amount); + let output = coin::from_balance(output_balance, ctx); + transfer::public_transfer(output, sender(ctx)); + } + + fun seed(ctx: &mut TxContext): vector { + let ctx_bytes = bcs::to_bytes(ctx); + let uid = object::new(ctx); + let uid_bytes: vector = object::uid_to_bytes(&uid); + object::delete(uid); + + let mut info: vector = vector::empty(); + vector::append(&mut info, ctx_bytes); + vector::append(&mut info, uid_bytes); + + let hash: vector = hash::sha3_256(info); + hash + } + + fun bytes_to_u64(bytes: vector): u64 { + let mut value = 0u64; + let mut i = 0u64; + while (i < 8) { + value = value | ((*vector::borrow(&bytes, i) as u64) << ((8 * (7 - i)) as u8)); + i = i + 1; + }; + return value + } + + fun rand_u64_with_seed(_seed: vector): u64 { + bytes_to_u64(_seed) + } + + fun rand_u64_range_with_seed(_seed: vector, low: u64, high: u64): u64 { + assert!(high > low, ERR_HIGH_ARG_GREATER_THAN_LOW_ARG); + let value = rand_u64_with_seed(_seed); + (value % (high - low)) + low + } + + public fun rand_u64_range(low: u64, high: u64, ctx: &mut TxContext): u64 { + rand_u64_range_with_seed(seed(ctx), low, high) + } +} \ No newline at end of file diff --git a/mover/HlLming/code/task5/Move.toml b/mover/HlLming/code/task5/Move.toml new file mode 100644 index 000000000..856a08c66 --- /dev/null +++ b/mover/HlLming/code/task5/Move.toml @@ -0,0 +1,37 @@ +[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 (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] +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" + diff --git a/mover/HlLming/code/task5/sources/task5.move b/mover/HlLming/code/task5/sources/task5.move new file mode 100644 index 000000000..f141a84df --- /dev/null +++ b/mover/HlLming/code/task5/sources/task5.move @@ -0,0 +1,312 @@ +module task5::hllming_swap { + use sui::object::{Self, UID}; + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply, Balance}; + use sui::transfer; + use sui::math; + use sui::tx_context::{Self, TxContext}; + + /// For when supplied Coin is zero. + const EZeroAmount: u64 = 0; + + /// For when someone tries to swap in an empty pool. + const EReservesEmpty: u64 = 2; + + /// For when someone attempts to add more liquidity than u128 Math allows. + const EPoolFull: u64 = 4; + + /// The integer scaling setting for fees calculation. + const FEE_SCALING: u128 = 10000; + + /// The fee percent that will be taken from the swap. + /// Set to 0.3%. + const FEE_PERCENT: u128 = 30; + + /// The max value that can be held in one of the Balances of + /// a Pool. U64 MAX / FEE_SCALING + const MAX_POOL_VALUE: u64 = { + 18446744073709551615 / 10000 + }; + + /// The Pool token that will be used to mark the pool share + /// of a liquidity provider. + /// The first type parameter stands for the witness type of a pool. + /// The seconds and thirds is for the coin held in the pool. + public struct LSP has drop {} + + /// The pool with exchange. + /// + /// - `fee_percent` should be in the range: [0-10000), meaning + /// that 10000 is 100% and 1 is 0.01% + public struct Pool has key { + id: UID, + token_a: Balance, + token_b: Balance, + lsp_supply: Supply>, + /// Fee Percent is denominated in basis points. + fee_percent: u64 + } + + + /// ======================================================================= + /// ============================= 初始化函数 =============================== + /// ======================================================================= + + /// Module initializer is empty - to publish a new Pool one has + /// to create a type which will mark LSPs. + fun init(_: &mut TxContext) { + } + + /// ======================================================================= + /// ============================= 流动性池 ================================= + /// ======================================================================= + + entry fun create_pool ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + create_pool_inner(token_a, token_b, ctx), + tx_context::sender(ctx) + ); + } + + fun create_pool_inner ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + let fee_percent = (FEE_PERCENT as u64); + + let token_a_amt = coin::value(&token_a); + let token_b_amt = coin::value(&token_b); + + assert!(token_a_amt > 0 && token_b_amt > 0, EZeroAmount); + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let share = math::sqrt(token_a_amt) * math::sqrt(token_b_amt); + let mut lsp_supply = balance::create_supply(LSP {}); + let lsp = balance::increase_supply(&mut lsp_supply, share); + + transfer::share_object(Pool { + id: object::new(ctx), + token_a: coin::into_balance(token_a), + token_b: coin::into_balance(token_b), + lsp_supply, + fee_percent, + }); + + coin::from_balance(lsp, ctx) + } + + entry fun add_liquidity ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + add_liquidity_inner(pool, token_a, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun add_liquidity_inner ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + assert!(coin::value(&token_a) > 0 && coin::value(&token_b) > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, lsp_supply) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_balance = coin::into_balance(token_a); + let token_b_balance = coin::into_balance(token_b); + + let token_a_added = balance::value(&token_a_balance); + let token_b_added = balance::value(&token_b_balance); + + // XXX - 可以对新增的流动性进行计算,查看比值是否和原来的比值一致 + // assert!(token_a_added * token_b_amt == token_b_added * token_a_amt, EWrongFee); + // assert!(math::abs_diff(token_a_added * token_b_amt, token_b_added * token_a_amt) < 100, EWrongFee); + + let share_minted = math::min( + (token_a_added * lsp_supply) / token_a_amt, + (token_b_added * lsp_supply) / token_b_amt + ); + + let token_a_amt = balance::join(&mut pool.token_a, token_a_balance); + let token_b_amt = balance::join(&mut pool.token_b, token_b_balance); + + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let balance = balance::increase_supply(&mut pool.lsp_supply, share_minted); + + coin::from_balance(balance, ctx) + } + + entry fun remove_liquidity ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ) { + let (token_a, token_b) = remove_liquidity_inner(pool, lsp, ctx); + let sender = tx_context::sender(ctx); + + transfer::public_transfer(token_a, sender); + transfer::public_transfer(token_b, sender); + } + + fun remove_liquidity_inner ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ): (Coin, Coin) { + let lsp_amount = coin::value(&lsp); + assert!(lsp_amount > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, total_supply) = get_amounts(pool); + + let token_a = (token_a_amt * lsp_amount) / total_supply; + let token_b = (token_b_amt * lsp_amount) / total_supply; + + balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); + + ( + coin::take(&mut pool.token_a, token_a, ctx), + coin::take(&mut pool.token_b, token_b, ctx), + ) + } + + /// ======================================================================= + /// ============================= 交易函数 ================================= + /// ======================================================================= + + entry fun swap_a_to_b ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_a_to_b_inner(pool, token_a, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_a_to_b_inner ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ): Coin { + let token_a_amt = coin::value(&token_a); + assert!(token_a_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_b_amt = sell_token_a(pool, token_a_amt); + + balance::join(&mut pool.token_a, coin::into_balance(token_a)); + + coin::take(&mut pool.token_b, token_b_amt, ctx) + } + + entry fun swap_b_to_a ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_b_to_a_inner(pool, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_b_to_a_inner ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ): Coin { + let token_b_amt = coin::value(&token_b); + assert!(token_b_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_amt = sell_token_b(pool, token_b_amt); + + balance::join(&mut pool.token_b, coin::into_balance(token_b)); + + coin::take(&mut pool.token_a, token_a_amt, ctx) + } + + /// ======================================================================= + /// ============================= 辅助函数 ================================= + /// ======================================================================= + + /// 计算售出指定数量的 Token A,会得到多少数量的 Token B + public fun sell_token_a(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_a_amt, + token_b_amt, + pool.fee_percent + ) + } + + /// 计算售出指定数量的 Token B,会得到多少数量的 Token A + public fun sell_token_b(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_b_amt, + token_a_amt, + pool.fee_percent + ) + } + + /// Get most used values in a handy way: + /// - amount of token a + /// - amount of token b + /// - total supply of LSP + public fun get_amounts(pool: &Pool): (u64, u64, u64) { + ( + balance::value(&pool.token_a), + balance::value(&pool.token_b), + balance::supply_value(&pool.lsp_supply), + ) + } + + public fun calc_output_amount( + input_amount: u64, + input_reserve: u64, + output_reserve: u64, + fee_percent: u64 + ): u64 { + let ( + input_amount, + input_reserve, + output_reserve, + fee_percent + ) = ( + (input_amount as u128), + (input_reserve as u128), + (output_reserve as u128), + (fee_percent as u128), + ); + + // 计算手续费后的输入数量 + let input_with_fee = input_amount * FEE_SCALING / (FEE_SCALING - fee_percent); + + // 根据公式 (x + dx) * (y - dy) = k + // 得到 dy = y - k / (x + dx) + let total = input_reserve * output_reserve; + let output_amount = output_reserve - total / (input_reserve + input_with_fee); + + (output_amount as u64) + } +} diff --git a/mover/HlLming/code/task6/index.html b/mover/HlLming/code/task6/index.html new file mode 100644 index 000000000..251e0801f --- /dev/null +++ b/mover/HlLming/code/task6/index.html @@ -0,0 +1,12 @@ + + + + + + SDK Help + + +
+ + + diff --git a/mover/HlLming/code/task6/package.json b/mover/HlLming/code/task6/package.json new file mode 100644 index 000000000..076a96228 --- /dev/null +++ b/mover/HlLming/code/task6/package.json @@ -0,0 +1,24 @@ +{ + "name": "with-vite", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --port 3000" + }, + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@suiet/wallet-kit": "0.2.24", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tweetnacl": "^1.0.3", + "navi-sdk": "^1.1.21" + }, + "devDependencies": { + "@types/react": "^18.0.22", + "@types/react-dom": "^18.0.7", + "@vitejs/plugin-react": "^2.2.0", + "typescript": "^5.4.3", + "vite": "^3.2.7" + } +} diff --git a/mover/HlLming/code/task6/src/App.css b/mover/HlLming/code/task6/src/App.css new file mode 100644 index 000000000..ac87691e7 --- /dev/null +++ b/mover/HlLming/code/task6/src/App.css @@ -0,0 +1,43 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +.card { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 2em; +} + +.read-the-docs { + color: #888; +} + +.btn-group button+button{ + margin-left: 12px; +} \ No newline at end of file diff --git a/mover/HlLming/code/task6/src/App.tsx b/mover/HlLming/code/task6/src/App.tsx new file mode 100644 index 000000000..c2c8462cf --- /dev/null +++ b/mover/HlLming/code/task6/src/App.tsx @@ -0,0 +1,114 @@ +import "./App.css"; +import { + ConnectButton, + useAccountBalance, + useWallet, + ErrorCode, + formatSUI, +} from "@suiet/wallet-kit"; +import "@suiet/wallet-kit/style.css"; +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import {depositCoin, borrowCoin} from 'navi-sdk/dist/libs/PTB' +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from 'navi-sdk/dist/address' +import {Sui, USDC} from 'navi-sdk/dist/address'; + +function App() { + const wallet = useWallet(); + const { balance } = useAccountBalance(); + + function uint8arrayToHex(value: Uint8Array | undefined) { + if (!value) return ""; + // @ts-ignore + return value.toString("hex"); + } + + async function handleNAVISDK() { + if (!wallet.account) return; + const account = wallet.account; + const sender = account.address; + try { + let txb = new TransactionBlock(); + txb.setSender(sender); + + let getCoinInfo = balance; + if (!getCoinInfo) { + throw new Error("Insufficient balance"); + } + + let deposit_amount = 1e9; + let sui_symbol = Sui.symbol; + const pool_sui: PoolConfig = pool[sui_symbol as keyof Pool]; + const [to_deposit] = txb.splitCoins(txb.gas, [deposit_amount]); + await depositCoin(txb, pool_sui, to_deposit, deposit_amount); + + let borrow_amount = 0.072817 * 1e6; + let usdc_symbol = USDC.symbol; + const pool_usdc: PoolConfig = pool[usdc_symbol as keyof Pool]; + const [borrow_coin] = await borrowCoin(txb, pool_usdc, borrow_amount); + + await depositCoin(txb, pool_usdc, borrow_coin, borrow_amount); + + const resData = await wallet.signAndExecuteTransactionBlock({ + transactionBlock: txb, + }); + console.log("transaction digest: " + JSON.stringify(resData)); + } catch (e) { + console.error("failed", e); + alert("failed (see response in the console)"); + } + } + + return ( +
+
+ { + if (error.code === ErrorCode.WALLET__CONNECT_ERROR__USER_REJECTED) { + console.warn( + "user rejected the connection to " + error.details?.wallet + ); + } else { + console.warn("unknown connect error: ", error); + } + }} + /> + + {!wallet.connected ? ( +

Connect wallet from now!

+ ) : ( +
+
+

current wallet: {wallet.adapter?.name}

+

+ wallet status:{" "} + {wallet.connecting + ? "connecting" + : wallet.connected + ? "connected" + : "disconnected"} +

+

wallet address: {wallet.account?.address}

+

current network: {wallet.chain?.name}

+

+ wallet balance:{" "} + {formatSUI(balance ?? 0, { + withAbbr: false, + })}{" "} + SUI +

+

+ wallet publicKey: {uint8arrayToHex(wallet.account?.publicKey)} +

+
+
+ +
+
+ )} +
+
+ ); +} + +export default App; diff --git a/mover/HlLming/code/task6/src/main.tsx b/mover/HlLming/code/task6/src/main.tsx new file mode 100644 index 000000000..b27eb00c3 --- /dev/null +++ b/mover/HlLming/code/task6/src/main.tsx @@ -0,0 +1,16 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +import { + WalletProvider, +} from '@suiet/wallet-kit'; + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + + + +) diff --git a/mover/HlLming/notes/nft.png b/mover/HlLming/notes/nft.png new file mode 100644 index 000000000..2a6bcb5ef Binary files /dev/null and b/mover/HlLming/notes/nft.png differ diff --git a/mover/HlLming/notes/package.png b/mover/HlLming/notes/package.png new file mode 100644 index 000000000..31ecfe03d Binary files /dev/null and b/mover/HlLming/notes/package.png differ diff --git a/mover/HlLming/notes/readme.md b/mover/HlLming/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/HlLming/notes/s.png b/mover/HlLming/notes/s.png new file mode 100644 index 000000000..3370e3ab2 Binary files /dev/null and b/mover/HlLming/notes/s.png differ diff --git a/mover/HlLming/notes/wa.png b/mover/HlLming/notes/wa.png new file mode 100644 index 000000000..99dfb472e Binary files /dev/null and b/mover/HlLming/notes/wa.png differ diff --git a/mover/HlLming/readme.md b/mover/HlLming/readme.md new file mode 100644 index 000000000..d6ae71b00 --- /dev/null +++ b/mover/HlLming/readme.md @@ -0,0 +1,53 @@ +## 基本信息 +- Sui钱包地址: `0x5682a340f2c471f1633707e8f1f685afd23035b52977844a922b1c266c28b8ff` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `HlLming` + +## 个人简介 +- 工作经验: 1年 +- 技术栈: `Vue` `React` +> 重要提示 请认真写自己的简介 +- 有前端开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `Hllming` +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.28.3 +- [x] Sui钱包截图: ![Sui钱包截图](./notes/wa.png) +- [x] package id: 0x9a6f5ed5d360ae13bf86463722e93a3e0259882f67eed0900022f5cdcde74779 +- [x] package id 在 scan上的查看截图:![Scan截图](./notes/package.png) + +## 02 move coin +- [x] My Coin package id : 0x920491420bc64ee56160c3b36d1938575b07527e0e35310f1f5e42695b4ee83b +- [x] Faucet package id : 0x920491420bc64ee56160c3b36d1938575b07527e0e35310f1f5e42695b4ee83b +- [x] 转账 `My Coin` hash: NARDUX1DeBeyi4RzcnuDGrrDWKHfH1sEK81vQRcB1YP +- [x] `Faucet Coin` address1 mint hash: BBWHCM9HiALsnuUt1FopeoNznFxzz81JruLJzbzRk2Kn +- [x] `Faucet Coin` address2 mint hash: 4iYeXqf3hLT6DUQM6R4a9iLLEv7ciCrrsVTudnXWGfRu + +## 03 move NFT +- [x] nft package id : 0xdb866ab73c2aa59855d267a13a07b48799ca4adfacaa85acaec03721d9af0f6c +- [x] nft object id : 0x03564380160f5d9382ba81c79b41415c827c8d532b83c892136286582275d925 +- [x] 转账 nft hash: 67yG86BBCWRfuFWNQvr7jYDqZ32R4PwjsMvB2vKf1ZoP +- [x] scan上的NFT截图:![Scan截图](./notes/nft.png) + +## 04 Move Game +- [x] game package id: 0x4c72ef8941dc4e55d9514b4a3b357f02778dd9e2e7b4cf7ee100b35ccdec7640 +- [x] deposit Coin hash: DAuPRANTYTycaYXVgPRGAwXSzQEKCUj13rbCkeRnLAX +- [x] withdraw `Coin` hash: KSwtHRmUEpbroeAq2pHh3N9duWUJMJuzCFCvYUz49Di +- [x] play game hash: DRmiqKQwHDxQNMUR1AeMkGi5ZWGP8nnSn46fxgy9hMrc + +## 05 Move Swap +- [x] swap package id : 0x5e6a9eb51859738d349580f661812279cecf1f5b56856058bec29cb96cef6247 +- [x] call swap CoinA-> CoinB hash : tmKJ2QACQrRXKEViVHNfiAyiLXbNaSrjmB3tuk1DoT8 +- [x] call swap CoinB-> CoinA hash : H3kiw8XEkaSx7oVyeSwo81SkWnur3guQsFbbxnGUwYoC + +## 06 Dapp-kit SDK PTB +- [x] save hash : Anndq9oE3sJBSSyepSNexSbHVWrheWBb3JZKUvwMDYxB + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./notes/s.png) +- [x] flag hash : 8jkui2Ja7PSR3vvFxrQE7VY2F7x4MRZd2ZZTsNhVoW2Q + +## 08 Move CTF Lets Move +- [x] proof : 9071665258e933a4b98a +- [x] flag hash : qXoetJHvCEvVTmMV4XDbju1oXyMaeph7RhPWFR2cGwm diff --git a/mover/HuiWang-World/code/task2/hello_world/Move.lock b/mover/HuiWang-World/code/task2/hello_world/Move.lock new file mode 100644 index 000000000..c62cc8689 --- /dev/null +++ b/mover/HuiWang-World/code/task2/hello_world/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "60F2000F4D6DAD240EF371DB3BC521F7BD4C8B814BC59CA473B852B77FDBE53C" +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.mainnet] +chain-id = "35834a8a" +original-published-id = "0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa" +latest-published-id = "0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa" +published-version = "1" diff --git a/mover/HuiWang-World/code/task2/hello_world/Move.toml b/mover/HuiWang-World/code/task2/hello_world/Move.toml new file mode 100644 index 000000000..201de1731 --- /dev/null +++ b/mover/HuiWang-World/code/task2/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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] +hello_world = "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/HuiWang-World/code/task2/hello_world/sources/HuiWang_World_Coin.move b/mover/HuiWang-World/code/task2/hello_world/sources/HuiWang_World_Coin.move new file mode 100644 index 000000000..df55148b6 --- /dev/null +++ b/mover/HuiWang-World/code/task2/hello_world/sources/HuiWang_World_Coin.move @@ -0,0 +1,44 @@ +module hello_world::HuiWang_World_Coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Url,Self}; + + /// 定义结构体 + public struct HUIWANG_WORLD_COIN has drop { + + } + /// 屏蔽警告 + #[allow(lint(share_owned))] + /// 初始化方法 合约在部署的的时候会进行初始化 + fun init(witness:HUIWANG_WORLD_COIN, ctx: &mut TxContext) { + // 创建一个 coin + let (treasury_cap, metadata) = coin::create_currency( + witness, + 3, + b"HuiWang_World", + b"HuiWang_World", + b"Move-cn Faucet Task Coin by HuiWang_World", + option::some(url::new_unsafe_from_bytes(b"https://imagedelivery.net/cBNDGgkrsEA-b_ixIp9SkQ/sui.svg/public")), + ctx + ); + + transfer::public_freeze_object(metadata);//冻结coin原数据 + transfer::public_share_object(treasury_cap);//共享coin所有权 + } + /// 铸造币 mint + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + /// 销毁币 Coin + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } + /// 水龙头 cap:coin类型,amount:token数量,recv:接收地址 + public entry fun faucet(cap: &mut coin::TreasuryCap, amount: u64, recv: address, ctx: &mut TxContext) { + coin::mint_and_transfer(cap, amount, recv, ctx); + } +} \ No newline at end of file diff --git a/mover/HuiWang-World/code/task2/hello_world/sources/HuiWang_World_Faucet_Coin.move b/mover/HuiWang-World/code/task2/hello_world/sources/HuiWang_World_Faucet_Coin.move new file mode 100644 index 000000000..3007538e2 --- /dev/null +++ b/mover/HuiWang-World/code/task2/hello_world/sources/HuiWang_World_Faucet_Coin.move @@ -0,0 +1,38 @@ +module hello_world::HuiWang_World_Faucet_Coin { + + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Url, Self}; + + public struct HUIWANG_WORLD_FAUCET_COIN has drop {} + + fun init(witness: HUIWANG_WORLD_FAUCET_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 3, + b"HuiWang_World_Faucet_Coin", + b"HuiWang_World_Faucet_Coin", + b"Move-cn Standard Task Coin by HuiWang_World_Faucet_Coin", + option::some( + url::new_unsafe_from_bytes(b"https://imagedelivery.net/cBNDGgkrsEA-b_ixIp9SkQ/sui.svg/public") + ), + ctx + ); + + transfer::public_freeze_object(metadata);//冻结coin原数据 + transfer::public_transfer(treasury_cap, tx_context::sender(ctx));//转移所有权给调用者,也就是合约发布者 + } + + ///铸造币 + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + ///销毁币 + public fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/HuiWang-World/code/task2/hello_world/sources/hello_world.move b/mover/HuiWang-World/code/task2/hello_world/sources/hello_world.move new file mode 100644 index 000000000..f8f484a86 --- /dev/null +++ b/mover/HuiWang-World/code/task2/hello_world/sources/hello_world.move @@ -0,0 +1,6 @@ +/* +/// Module: hello_world +module hello_world::hello_world { + +} +*/ diff --git a/mover/HuiWang-World/code/task2/hello_world/tests/hello_world_tests.move b/mover/HuiWang-World/code/task2/hello_world/tests/hello_world_tests.move new file mode 100644 index 000000000..8fdf06eec --- /dev/null +++ b/mover/HuiWang-World/code/task2/hello_world/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_world::hello_world_tests { + // uncomment this line to import the module + // use hello_world::hello_world; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_world() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_world::hello_world_tests::ENotImplemented)] + fun test_hello_world_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/HuiWang-World/code/task3/hello_world/Move.lock b/mover/HuiWang-World/code/task3/hello_world/Move.lock new file mode 100644 index 000000000..007886d1c --- /dev/null +++ b/mover/HuiWang-World/code/task3/hello_world/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "108F31FE25ADDAF58595E4BA100FC87F3AF9A9BBE430F932526A779BFCBB8A0E" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "/Users/huiwang/GitLab/Open/Sui/sui", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "/Users/huiwang/GitLab/Open/Sui/sui", 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 = "0xccacaaf4c31547838afd391e4cd1900d7b46d7e692902e5c25aa831501c993f4" +latest-published-id = "0xccacaaf4c31547838afd391e4cd1900d7b46d7e692902e5c25aa831501c993f4" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xb20685c739bfe12eff994044e34d7eab91cc04e2d84f8455e03f4d748591bfee" +latest-published-id = "0xb20685c739bfe12eff994044e34d7eab91cc04e2d84f8455e03f4d748591bfee" +published-version = "1" diff --git a/mover/HuiWang-World/code/task3/hello_world/Move.toml b/mover/HuiWang-World/code/task3/hello_world/Move.toml new file mode 100644 index 000000000..3bcd253cb --- /dev/null +++ b/mover/HuiWang-World/code/task3/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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 = "/Users/huiwang/GitLab/Open/Sui/sui", 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] +hello_world = "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/HuiWang-World/code/task3/hello_world/sources/HUIWANG_WORLD_NFT.move b/mover/HuiWang-World/code/task3/hello_world/sources/HUIWANG_WORLD_NFT.move new file mode 100644 index 000000000..8c7e32243 --- /dev/null +++ b/mover/HuiWang-World/code/task3/hello_world/sources/HUIWANG_WORLD_NFT.move @@ -0,0 +1,52 @@ +module hello_world::HUIWANG_WORLD_NFT { + use sui::url::{Self, Url}; + use std::string; + use sui::transfer::{ public_transfer}; + + /// 有这个权限的才能调用当前合约铸造nft + public struct AdminCap has key, store { + id: UID + } + + /// 定义结构体 + public struct NFT has key, store { + id: UID, + name: string::String, + description: string::String, + url: Url, + } + + + /// 程序初始化逻辑 + fun init(ctx: &mut TxContext) { + public_transfer(AdminCap { id: object::new(ctx) }, tx_context::sender(ctx)); + } + + /// 屏蔽警告 + #[allow(lint(self_transfer))] + /// 铸造nft + public entry fun mint(_: &mut AdminCap, name: vector, description: vector, url: vector, ctx: &mut TxContext) { + //url链接转URL对象 + let urlObj = url::new_unsafe_from_bytes(url); + + // 构建nft对象 + let nft = NFT { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + url: urlObj, + }; + public_transfer(nft, tx_context::sender(ctx)); + } + + /// 转移 + public entry fun transfer(nft: NFT, recipient: address, _: &mut TxContext) { + public_transfer(nft, recipient); + } + + /// 销毁 + public entry fun burn(nft: NFT, _: &mut TxContext) { + let NFT { id, name: _, description: _, url: _ } = nft; + object::delete(id); + } +} diff --git a/mover/HuiWang-World/code/task3/hello_world/sources/hello_world.move b/mover/HuiWang-World/code/task3/hello_world/sources/hello_world.move new file mode 100644 index 000000000..f8f484a86 --- /dev/null +++ b/mover/HuiWang-World/code/task3/hello_world/sources/hello_world.move @@ -0,0 +1,6 @@ +/* +/// Module: hello_world +module hello_world::hello_world { + +} +*/ diff --git a/mover/HuiWang-World/code/task3/hello_world/tests/hello_world_tests.move b/mover/HuiWang-World/code/task3/hello_world/tests/hello_world_tests.move new file mode 100644 index 000000000..8fdf06eec --- /dev/null +++ b/mover/HuiWang-World/code/task3/hello_world/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_world::hello_world_tests { + // uncomment this line to import the module + // use hello_world::hello_world; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_world() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_world::hello_world_tests::ENotImplemented)] + fun test_hello_world_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/HuiWang-World/images/SuiScanNFT.png b/mover/HuiWang-World/images/SuiScanNFT.png new file mode 100644 index 000000000..a3a2d07cf Binary files /dev/null and b/mover/HuiWang-World/images/SuiScanNFT.png differ diff --git a/mover/HuiWang-World/notes/install-doc.md b/mover/HuiWang-World/notes/install-doc.md new file mode 100644 index 000000000..339dcd6c3 --- /dev/null +++ b/mover/HuiWang-World/notes/install-doc.md @@ -0,0 +1,54 @@ +# move sui 安装 + +## 1:安装rust +```shell +# 参考文档 https://rust-guide.niqin.com/en-us/3-env/3.2-linux-wsl-macos/3.2.2-homebrew-rust.html +# 参考文档 https://docs-zh.sui-book.com/guides/developer/getting-started/sui-install/ +# 安装 Rust 版本管理工具 rustup +brew install rustup-init +# 然后,在 bash 窗口执行 rustup 初始化命令,即可安装好 rust 环境及相关工具链。 +rustup-init +``` + + +## 2:安装move sui +### 2.1 从在线源代码安装 Sui 二进制文件 +```shell +cargo install --locked --git https://github.com/MystenLabs/sui.git --branch testnet sui +``` + +### 2.2 本地编译安装 +- 克隆: testnet + +```shell +git clone https://github.com/MystenLabs/sui.git +# 切换到 framework/testnet 分支 +cd sui && git checkout framework/testnet +``` + +- 执行本地编译 +- 如果需要升级版本重新执行语句即可,自动会安装最新版本,如果使用本地代码编译需要更新一下本地代码库,testnet分支可能更新不及时,最好使用在线安装 + +```shell +# 官方URL编译安装方式 cargo install --locked --git https://github.com/MystenLabs/sui.git --branch testnet sui +# "file:///Users/huiwang/GitLab/Open/Sui/sui" 为项目路径 +cargo install --locked --git "file:///Users/huiwang/GitLab/Open/Sui/sui" --branch framework/testnet sui +``` + +## 3:提升编译速度 +- 注:前提是本地已经存在了官方源码,或者使用国内镜像 +```toml +# 原有依赖 +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } +``` + +```toml +# 修改 git 指向本地即可,如: git = "/Users/huiwang/GitLab/Open/Sui/sui" 或者 使用国内镜像 git = "https://gitee.com/mystenLabs/sui.git" +[dependencies] +Sui = { git = "/Users/huiwang/GitLab/Open/Sui/sui", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } +``` + +# 4:搭建本地sui网络 + +- 相对比较复杂,待完善。。。 \ No newline at end of file diff --git a/mover/HuiWang-World/notes/task1.md b/mover/HuiWang-World/notes/task1.md new file mode 100644 index 000000000..f557cd610 --- /dev/null +++ b/mover/HuiWang-World/notes/task1.md @@ -0,0 +1,34 @@ +```shell +### 创建项目 +sui move new hello_world +``` + +```sui move +module hello_move::task1 { + use sui::transfer; + use std::string::{Self, String}; + use sui::object::{Self, UID}; + use sui::tx_context::{Self, TxContext}; + + public struct Hello has key { + id: UID, + msg: String, + } + + public fun hello_world(ctx: &mut TxContext) { + let world = Hello { + id: object::new(ctx), + msg: string::utf8(b"Hello World"), + }; + transfer::transfer(world, tx_context::sender(ctx)); + } +} +``` +```shell +# 测试 +sui move test +# +sui move build +# 发布 +sui client publish --gas-budget 10000000 +``` \ No newline at end of file diff --git a/mover/HuiWang-World/notes/task2-mainnet.md b/mover/HuiWang-World/notes/task2-mainnet.md new file mode 100644 index 000000000..8dbe58da3 --- /dev/null +++ b/mover/HuiWang-World/notes/task2-mainnet.md @@ -0,0 +1,722 @@ +--- 任务要求 begin--- + +# 完成两个Coin合约的上链部署 + +- 上链网络: mainnet + +## 需求 + +- 完成 Coin相关知识的学习 +- 完成 `My Coin` 的学习并部署主网 +- 完成 `Faucet Coin` 的学习并部署主网 +- 提交 `My Coin` 和 `Faucet Coin` 合约发布 `package id` +- 发送 `My Coin` 给地址 `0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2` +- `Faucet Coin` 需要至少用两个地址mint + +# 学习要点 + +1. 理解Coin协议 创建Coin +2. 理解独享所有权和共享所有权的区别 +3. 对共享所有权保持敬畏 因为权限被共享了 + +public_transfer 独享 mint权限 +public_share_object 共享 mint权限 + +## 任务指南 + +- `Faucet Coin` 就是任意人都可以mint的Coin +- `My Coin` 只能指定地址mint + +--- 任务要求 end--- + +--- task begin--- + +# task 任务 + +### 本地本地导入主网密匙 +```text +1:官网导出钱包密匙 +2:钱包密匙导入到本地 +3:切换使用钱包 + +查看地址 +sui client addresses +切换地址 +sui client switch --address + +导入地址,用助记词 +sui keytool import "<助记词>" ed25519 + + +列出当前所有网络别名: +sui client envs + +添加新的网络别名: +sui client new-env --alias --rpc + +切换网络: +sui client switch --env [network alias] + + +查询当前保存了密钥的地址: +sui client addresses +查询当前启用的地址: +sui client active-address + +列出所拥有的 gas objects: +sui client gas + +发布 +sui client publish //一般5后面8个0就可以,表示最多花0.1sui + +``` + +### 切换到主网 +```text + 0. 查看当前网络:sui client envs + 1. 到sui官网上右上角点击选择mainnet, 然后copy一下: + https://sui-mainnet-endpoint.blockvision.org + 2. 把该地址添加到本地的env中, 注意在地址最后加上‘:443’ + sui client new-env --alias mainnet --rpc https://sui-mainnet-endpoint.blockvision.org:443 + 3. 切换到主网 + sui client switch --env mainnet +``` + +### 创建项目 + +```shell +# 创建项目 +sui move new hello_world +``` + +### 编写代码 + +- 完成 HuiWang_World_Coin.move 与 HuiWang_World_Faucet_Coin.move 两个文件的代码 +- 发布到测试网 +```shell +sui client publish +``` +- 执行结果 +```shell +Transaction Digest: EgV4yWVJkAPVFAPqQciYk1bsAuJK6AsQ7LWAimVBUWHY +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ Gas Owner: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 751 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Version: 103342232 │ +│ │ Digest: 5TQ3NKLPkWcA3cDaoEdgU8SFeEpqNGcfgPZhxdM7XRQL │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ jHmePD9gawaKW4cDcNoJPNUEtpqaASOuBLtijhOvDgOE8sHrFuEWlOuX6au0jYpVjtSJdZZsB+LQF+ESM4VJDw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: EgV4yWVJkAPVFAPqQciYk1bsAuJK6AsQ7LWAimVBUWHY │ +│ Status: Success │ +│ Executed Epoch: 438 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x37cded3bf24731275da77721a6ededc1ce5b833cc50e1b248fe1a339373c102e │ +│ │ Owner: Immutable │ +│ │ Version: 103342233 │ +│ │ Digest: 7UCkRQQsPKkQ3HPkC7wdWsxvniqeY4Cqpz7LtYRkktQa │ +│ └── │ +│ ┌── │ +│ │ ID: 0x5319118d1631af0bfc29f4ac20dbf525b0a9820f29ebe2b870fdf1e6e6f3ae89 │ +│ │ Owner: Shared( 103342233 ) │ +│ │ Version: 103342233 │ +│ │ Digest: FkjVckYfX24HmSe4RW8Awc2ahZdtUG9qWScgsZ1JqvMZ │ +│ └── │ +│ ┌── │ +│ │ ID: 0x8035f82c7d326f562bec2d94282bea374ff95763733632d57a7d8d3d65ee1246 │ +│ │ Owner: Immutable │ +│ │ Version: 103342233 │ +│ │ Digest: GaaPW67rczbtrHPjocPU7rCwgG6n8SKqQoG8ZKCrd8f8 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x935063ab9c196e1936cb4372739184490761aa680c5f9c11beb12cd1714e2aba │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342233 │ +│ │ Digest: 5BwrHDnZpVwm81dGeVdKcaAv2Q5KpYXbmA17Lm3427qa │ +│ └── │ +│ ┌── │ +│ │ ID: 0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: C8za7bjmPTMxKgtq5ZDwDyh3SjZVG5sfQvLdBTG3jgVm │ +│ └── │ +│ ┌── │ +│ │ ID: 0xfe8d1b1d7bbc7d42350764b64e79450765082effd5ca9e9942c5fb1b7fba9b23 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342233 │ +│ │ Digest: GxAGtkYF4KjNR9hFY5ikGwRxPTnCnDSNhQpx8kBJXo3S │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342233 │ +│ │ Digest: F1wgrR3GoS5JsVGCbJ21pqXLzNGDLtkWEjtuyhe4s4DG │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342233 │ +│ │ Digest: F1wgrR3GoS5JsVGCbJ21pqXLzNGDLtkWEjtuyhe4s4DG │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 29290400 MIST │ +│ Computation Cost: 751000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ DapHQugyZkcz5ebTaqv8WR2i6pSRbL1adbRKM66Mxbsz │ +│ EY8ZaDkjhyBXX8iu9HXPQWznBp4QUcpAaTuwXSheDVuq │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37cded3bf24731275da77721a6ededc1ce5b833cc50e1b248fe1a339373c102e │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa::HuiWang_World_Coin::HUIWANG_WORLD_COIN> │ +│ │ Version: 103342233 │ +│ │ Digest: 7UCkRQQsPKkQ3HPkC7wdWsxvniqeY4Cqpz7LtYRkktQa │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x5319118d1631af0bfc29f4ac20dbf525b0a9820f29ebe2b870fdf1e6e6f3ae89 │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Shared( 103342233 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa::HuiWang_World_Coin::HUIWANG_WORLD_COIN> │ +│ │ Version: 103342233 │ +│ │ Digest: FkjVckYfX24HmSe4RW8Awc2ahZdtUG9qWScgsZ1JqvMZ │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x8035f82c7d326f562bec2d94282bea374ff95763733632d57a7d8d3d65ee1246 │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa::HuiWang_World_Faucet_Coin::HUIWANG_WORLD_FAUCET_COIN> │ +│ │ Version: 103342233 │ +│ │ Digest: GaaPW67rczbtrHPjocPU7rCwgG6n8SKqQoG8ZKCrd8f8 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x935063ab9c196e1936cb4372739184490761aa680c5f9c11beb12cd1714e2aba │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa::HuiWang_World_Faucet_Coin::HUIWANG_WORLD_FAUCET_COIN> │ +│ │ Version: 103342233 │ +│ │ Digest: 5BwrHDnZpVwm81dGeVdKcaAv2Q5KpYXbmA17Lm3427qa │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xfe8d1b1d7bbc7d42350764b64e79450765082effd5ca9e9942c5fb1b7fba9b23 │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 103342233 │ +│ │ Digest: GxAGtkYF4KjNR9hFY5ikGwRxPTnCnDSNhQpx8kBJXo3S │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 103342233 │ +│ │ Digest: F1wgrR3GoS5JsVGCbJ21pqXLzNGDLtkWEjtuyhe4s4DG │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa │ +│ │ Version: 1 │ +│ │ Digest: C8za7bjmPTMxKgtq5ZDwDyh3SjZVG5sfQvLdBTG3jgVm │ +│ │ Modules: HuiWang_World_Coin, HuiWang_World_Faucet_Coin │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -29063280 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` + + +- 使用水龙头产生gas +```shell + sui client call \ + --package 0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa \ + --module HuiWang_World_Faucet_Coin \ + --function mint \ + --args 0x935063ab9c196e1936cb4372739184490761aa680c5f9c11beb12cd1714e2aba 100000000000 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 + +``` + + +- 执行 shell 结果 +```shell +Transaction Digest: G32Rz8CrZMyv8umGg5c2hpCYjAT4vcPnqFj5pFWUnRcZ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ Gas Owner: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 751 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Version: 103342233 │ +│ │ Digest: F1wgrR3GoS5JsVGCbJ21pqXLzNGDLtkWEjtuyhe4s4DG │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x935063ab9c196e1936cb4372739184490761aa680c5f9c11beb12cd1714e2aba │ │ +│ │ 1 Pure Arg: Type: u64, Value: "100000000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: HuiWang_World_Faucet_Coin │ │ +│ │ │ Package: 0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ bAuUrv/O1Ucdt4O7pRnfsvUAvCuOUeyR6aoiwnZ4tBX6ZaWkQNoyS4PkI4b6Jpei9hO8e6KkK+X6XLcdwb49BQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: G32Rz8CrZMyv8umGg5c2hpCYjAT4vcPnqFj5pFWUnRcZ │ +│ Status: Success │ +│ Executed Epoch: 438 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xadafcbf42e98a159fe2d5fa093237cbb52654cb76312b8999d5d58be09358090 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342234 │ +│ │ Digest: tGdCqHUEoDUDUrbY1ms4GCWjWcuRC9nxLPeC4P1vs49 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342234 │ +│ │ Digest: HnwZQ9FbkdwreaxtSVnUSsoqb4uEPHA9Bsvdt91jg3jC │ +│ └── │ +│ ┌── │ +│ │ ID: 0x935063ab9c196e1936cb4372739184490761aa680c5f9c11beb12cd1714e2aba │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342234 │ +│ │ Digest: 57DrSuPMUhKg5SMk364NWgi8qTTaJUcMy6EeFTRN32xz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342234 │ +│ │ Digest: HnwZQ9FbkdwreaxtSVnUSsoqb4uEPHA9Bsvdt91jg3jC │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4651200 MIST │ +│ Computation Cost: 751000 MIST │ +│ Storage Rebate: 2979504 MIST │ +│ Non-refundable Storage Fee: 30096 MIST │ +│ │ +│ Transaction Dependencies: │ +│ EgV4yWVJkAPVFAPqQciYk1bsAuJK6AsQ7LWAimVBUWHY │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xadafcbf42e98a159fe2d5fa093237cbb52654cb76312b8999d5d58be09358090 │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa::HuiWang_World_Faucet_Coin::HUIWANG_WORLD_FAUCET_COIN> │ +│ │ Version: 103342234 │ +│ │ Digest: tGdCqHUEoDUDUrbY1ms4GCWjWcuRC9nxLPeC4P1vs49 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 103342234 │ +│ │ Digest: HnwZQ9FbkdwreaxtSVnUSsoqb4uEPHA9Bsvdt91jg3jC │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x935063ab9c196e1936cb4372739184490761aa680c5f9c11beb12cd1714e2aba │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa::HuiWang_World_Faucet_Coin::HUIWANG_WORLD_FAUCET_COIN> │ +│ │ Version: 103342234 │ +│ │ Digest: 57DrSuPMUhKg5SMk364NWgi8qTTaJUcMy6EeFTRN32xz │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2422696 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ CoinType: 0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa::HuiWang_World_Faucet_Coin::HUIWANG_WORLD_FAUCET_COIN │ +│ │ Amount: 100000000000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ + +``` + +```shell +##### 铸造 COIN(HUIWANG_WORLD_COIN) + sui client call \ + --package 0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa \ + --module HuiWang_World_Coin \ + --function mint \ + --args 0x5319118d1631af0bfc29f4ac20dbf525b0a9820f29ebe2b870fdf1e6e6f3ae89 100000000000 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 +``` +- 执行 shell 结果 +```shell +Transaction Digest: 9NnB6gsajeued5PSnJaYWQPQyhKvV1yQ4TadJ8LSuobV +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ Gas Owner: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 751 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Version: 103342234 │ +│ │ Digest: HnwZQ9FbkdwreaxtSVnUSsoqb4uEPHA9Bsvdt91jg3jC │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x5319118d1631af0bfc29f4ac20dbf525b0a9820f29ebe2b870fdf1e6e6f3ae89 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "100000000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: HuiWang_World_Coin │ │ +│ │ │ Package: 0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ KwkxmUYkFZlvk0xLAV0Gt4QAx5Wj37uJycDh7ptPYWdEMr8teIiZj29GfJEXgQmxMOOLZPGJMnkbjPAkcF07CQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 9NnB6gsajeued5PSnJaYWQPQyhKvV1yQ4TadJ8LSuobV │ +│ Status: Success │ +│ Executed Epoch: 438 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x28b4d96ea9207232bf7968030db3d984189e731829b4c22887d87b257c9789d0 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342235 │ +│ │ Digest: EvP8QKiEELo2ZADAGRm2MiRHKxqAmVTGKSAPFXCxhFC │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x5319118d1631af0bfc29f4ac20dbf525b0a9820f29ebe2b870fdf1e6e6f3ae89 │ +│ │ Owner: Shared( 103342233 ) │ +│ │ Version: 103342235 │ +│ │ Digest: DU8bzE6bucNXZvdgn7YgoJsEfAn7qmcDPS1bupLGctUa │ +│ └── │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342235 │ +│ │ Digest: G7pz33RnKiNRCn8615kjjLcsx96EQzvFDcEZGNRrauQ8 │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x5319118d1631af0bfc29f4ac20dbf525b0a9820f29ebe2b870fdf1e6e6f3ae89 │ +│ │ Version: 103342233 │ +│ │ Digest: FkjVckYfX24HmSe4RW8Awc2ahZdtUG9qWScgsZ1JqvMZ │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342235 │ +│ │ Digest: G7pz33RnKiNRCn8615kjjLcsx96EQzvFDcEZGNRrauQ8 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4438400 MIST │ +│ Computation Cost: 751000 MIST │ +│ Storage Rebate: 2874168 MIST │ +│ Non-refundable Storage Fee: 29032 MIST │ +│ │ +│ Transaction Dependencies: │ +│ EgV4yWVJkAPVFAPqQciYk1bsAuJK6AsQ7LWAimVBUWHY │ +│ G32Rz8CrZMyv8umGg5c2hpCYjAT4vcPnqFj5pFWUnRcZ │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x28b4d96ea9207232bf7968030db3d984189e731829b4c22887d87b257c9789d0 │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa::HuiWang_World_Coin::HUIWANG_WORLD_COIN> │ +│ │ Version: 103342235 │ +│ │ Digest: EvP8QKiEELo2ZADAGRm2MiRHKxqAmVTGKSAPFXCxhFC │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x5319118d1631af0bfc29f4ac20dbf525b0a9820f29ebe2b870fdf1e6e6f3ae89 │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Shared( 103342233 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa::HuiWang_World_Coin::HUIWANG_WORLD_COIN> │ +│ │ Version: 103342235 │ +│ │ Digest: DU8bzE6bucNXZvdgn7YgoJsEfAn7qmcDPS1bupLGctUa │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 103342235 │ +│ │ Digest: G7pz33RnKiNRCn8615kjjLcsx96EQzvFDcEZGNRrauQ8 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2315232 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ CoinType: 0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa::HuiWang_World_Coin::HUIWANG_WORLD_COIN │ +│ │ Amount: 100000000000 │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ + +``` + +- 查看铸币结果 https://suivision.xyz/account/0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 + +- 给任务地址发送mycoin +```shell +## --object-id 0x28b4d96ea9207232bf7968030db3d984189e731829b4c22887d87b257c9789d0 铸成币的币地址 ObjectID: 0x28b4d96ea9207232bf7968030db3d984189e731829b4c22887d87b257c9789d0 +## --to 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 接受者钱包地址 +sui client transfer --gas-budget 10000000 \ + --object-id 0x28b4d96ea9207232bf7968030db3d984189e731829b4c22887d87b257c9789d0 \ + --to 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 +``` +- shell 结果 +```shell +Transaction Digest: EXNu2hebvcsuTpnh5Higoi4BBiWy6BZ1hKJ4jKYiH2rD +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ Gas Owner: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 751 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Version: 103342235 │ +│ │ Digest: G7pz33RnKiNRCn8615kjjLcsx96EQzvFDcEZGNRrauQ8 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" │ │ +│ │ 1 Imm/Owned Object ID: 0x28b4d96ea9207232bf7968030db3d984189e731829b4c22887d87b257c9789d0 │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────┤ │ +│ │ 0 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 1 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰──────────────────────╯ │ +│ │ +│ Signatures: │ +│ BQ/tkQKlcvrP95v4OwC1jFIaXe6q5+WaIJz7Ao83MTcjLZp2fzIF7g98hwYHXUHHsRZEMQU2jAlwjb3vv6v5BA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: EXNu2hebvcsuTpnh5Higoi4BBiWy6BZ1hKJ4jKYiH2rD │ +│ Status: Success │ +│ Executed Epoch: 438 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x28b4d96ea9207232bf7968030db3d984189e731829b4c22887d87b257c9789d0 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ Version: 103342236 │ +│ │ Digest: DpALUDpBYryQR2yKJrEf2zYuHbC7B4DRmvu7qCoYDGx3 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342236 │ +│ │ Digest: DZomESnvHDyYzDKrPAjPCVAYhSKDyZWnkT61BJ2Jm7v3 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342236 │ +│ │ Digest: DZomESnvHDyYzDKrPAjPCVAYhSKDyZWnkT61BJ2Jm7v3 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2523200 MIST │ +│ Computation Cost: 751000 MIST │ +│ Storage Rebate: 2497968 MIST │ +│ Non-refundable Storage Fee: 25232 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 9NnB6gsajeued5PSnJaYWQPQyhKvV1yQ4TadJ8LSuobV │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x28b4d96ea9207232bf7968030db3d984189e731829b4c22887d87b257c9789d0 │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa::HuiWang_World_Coin::HUIWANG_WORLD_COIN> │ +│ │ Version: 103342236 │ +│ │ Digest: DpALUDpBYryQR2yKJrEf2zYuHbC7B4DRmvu7qCoYDGx3 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 103342236 │ +│ │ Digest: DZomESnvHDyYzDKrPAjPCVAYhSKDyZWnkT61BJ2Jm7v3 │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -776232 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ CoinType: 0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa::HuiWang_World_Coin::HUIWANG_WORLD_COIN │ +│ │ Amount: -100000000000 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ CoinType: 0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa::HuiWang_World_Coin::HUIWANG_WORLD_COIN │ +│ │ Amount: 100000000000 │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ + +``` +--- task end--- diff --git a/mover/HuiWang-World/notes/task2-testnet.md b/mover/HuiWang-World/notes/task2-testnet.md new file mode 100644 index 000000000..417bbf0e8 --- /dev/null +++ b/mover/HuiWang-World/notes/task2-testnet.md @@ -0,0 +1,671 @@ +--- 任务要求 begin--- + +# 完成两个Coin合约的上链部署 + +- 上链网络: mainnet + +## 需求 + +- 完成 Coin相关知识的学习 +- 完成 `My Coin` 的学习并部署主网 +- 完成 `Faucet Coin` 的学习并部署主网 +- 提交 `My Coin` 和 `Faucet Coin` 合约发布 `package id` +- 发送 `My Coin` 给地址 `0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2` +- `Faucet Coin` 需要至少用两个地址mint + +# 学习要点 + +1. 理解Coin协议 创建Coin +2. 理解独享所有权和共享所有权的区别 +3. 对共享所有权保持敬畏 因为权限被共享了 + +public_transfer 独享 mint权限 +public_share_object 共享 mint权限 + +## 任务指南 + +- `Faucet Coin` 就是任意人都可以mint的Coin +- `My Coin` 只能指定地址mint + +--- 任务要求 end--- + +--- task begin--- + +# task 任务 + +### 创建项目 + +```shell +# 创建项目 +sui move new hello_world +``` + +### 编写代码 + +- 完成 HuiWang_World_Coin.move 与 HuiWang_World_Faucet_Coin.move 两个文件的代码 +- 发布到测试网 + +```shell +sui client publish +``` + +- 执行结果 + +```shell +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ Gas Owner: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Version: 715915 │ +│ │ Digest: 9jb34xKQHpvjeQFRufgD2T7wsqw9yqkECH7sXw5Nn99Y │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ c7SfuOtqiaKOJp6klvBNaL938e1BGNEYockrO0WRPMcTfjWxoX2NduBDJtv3lDNB1eWMQZrx8EHr9ZfZPI8+Dw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 6r1VEpN5kjXnzXejJKgXueBbm9aXw4VN1VQBFKtSij6x │ +│ Status: Success │ +│ Executed Epoch: 409 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x0302099070afd1e69fb2711334a0f83f41f0fcb04d8cb328ca5266b610a4e200 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715916 │ +│ │ Digest: 6hhfoZ9QZswrW7rcrDPvZ2VSdmEpNqbgdhiWaSGF8z6p │ +│ └── │ +│ ┌── │ +│ │ ID: 0x316fe348d1d1d15b069bf4fb7db836a35b4cff2a1d49d2b1a4b19bc6bf03acfc │ +│ │ Owner: Immutable │ +│ │ Version: 715916 │ +│ │ Digest: 4442xBSXU3Jwsh5efiwdpCYbp728xAPXA2yH2B92G9JR │ +│ └── │ +│ ┌── │ +│ │ ID: 0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 2PtZaS9kQqopvbM5KFE4PBrZ3V99JX45qi4gGAKhANcL │ +│ └── │ +│ ┌── │ +│ │ ID: 0x6c47430aaaa568c8781342bddb240cbe8b97674b2a76872e5d67f2525fcb0107 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715916 │ +│ │ Digest: HER2yiBW2mi6gLK2cp9Gw67JJfX2u61DbF8gzP6ZYGwF │ +│ └── │ +│ ┌── │ +│ │ ID: 0x8ee0efcfee02f6e5ceefbf6a263b1e9f0c9c5288924b4a36866e44cbff6810f3 │ +│ │ Owner: Shared( 715916 ) │ +│ │ Version: 715916 │ +│ │ Digest: HJ8FBFfyGCCFdMh91H7EVL32bmrt2uJFNEwDtuVPuf64 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xdc89f6439ff0e85de624d2ffebfe2db22844d8ece4ff3c84b63af158aacdc352 │ +│ │ Owner: Immutable │ +│ │ Version: 715916 │ +│ │ Digest: CsSdFkVeiy2NKDsKdxDEysGVNDgYny84YyFijYovmc97 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715916 │ +│ │ Digest: 2hET3Ff623tPvjJkRn4hhLTCvCmY5RxCQwv2Rk4Qbgas │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715916 │ +│ │ Digest: 2hET3Ff623tPvjJkRn4hhLTCvCmY5RxCQwv2Rk4Qbgas │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 29290400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ G79jGopiLJRbrCLAf5K3cjEibACwgmRVysaNmbhLdwMt │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0302099070afd1e69fb2711334a0f83f41f0fcb04d8cb328ca5266b610a4e200 │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 715916 │ +│ │ Digest: 6hhfoZ9QZswrW7rcrDPvZ2VSdmEpNqbgdhiWaSGF8z6p │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x316fe348d1d1d15b069bf4fb7db836a35b4cff2a1d49d2b1a4b19bc6bf03acfc │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721::HuiWang_World_Faucet_Coin::HUIWANG_WORLD_FAUCET_COIN> │ +│ │ Version: 715916 │ +│ │ Digest: 4442xBSXU3Jwsh5efiwdpCYbp728xAPXA2yH2B92G9JR │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x6c47430aaaa568c8781342bddb240cbe8b97674b2a76872e5d67f2525fcb0107 │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721::HuiWang_World_Faucet_Coin::HUIWANG_WORLD_FAUCET_COIN> │ +│ │ Version: 715916 │ +│ │ Digest: HER2yiBW2mi6gLK2cp9Gw67JJfX2u61DbF8gzP6ZYGwF │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x8ee0efcfee02f6e5ceefbf6a263b1e9f0c9c5288924b4a36866e44cbff6810f3 │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Shared( 715916 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721::HuiWang_World_Coin::HUIWANG_WORLD_COIN> │ +│ │ Version: 715916 │ +│ │ Digest: HJ8FBFfyGCCFdMh91H7EVL32bmrt2uJFNEwDtuVPuf64 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xdc89f6439ff0e85de624d2ffebfe2db22844d8ece4ff3c84b63af158aacdc352 │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721::HuiWang_World_Coin::HUIWANG_WORLD_COIN> │ +│ │ Version: 715916 │ +│ │ Digest: CsSdFkVeiy2NKDsKdxDEysGVNDgYny84YyFijYovmc97 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 715916 │ +│ │ Digest: 2hET3Ff623tPvjJkRn4hhLTCvCmY5RxCQwv2Rk4Qbgas │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721 │ +│ │ Version: 1 │ +│ │ Digest: 2PtZaS9kQqopvbM5KFE4PBrZ3V99JX45qi4gGAKhANcL │ +│ │ Modules: HuiWang_World_Coin, HuiWang_World_Faucet_Coin │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -29312280 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` + +- 修改 publish-at="" 和 hello_world 地址为 PackageID: 0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721 + │ + 如: + +```toml +publish-at = "0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721" +[addresses] +hello_world = "0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721" +``` + +- 使用水龙头产生gas + +```shell +##### 水龙头(HUIWANG_WORLD_FAUCET_COIN) +# --package 0x2 \ 中的 0x2 为标准库地址 +# --module coin \ 中的 coin 为官方coin模块 +# --function mint_and_transfer \ 中的 mint_and_transfer 为调用方法 +# --type-args 实际为注入泛型 数据来自 "ObjectType: 0x2::coin::TreasuryCap<0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721::HuiWang_World_Faucet_Coin::HUIWANG_WORLD_FAUCET_COIN>" +# --type-args '0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721::HuiWang_World_Faucet_Coin::HUIWANG_WORLD_FAUCET_COIN' \ +# --args 0x6c47430aaaa568c8781342bddb240cbe8b97674b2a76872e5d67f2525fcb0107 100000000000 0xff71ff2dfa9f5ba0176fb40fdda9d13d738ec97143b46bdfa1addc09e2263b02 +# args 参数解释 0x6c47430aaaa568c8781342bddb240cbe8b97674b2a76872e5d67f2525fcb0107 为 铸币权限 数据来自 "ObjectID: 0x6c47430aaaa568c8781342bddb240cbe8b97674b2a76872e5d67f2525fcb0107" , 带 TreasuryCap 的objID +# args 参数解释 100000000000 为 为需要铸造多个币 可随便填,尽量多写点 +# args 参数解释 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 为 钱包地址 铸造的币下发到那个钱包,0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 为我本地测试环境的地址 +# 钱包地址不知道的可以使用 `sui client addresses` 获取 + + sui client call \ + --package 0x2 \ + --module coin \ + --function mint_and_transfer \ + --type-args '0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721::HuiWang_World_Faucet_Coin::HUIWANG_WORLD_FAUCET_COIN' \ + --args 0x6c47430aaaa568c8781342bddb240cbe8b97674b2a76872e5d67f2525fcb0107 100000000000 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 + +``` + +- 执行上面shell脚本发现有警告提示不能执行,需要升级版本 + +```shell +[warn] Client/Server api version mismatch, client api version : 1.27.0, server api version : 1.27.2 +``` + +install-doc 文档中有如何安装或升级,这里不再赘述 + +- 执行 shell 结果 + +```shell +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ Gas Owner: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Version: 715916 │ +│ │ Digest: 2hET3Ff623tPvjJkRn4hhLTCvCmY5RxCQwv2Rk4Qbgas │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x6c47430aaaa568c8781342bddb240cbe8b97674b2a76872e5d67f2525fcb0107 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "100000000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint_and_transfer │ │ +│ │ │ Module: coin │ │ +│ │ │ Package: 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ │ Type Arguments: │ │ +│ │ │ 0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721::HuiWang_World_Faucet_Coin::HUIWANG_WORLD_FAUCET_COIN │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ DXY8x448UY6iL3ItT9i5fwo4lRHammxo780aG2pFIP/mk9SLiOekmVAUjktaBjBvRmeOvEQuN0PuvXu7jN8HCw== │ +│ │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: gXkQVadtcT9VT3wWMkJd1L1gzZnAyhzvbCDDeuq4Vtm │ +│ Status: Success │ +│ Executed Epoch: 409 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x37a87856b9a4b276470719a0497cfb5d0532d75a04a13502393152cc8bf424c3 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715917 │ +│ │ Digest: 4tt42dWdKTjtaB9cLocGy9bp2dgoHoSSm6er4UrcHmwB │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715917 │ +│ │ Digest: 6W61gcmiCCQcbbesSQEHP1uRny4ao474affSUccbaesR │ +│ └── │ +│ ┌── │ +│ │ ID: 0x6c47430aaaa568c8781342bddb240cbe8b97674b2a76872e5d67f2525fcb0107 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715917 │ +│ │ Digest: ANGUMnjz4x9U9AGKaSdoUafhqdtQ9rjqpx8vA2Fxa5Nx │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715917 │ +│ │ Digest: 6W61gcmiCCQcbbesSQEHP1uRny4ao474affSUccbaesR │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4651200 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2979504 MIST │ +│ Non-refundable Storage Fee: 30096 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 6r1VEpN5kjXnzXejJKgXueBbm9aXw4VN1VQBFKtSij6x │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37a87856b9a4b276470719a0497cfb5d0532d75a04a13502393152cc8bf424c3 │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721::HuiWang_World_Faucet_Coin::HUIWANG_WORLD_FAUCET_COIN> │ +│ │ Version: 715917 │ +│ │ Digest: 4tt42dWdKTjtaB9cLocGy9bp2dgoHoSSm6er4UrcHmwB │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 715917 │ +│ │ Digest: 6W61gcmiCCQcbbesSQEHP1uRny4ao474affSUccbaesR │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x6c47430aaaa568c8781342bddb240cbe8b97674b2a76872e5d67f2525fcb0107 │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721::HuiWang_World_Faucet_Coin::HUIWANG_WORLD_FAUCET_COIN> │ +│ │ Version: 715917 │ +│ │ Digest: ANGUMnjz4x9U9AGKaSdoUafhqdtQ9rjqpx8vA2Fxa5Nx │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2671696 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ CoinType: 0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721::HuiWang_World_Faucet_Coin::HUIWANG_WORLD_FAUCET_COIN │ +│ │ Amount: 100000000000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ + +``` + +```shell +##### 铸造 COIN(HUIWANG_WORLD_COIN) + #--args 0x8ee0efcfee02f6e5ceefbf6a263b1e9f0c9c5288924b4a36866e44cbff6810f3 100000000000 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 + # 铸币权限TreasuryCap的objID/铸币数量/铸出来的币下发到那个钱包 + # --package packageID + # --module 包名 + # --function 方法名称 + sui client call \ + --package 0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721 \ + --module HuiWang_World_Coin \ + --function mint \ + --args 0x8ee0efcfee02f6e5ceefbf6a263b1e9f0c9c5288924b4a36866e44cbff6810f3 100000000000 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 + +``` + +- 执行 shell 结果 + +```shell +Transaction Digest: GZNZBDuSoWrS7sEix79iaam9hDMoNjq8idfZEdkF79wr +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ Gas Owner: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Version: 715920 │ +│ │ Digest: AoJVxkf8uNrVkYCRRap8P5yvpg2GwVLW33V9228423T2 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x8ee0efcfee02f6e5ceefbf6a263b1e9f0c9c5288924b4a36866e44cbff6810f3 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "100000000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: HuiWang_World_Coin │ │ +│ │ │ Package: 0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ hCPsEO2og6uLktU8Ox9yEwMQRtTwnbj0KmQk02mZSJfmECWwQR1z65ACvDhSCd5bc7ID3iMildkE83nBRHiiAw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: GZNZBDuSoWrS7sEix79iaam9hDMoNjq8idfZEdkF79wr │ +│ Status: Success │ +│ Executed Epoch: 410 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x46362edb4ddbe05f0e834cb74cfe6c0ad8be087adfa5a5e562fc42ad73899307 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715921 │ +│ │ Digest: 5LyYnFWjEtXrw3pQTXepBV5yPP2efk4Shuz6NyWQKsQi │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715921 │ +│ │ Digest: dWfoK4NsbnHFfZcMMqdXr7CxFv8kfqEM1VEQRe8yp1v │ +│ └── │ +│ ┌── │ +│ │ ID: 0x8ee0efcfee02f6e5ceefbf6a263b1e9f0c9c5288924b4a36866e44cbff6810f3 │ +│ │ Owner: Shared( 715916 ) │ +│ │ Version: 715921 │ +│ │ Digest: Cr1JoJbskipQ7uU7BqtyvTQ84A8zkvWoHf8xC3MYy1Nb │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x8ee0efcfee02f6e5ceefbf6a263b1e9f0c9c5288924b4a36866e44cbff6810f3 │ +│ │ Version: 715916 │ +│ │ Digest: HJ8FBFfyGCCFdMh91H7EVL32bmrt2uJFNEwDtuVPuf64 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715921 │ +│ │ Digest: dWfoK4NsbnHFfZcMMqdXr7CxFv8kfqEM1VEQRe8yp1v │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4438400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2874168 MIST │ +│ Non-refundable Storage Fee: 29032 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 6r1VEpN5kjXnzXejJKgXueBbm9aXw4VN1VQBFKtSij6x │ +│ Fs2zTdVLhbYhvymGHrZAQgBTrwVPYeLNDaFR21gr9zBF │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x46362edb4ddbe05f0e834cb74cfe6c0ad8be087adfa5a5e562fc42ad73899307 │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721::HuiWang_World_Coin::HUIWANG_WORLD_COIN> │ +│ │ Version: 715921 │ +│ │ Digest: 5LyYnFWjEtXrw3pQTXepBV5yPP2efk4Shuz6NyWQKsQi │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 715921 │ +│ │ Digest: dWfoK4NsbnHFfZcMMqdXr7CxFv8kfqEM1VEQRe8yp1v │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x8ee0efcfee02f6e5ceefbf6a263b1e9f0c9c5288924b4a36866e44cbff6810f3 │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Shared( 715916 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721::HuiWang_World_Coin::HUIWANG_WORLD_COIN> │ +│ │ Version: 715921 │ +│ │ Digest: Cr1JoJbskipQ7uU7BqtyvTQ84A8zkvWoHf8xC3MYy1Nb │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2564232 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ CoinType: 0x39fe998f1a01ea7df4e297e98aff13be5e3ec100d350cbb7f42077bc05e3a721::HuiWang_World_Coin::HUIWANG_WORLD_COIN │ +│ │ Amount: 100000000000 │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ + +``` + +- 查看铸币结果 https://testnet.suivision.xyz/account/0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 + +--- task end--- + +# 其他笔记 + +### 关键字 语法 + +```sui move +module hello_word::hello_word { + //mut 关键字,加了mut表示后续可能会对其作出改变 + //如: + fun a() { + let mut testNumber: u8 = 1; + testNumber = 2; + } + + // has 关键字 用法 + // copy - 被修饰的值可以被复制。 + // drop - 被修饰的值在作用域结束时可以被丢弃。 + // key - 被修饰的值可以作为键值对全局状态进行访问。 + // store - 被修饰的值可以被存储到其他结构体 + public struct Dog has copy, key, store, drop, {} + + // 程序终止 + // abort 0 + + // 异常 不满足条件则报错 + // assert!(num > 10, ErrMustGet10); +} +``` + +### 方法签名 + +| 方法签名 | 使用范围 | 返回值 | +|------------------------------|------------------|-----| +| `fun call()` | 只能模块内部调用 | 可以有 | +| `public fun call()` | 全部合约能调用 | 可以有 | +| `public entry fun call()` | 全部合约Dapp(RPC)能调用 | 无 | +| `entry fun call()` | 只能Dapp(RPC)调用 | 无 | +| `public(package) fun call()` | 只能指定模块能调用 | 可以有 | + +### init 方法定义 与 witness 泛型 + +```sui move +module hello_world::HuiWang_World_Coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Url, Self}; + + /// 定义结构体 + public struct HUIWANG_WORLD_COIN has drop {} + + // init 方法定义只有两种形式 初始化方法 合约在部署的的时候会进行初始化 + // 第一种 + // fun init(ctx: &mut TxContext){} + // 第二种 + fun init(witness: HUIWANG_WORLD_COIN, ctx: &mut TxContext) {} + + + // phantom 表示结构体内可以不强制使用泛型 + public struct Coin has key, store { + id: UID, + balance: Balance + } +} +``` + +### 方法权限 + +```text +fun f(consume:T,write:&mut T,read:&T) +T : transfer,delete,write,read +&mut T:write,read +& T: read +``` + +### 所有权方法 + +| 方法 | 生成的方法 | 属性 | 解释 | +|------------------------|---------|-----------|----------------------------------------------------------------------------| +| `transfer` | 独享对象 | key | 把对象所有权到某个地址 | +| `public_transfer` | 独享对象 | key+store | 把对象所有权到某个地址,带store表示可以存储到其他结构体 | +| `freeze_object` | 共享对象-常量 | key | 将给定对象转换为可变共享对象(常量)只能读取不能修改 | +| `public_freeze_object` | 共享对象-常量 | key+store | 将给定对象转换为可变共享对象(常量)只能读取不能修改,每个人都可以访问和改变该对象,带store表示可以存储到其他结构体 | +| `share_object` | 共享对象 | key | 将给定对象转换为可变共享对象,每个人都可以访问和改变该对象,共享对象没有所有者,因为共享对象每个人可以可以读写 | +| `public_share_object` | 共享对象 | key+store | 将给定对象转换为可变共享对象,每个人都可以访问和改变该对象,共享对象没有所有者,因为共享对象每个人可以可以读写,带store表示可以存储到其他结构体 | diff --git a/mover/HuiWang-World/notes/task3-mainnet.md b/mover/HuiWang-World/notes/task3-mainnet.md new file mode 100644 index 000000000..29cbca6dc --- /dev/null +++ b/mover/HuiWang-World/notes/task3-mainnet.md @@ -0,0 +1,592 @@ +--- 任务要求 begin--- + +# 完成NFT的上链部署 + +- 上链网络: 主网(mainnet) + +## 需求 + +- 完成 NFT相关知识的学习 +- 完成可以mint NFT的合约上链 +- 给自己地址mint一个NFT +- NFT必须是自己 github 的头像作为图片 +- mint 一个 nft 发送到地址: `0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2` +- 提交mint到自己地址的浏览器查看(Scan)截图 + +## 任务指南 + +--- 任务要求 end--- + +--- task begin--- + +- 编写合约代码 HUIWANG_WORLD_NFT.move +- 发布合约 + +```shell +sui client publish +``` + +- 执行结果 + +```shell +Transaction Digest: F59xnVn61s9SJdbupqBmSyjhpuhgTPwYFJWhwu1nozKX +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ Gas Owner: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 752 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Version: 103342236 │ +│ │ Digest: DZomESnvHDyYzDKrPAjPCVAYhSKDyZWnkT61BJ2Jm7v3 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ NueHbP7H5w8oyuEaBFxA6aTS1gWfcZ5tL/UOv2kE4kbvlMa5G0HvciPQ2T/sAo2/Jc36ppXLG4zy0vrzPVDjBg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: F59xnVn61s9SJdbupqBmSyjhpuhgTPwYFJWhwu1nozKX │ +│ Status: Success │ +│ Executed Epoch: 439 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x0c09dd9c8e250ddda64af01fc7840ce0959c9d12b26c563d87daef181f74682a │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342237 │ +│ │ Digest: 4BpWPU1wGJ42tLch3Bz8KJLKCXry52M9u7HkvsEQbxip │ +│ └── │ +│ ┌── │ +│ │ ID: 0x86d6ce549ab6c547a37f55b04d255b192924d410c425fe2c65be13e72cec9409 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342237 │ +│ │ Digest: 9z9AEC8ZejsWaMMT7Q7cH4M6Q3MoTi1XuC4SEDcsgNjr │ +│ └── │ +│ ┌── │ +│ │ ID: 0xb20685c739bfe12eff994044e34d7eab91cc04e2d84f8455e03f4d748591bfee │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 6oco8gtx7bYyHzjAfycCxmJw9o1hDh4c8oSp3bBqZX1P │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342237 │ +│ │ Digest: C97Zux7MCQS2A4aNJx9BtWuwi33ntUWanUb6bDTf8kDY │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342237 │ +│ │ Digest: C97Zux7MCQS2A4aNJx9BtWuwi33ntUWanUb6bDTf8kDY │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 11164400 MIST │ +│ Computation Cost: 752000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ EXNu2hebvcsuTpnh5Higoi4BBiWy6BZ1hKJ4jKYiH2rD │ +│ EY8ZaDkjhyBXX8iu9HXPQWznBp4QUcpAaTuwXSheDVuq │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0c09dd9c8e250ddda64af01fc7840ce0959c9d12b26c563d87daef181f74682a │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0xb20685c739bfe12eff994044e34d7eab91cc04e2d84f8455e03f4d748591bfee::HUIWANG_WORLD_NFT::AdminCap │ +│ │ Version: 103342237 │ +│ │ Digest: 4BpWPU1wGJ42tLch3Bz8KJLKCXry52M9u7HkvsEQbxip │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x86d6ce549ab6c547a37f55b04d255b192924d410c425fe2c65be13e72cec9409 │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 103342237 │ +│ │ Digest: 9z9AEC8ZejsWaMMT7Q7cH4M6Q3MoTi1XuC4SEDcsgNjr │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 103342237 │ +│ │ Digest: C97Zux7MCQS2A4aNJx9BtWuwi33ntUWanUb6bDTf8kDY │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xb20685c739bfe12eff994044e34d7eab91cc04e2d84f8455e03f4d748591bfee │ +│ │ Version: 1 │ +│ │ Digest: 6oco8gtx7bYyHzjAfycCxmJw9o1hDh4c8oSp3bBqZX1P │ +│ │ Modules: HUIWANG_WORLD_NFT │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -10938280 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + +``` + +- 调用合约 + +```shell + sui client call \ + --package 0xb20685c739bfe12eff994044e34d7eab91cc04e2d84f8455e03f4d748591bfee \ + --module HUIWANG_WORLD_NFT \ + --function mint \ + --args 0x0c09dd9c8e250ddda64af01fc7840ce0959c9d12b26c563d87daef181f74682a "HuiWang-World" "HuiWang-World-NFT" "https://avatars.githubusercontent.com/HuiWang-World" + +``` + +- 执行结果 + +```shell +Transaction Digest: HcomP6P9Y6bLnc3FBMGc4XifEHm9eZZrYaUdwS9LaQmX +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ Gas Owner: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 752 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Version: 103342237 │ +│ │ Digest: C97Zux7MCQS2A4aNJx9BtWuwi33ntUWanUb6bDTf8kDY │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x0c09dd9c8e250ddda64af01fc7840ce0959c9d12b26c563d87daef181f74682a │ │ +│ │ 1 Pure Arg: Type: vector, Value: "HuiWang-World" │ │ +│ │ 2 Pure Arg: Type: vector, Value: "HuiWang-World-NFT" │ │ +│ │ 3 Pure Arg: Type: vector, Value: "https://avatars.githubusercontent.com/HuiWang-World" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: HUIWANG_WORLD_NFT │ │ +│ │ │ Package: 0xb20685c739bfe12eff994044e34d7eab91cc04e2d84f8455e03f4d748591bfee │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ │ Input 3 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ gJZSyBLbbFTHpafidyQpzGeirH7iUrBJdcSE9lR/1aCEbtW1efICgxFntnDa5oPzxShIP5OCUSmuFYAT1DyiDg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: HcomP6P9Y6bLnc3FBMGc4XifEHm9eZZrYaUdwS9LaQmX │ +│ Status: Success │ +│ Executed Epoch: 439 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x64a2965dd101bc739b315cf09283ff2bca7255fce0f68311088c4a61e51fe42f │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342238 │ +│ │ Digest: GHLw1BXeTVE1W1qme4NCcgEtNhsAaH1LqCf7jXdQEe4q │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0c09dd9c8e250ddda64af01fc7840ce0959c9d12b26c563d87daef181f74682a │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342238 │ +│ │ Digest: UZ9EkgMV6wdnHvVNsuuK1ZX8YpNXyV1x7t1g7V1j9bi │ +│ └── │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342238 │ +│ │ Digest: 8vxKvhzmBN6XKLgXX3x2A3ztJAQ7wfHMwSoLsTmWXhBj │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342238 │ +│ │ Digest: 8vxKvhzmBN6XKLgXX3x2A3ztJAQ7wfHMwSoLsTmWXhBj │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4354800 MIST │ +│ Computation Cost: 752000 MIST │ +│ Storage Rebate: 2347488 MIST │ +│ Non-refundable Storage Fee: 23712 MIST │ +│ │ +│ Transaction Dependencies: │ +│ F59xnVn61s9SJdbupqBmSyjhpuhgTPwYFJWhwu1nozKX │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x64a2965dd101bc739b315cf09283ff2bca7255fce0f68311088c4a61e51fe42f │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0xb20685c739bfe12eff994044e34d7eab91cc04e2d84f8455e03f4d748591bfee::HUIWANG_WORLD_NFT::NFT │ +│ │ Version: 103342238 │ +│ │ Digest: GHLw1BXeTVE1W1qme4NCcgEtNhsAaH1LqCf7jXdQEe4q │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0c09dd9c8e250ddda64af01fc7840ce0959c9d12b26c563d87daef181f74682a │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0xb20685c739bfe12eff994044e34d7eab91cc04e2d84f8455e03f4d748591bfee::HUIWANG_WORLD_NFT::AdminCap │ +│ │ Version: 103342238 │ +│ │ Digest: UZ9EkgMV6wdnHvVNsuuK1ZX8YpNXyV1x7t1g7V1j9bi │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 103342238 │ +│ │ Digest: 8vxKvhzmBN6XKLgXX3x2A3ztJAQ7wfHMwSoLsTmWXhBj │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2759312 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` + +- 调用合约 生成转发给任务地址的nft + +```shell + sui client call \ + --package 0xb20685c739bfe12eff994044e34d7eab91cc04e2d84f8455e03f4d748591bfee \ + --module HUIWANG_WORLD_NFT \ + --function mint \ + --args 0x0c09dd9c8e250ddda64af01fc7840ce0959c9d12b26c563d87daef181f74682a "HuiWang-World" "HuiWang-World-NFT" "https://avatars.githubusercontent.com/HuiWang-World" +``` + +- 执行结果 + +```shell +Transaction Digest: wo5Cthdc7VkK12zoJMv3bpxwyCdpNas66QsKAmNDGxL +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ Gas Owner: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 752 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Version: 103342238 │ +│ │ Digest: 8vxKvhzmBN6XKLgXX3x2A3ztJAQ7wfHMwSoLsTmWXhBj │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x0c09dd9c8e250ddda64af01fc7840ce0959c9d12b26c563d87daef181f74682a │ │ +│ │ 1 Pure Arg: Type: vector, Value: "HuiWang-World" │ │ +│ │ 2 Pure Arg: Type: vector, Value: "HuiWang-World-NFT" │ │ +│ │ 3 Pure Arg: Type: vector, Value: "https://avatars.githubusercontent.com/HuiWang-World" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: HUIWANG_WORLD_NFT │ │ +│ │ │ Package: 0xb20685c739bfe12eff994044e34d7eab91cc04e2d84f8455e03f4d748591bfee │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ │ Input 3 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ MyYl4IheaY3v/OsDKjdpuIh9QuKhNdZ9Na1II6JZ5D0rGLFxmnfNf/10Uz0PucDmvbEzY8B3tgI4xA4k2ihYCQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: wo5Cthdc7VkK12zoJMv3bpxwyCdpNas66QsKAmNDGxL │ +│ Status: Success │ +│ Executed Epoch: 439 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x9855e6838b1dabc734e1b4991dab188bd2ecfe29ba912e2256768d4a4af6a3df │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342239 │ +│ │ Digest: 32SVNhPmKPbsiVNnZd9pHJKZDwUjp47nuAWg7HiKPjcc │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0c09dd9c8e250ddda64af01fc7840ce0959c9d12b26c563d87daef181f74682a │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342239 │ +│ │ Digest: 4mnmGvZRyQ3qgw5B9d5quXCBfMDjL9PtVabzngAJW15C │ +│ └── │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342239 │ +│ │ Digest: 3ySGt8zpqApCMD6dXSd8a8KXNTNUfDUkAXS8tD1xcxRm │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342239 │ +│ │ Digest: 3ySGt8zpqApCMD6dXSd8a8KXNTNUfDUkAXS8tD1xcxRm │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4354800 MIST │ +│ Computation Cost: 752000 MIST │ +│ Storage Rebate: 2347488 MIST │ +│ Non-refundable Storage Fee: 23712 MIST │ +│ │ +│ Transaction Dependencies: │ +│ F59xnVn61s9SJdbupqBmSyjhpuhgTPwYFJWhwu1nozKX │ +│ HcomP6P9Y6bLnc3FBMGc4XifEHm9eZZrYaUdwS9LaQmX │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x9855e6838b1dabc734e1b4991dab188bd2ecfe29ba912e2256768d4a4af6a3df │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0xb20685c739bfe12eff994044e34d7eab91cc04e2d84f8455e03f4d748591bfee::HUIWANG_WORLD_NFT::NFT │ +│ │ Version: 103342239 │ +│ │ Digest: 32SVNhPmKPbsiVNnZd9pHJKZDwUjp47nuAWg7HiKPjcc │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0c09dd9c8e250ddda64af01fc7840ce0959c9d12b26c563d87daef181f74682a │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0xb20685c739bfe12eff994044e34d7eab91cc04e2d84f8455e03f4d748591bfee::HUIWANG_WORLD_NFT::AdminCap │ +│ │ Version: 103342239 │ +│ │ Digest: 4mnmGvZRyQ3qgw5B9d5quXCBfMDjL9PtVabzngAJW15C │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 103342239 │ +│ │ Digest: 3ySGt8zpqApCMD6dXSd8a8KXNTNUfDUkAXS8tD1xcxRm │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2759312 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + +``` + +- 给任务地址发送 nft + +```shell +sui client transfer --gas-budget 10000000 \ + --object-id 0x9855e6838b1dabc734e1b4991dab188bd2ecfe29ba912e2256768d4a4af6a3df \ + --to 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 +``` + +- 执行结果 + +```shell +Transaction Digest: DgJZRmmrfLg8rtvJEkRwZvZ6UMsSsYqDjjC96rPwTWwd +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ Gas Owner: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 752 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Version: 103342239 │ +│ │ Digest: 3ySGt8zpqApCMD6dXSd8a8KXNTNUfDUkAXS8tD1xcxRm │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" │ │ +│ │ 1 Imm/Owned Object ID: 0x9855e6838b1dabc734e1b4991dab188bd2ecfe29ba912e2256768d4a4af6a3df │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────┤ │ +│ │ 0 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 1 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰──────────────────────╯ │ +│ │ +│ Signatures: │ +│ oDD9tGN0pEh7PNWSsvV5kQEUgqGbYwvaQn9jEU3i9TtxBuj8kIezOC2DNDgOOcjbc7pVJenS4fHMoTytE/qWAw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: DgJZRmmrfLg8rtvJEkRwZvZ6UMsSsYqDjjC96rPwTWwd │ +│ Status: Success │ +│ Executed Epoch: 439 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342240 │ +│ │ Digest: HYEQFi9meKWpLGZGrgVFkSe3JreCb5neeGXhUjJNEUiJ │ +│ └── │ +│ ┌── │ +│ │ ID: 0x9855e6838b1dabc734e1b4991dab188bd2ecfe29ba912e2256768d4a4af6a3df │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ Version: 103342240 │ +│ │ Digest: CUmS7TGwaxjg2R8gni8jumzty9nj6ghZPwPLDzVuyTo1 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ Version: 103342240 │ +│ │ Digest: HYEQFi9meKWpLGZGrgVFkSe3JreCb5neeGXhUjJNEUiJ │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2971600 MIST │ +│ Computation Cost: 752000 MIST │ +│ Storage Rebate: 2941884 MIST │ +│ Non-refundable Storage Fee: 29716 MIST │ +│ │ +│ Transaction Dependencies: │ +│ wo5Cthdc7VkK12zoJMv3bpxwyCdpNas66QsKAmNDGxL │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x760171358680330db49355a2d9b0a49d5df50b51a2c850b9d2eb0b51d9364af2 │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 103342240 │ +│ │ Digest: HYEQFi9meKWpLGZGrgVFkSe3JreCb5neeGXhUjJNEUiJ │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x9855e6838b1dabc734e1b4991dab188bd2ecfe29ba912e2256768d4a4af6a3df │ +│ │ Sender: 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ ObjectType: 0xb20685c739bfe12eff994044e34d7eab91cc04e2d84f8455e03f4d748591bfee::HUIWANG_WORLD_NFT::NFT │ +│ │ Version: 103342240 │ +│ │ Digest: CUmS7TGwaxjg2R8gni8jumzty9nj6ghZPwPLDzVuyTo1 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b5b33ff213280beec362c3edf7caf472db920bf40a7d731fad8013748b1a896 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -781716 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + +``` + +--- task end--- \ No newline at end of file diff --git a/mover/HuiWang-World/notes/task3-testnet.md b/mover/HuiWang-World/notes/task3-testnet.md new file mode 100644 index 000000000..eb14207fc --- /dev/null +++ b/mover/HuiWang-World/notes/task3-testnet.md @@ -0,0 +1,593 @@ +--- 任务要求 begin--- + +# 完成NFT的上链部署 + +- 上链网络: 主网(mainnet) + +## 需求 + +- 完成 NFT相关知识的学习 +- 完成可以mint NFT的合约上链 +- 给自己地址mint一个NFT +- NFT必须是自己 github 的头像作为图片 +- mint 一个 nft 发送到地址: `0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2` +- 提交mint到自己地址的浏览器查看(Scan)截图 + +## 任务指南 + +--- 任务要求 end--- + +--- task begin--- + +- 编写合约代码 HUIWANG_WORLD_NFT.move +- 发布合约 + +```shell +sui client publish +``` + +- 执行结果 + +```shell +Transaction Digest: 5jgSn2czPHiKexXbT2jixXnBBetsGAuaJgnDshjt4sWv +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ Gas Owner: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Version: 715921 │ +│ │ Digest: dWfoK4NsbnHFfZcMMqdXr7CxFv8kfqEM1VEQRe8yp1v │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ VbW0yaTs333wf3GF8flvgsYyvbNcR+0rxqSvGLmf5g26gaqXMOk7YfoTe/H9H8yX9LR+k+jp88YPKnWM+HjYAQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 5jgSn2czPHiKexXbT2jixXnBBetsGAuaJgnDshjt4sWv │ +│ Status: Success │ +│ Executed Epoch: 411 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x33750ff5ca080ff05e137a9b9f64864b8daa2babeaf9fce4480039ece0938d6d │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715922 │ +│ │ Digest: AgbbAQtqfhg9wwTbaqkyzPDPwzxCaH88rytbQkkDghME │ +│ └── │ +│ ┌── │ +│ │ ID: 0x7c635448b6e96d5ee0f104fd4ced6c8e7529755a92d57007bc5a272f78c2c583 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715922 │ +│ │ Digest: AVP553ECNZqKZHRJqgDziJ7RoiqacT3qve1MGkgi2tjC │ +│ └── │ +│ ┌── │ +│ │ ID: 0xccacaaf4c31547838afd391e4cd1900d7b46d7e692902e5c25aa831501c993f4 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: BXQtAtU1pNKp2sp4jyGFXqamPWdr9vkv9QN9JyXy6qTk │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715922 │ +│ │ Digest: 6pzJYerJQUj9vN6PRCyvvYTFjXC7Y8FsstQMeuZtsVBA │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715922 │ +│ │ Digest: 6pzJYerJQUj9vN6PRCyvvYTFjXC7Y8FsstQMeuZtsVBA │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 11164400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ GZNZBDuSoWrS7sEix79iaam9hDMoNjq8idfZEdkF79wr │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x33750ff5ca080ff05e137a9b9f64864b8daa2babeaf9fce4480039ece0938d6d │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0xccacaaf4c31547838afd391e4cd1900d7b46d7e692902e5c25aa831501c993f4::HUIWANG_WORLD_NFT::AdminCap │ +│ │ Version: 715922 │ +│ │ Digest: AgbbAQtqfhg9wwTbaqkyzPDPwzxCaH88rytbQkkDghME │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x7c635448b6e96d5ee0f104fd4ced6c8e7529755a92d57007bc5a272f78c2c583 │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 715922 │ +│ │ Digest: AVP553ECNZqKZHRJqgDziJ7RoiqacT3qve1MGkgi2tjC │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 715922 │ +│ │ Digest: 6pzJYerJQUj9vN6PRCyvvYTFjXC7Y8FsstQMeuZtsVBA │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xccacaaf4c31547838afd391e4cd1900d7b46d7e692902e5c25aa831501c993f4 │ +│ │ Version: 1 │ +│ │ Digest: BXQtAtU1pNKp2sp4jyGFXqamPWdr9vkv9QN9JyXy6qTk │ +│ │ Modules: HUIWANG_WORLD_NFT │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -11186280 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + +``` + +- 调用合约 + +```shell + sui client call \ + --package 0xccacaaf4c31547838afd391e4cd1900d7b46d7e692902e5c25aa831501c993f4 \ + --module HUIWANG_WORLD_NFT \ + --function mint \ + --args 0x33750ff5ca080ff05e137a9b9f64864b8daa2babeaf9fce4480039ece0938d6d "HuiWang-World" "HuiWang-World-NFT" "https://avatars.githubusercontent.com/HuiWang-World" + +``` + +- 执行结果 + +```shell +Transaction Digest: 4zy1ycmEQdNmVQKJU8EXyFjJb6dMeRuNhFMLPAcyx8XJ +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ Gas Owner: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Version: 715922 │ +│ │ Digest: 6pzJYerJQUj9vN6PRCyvvYTFjXC7Y8FsstQMeuZtsVBA │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x33750ff5ca080ff05e137a9b9f64864b8daa2babeaf9fce4480039ece0938d6d │ │ +│ │ 1 Pure Arg: Type: vector, Value: "HuiWang-World" │ │ +│ │ 2 Pure Arg: Type: vector, Value: "HuiWang-World-NFT" │ │ +│ │ 3 Pure Arg: Type: vector, Value: "https://avatars.githubusercontent.com/HuiWang-World" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: HUIWANG_WORLD_NFT │ │ +│ │ │ Package: 0xccacaaf4c31547838afd391e4cd1900d7b46d7e692902e5c25aa831501c993f4 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ │ Input 3 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ emBkId5QhLWTQd9Qk+KCzBIpX/LDzr0X2ubnSX3AIv2uRf0TnrkfmPDVl6BltD0k6aKDUgS6xean9SQwvCj+BQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 4zy1ycmEQdNmVQKJU8EXyFjJb6dMeRuNhFMLPAcyx8XJ │ +│ Status: Success │ +│ Executed Epoch: 411 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x79caa15035e53a85160ca0e388423d3c6b81f971f2e0802796b1cb4f1fc02a6b │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715923 │ +│ │ Digest: 9Uwkhxj1z3At6DfS71nUr9Qg8vnupTnuwhVFy8ckgw2g │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715923 │ +│ │ Digest: GvCqd6QAAUDXGAQv39DqT2Kbi7eN5VvcaqPvoDUxzgRu │ +│ └── │ +│ ┌── │ +│ │ ID: 0x33750ff5ca080ff05e137a9b9f64864b8daa2babeaf9fce4480039ece0938d6d │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715923 │ +│ │ Digest: 4NanNqAdgUnqoCZGjp6pZ7fUjhyN5PKn5ArVrJDvCgjj │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715923 │ +│ │ Digest: GvCqd6QAAUDXGAQv39DqT2Kbi7eN5VvcaqPvoDUxzgRu │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4354800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2347488 MIST │ +│ Non-refundable Storage Fee: 23712 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 5jgSn2czPHiKexXbT2jixXnBBetsGAuaJgnDshjt4sWv │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x79caa15035e53a85160ca0e388423d3c6b81f971f2e0802796b1cb4f1fc02a6b │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0xccacaaf4c31547838afd391e4cd1900d7b46d7e692902e5c25aa831501c993f4::HUIWANG_WORLD_NFT::NFT │ +│ │ Version: 715923 │ +│ │ Digest: 9Uwkhxj1z3At6DfS71nUr9Qg8vnupTnuwhVFy8ckgw2g │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 715923 │ +│ │ Digest: GvCqd6QAAUDXGAQv39DqT2Kbi7eN5VvcaqPvoDUxzgRu │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x33750ff5ca080ff05e137a9b9f64864b8daa2babeaf9fce4480039ece0938d6d │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0xccacaaf4c31547838afd391e4cd1900d7b46d7e692902e5c25aa831501c993f4::HUIWANG_WORLD_NFT::AdminCap │ +│ │ Version: 715923 │ +│ │ Digest: 4NanNqAdgUnqoCZGjp6pZ7fUjhyN5PKn5ArVrJDvCgjj │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -3007312 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + +``` + +- 调用合约 生成转发给任务地址的nft + +```shell + sui client call \ + --package 0xccacaaf4c31547838afd391e4cd1900d7b46d7e692902e5c25aa831501c993f4 \ + --module HUIWANG_WORLD_NFT \ + --function mint \ + --args 0x33750ff5ca080ff05e137a9b9f64864b8daa2babeaf9fce4480039ece0938d6d "HuiWang-World" "HuiWang-World-NFT" "https://avatars.githubusercontent.com/HuiWang-World" +``` + +- 执行结果 + +```shell +Transaction Digest: 6VYn4zA6fgWHkTrDzd1sVewhXBg7hQGy5K3CwBe1jf8Y +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ Gas Owner: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Version: 715923 │ +│ │ Digest: GvCqd6QAAUDXGAQv39DqT2Kbi7eN5VvcaqPvoDUxzgRu │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x33750ff5ca080ff05e137a9b9f64864b8daa2babeaf9fce4480039ece0938d6d │ │ +│ │ 1 Pure Arg: Type: vector, Value: "HuiWang-World" │ │ +│ │ 2 Pure Arg: Type: vector, Value: "HuiWang-World-NFT" │ │ +│ │ 3 Pure Arg: Type: vector, Value: "https://avatars.githubusercontent.com/HuiWang-World" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: HUIWANG_WORLD_NFT │ │ +│ │ │ Package: 0xccacaaf4c31547838afd391e4cd1900d7b46d7e692902e5c25aa831501c993f4 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ │ Input 3 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ +7iX5FzkrMZXuSh6UkjeSjnMNJS+0aNdAfUn3+Cmsn0SuRsnvm7i97BF0XSgsrAh/YQQiGf/h08Av/BYx7XCCw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 6VYn4zA6fgWHkTrDzd1sVewhXBg7hQGy5K3CwBe1jf8Y │ +│ Status: Success │ +│ Executed Epoch: 411 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xeff0af6e2a74458870fd0c0ba18380279c730556d8c0196be95b088389e215fa │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715924 │ +│ │ Digest: HAUnwtT475zgbPLkkxvWY8pdso8SUVRp3Ta7s2mzenwb │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715924 │ +│ │ Digest: 9FWFR5WtAZmB2F3vCEXUHDDK2rHXtxdTeXEqxg6BmTH │ +│ └── │ +│ ┌── │ +│ │ ID: 0x33750ff5ca080ff05e137a9b9f64864b8daa2babeaf9fce4480039ece0938d6d │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715924 │ +│ │ Digest: 92jCyZD1G7rLVrAcvTLGG3CV3sTdh5ni2NCzrUwP2Xus │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715924 │ +│ │ Digest: 9FWFR5WtAZmB2F3vCEXUHDDK2rHXtxdTeXEqxg6BmTH │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4354800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2347488 MIST │ +│ Non-refundable Storage Fee: 23712 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 4zy1ycmEQdNmVQKJU8EXyFjJb6dMeRuNhFMLPAcyx8XJ │ +│ 5jgSn2czPHiKexXbT2jixXnBBetsGAuaJgnDshjt4sWv │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xeff0af6e2a74458870fd0c0ba18380279c730556d8c0196be95b088389e215fa │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0xccacaaf4c31547838afd391e4cd1900d7b46d7e692902e5c25aa831501c993f4::HUIWANG_WORLD_NFT::NFT │ +│ │ Version: 715924 │ +│ │ Digest: HAUnwtT475zgbPLkkxvWY8pdso8SUVRp3Ta7s2mzenwb │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 715924 │ +│ │ Digest: 9FWFR5WtAZmB2F3vCEXUHDDK2rHXtxdTeXEqxg6BmTH │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x33750ff5ca080ff05e137a9b9f64864b8daa2babeaf9fce4480039ece0938d6d │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0xccacaaf4c31547838afd391e4cd1900d7b46d7e692902e5c25aa831501c993f4::HUIWANG_WORLD_NFT::AdminCap │ +│ │ Version: 715924 │ +│ │ Digest: 92jCyZD1G7rLVrAcvTLGG3CV3sTdh5ni2NCzrUwP2Xus │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -3007312 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + +``` + +- 给任务地址发送 nft + +```shell +sui client transfer --gas-budget 10000000 \ + --object-id 0xeff0af6e2a74458870fd0c0ba18380279c730556d8c0196be95b088389e215fa \ + --to 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 +``` + +- 执行结果 + +```shell +Transaction Digest: EFXq8s7D8xQLtotE2ZTFNmuNDu5xpPsHPMjBodNXXirQ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ Gas Owner: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Version: 715924 │ +│ │ Digest: 9FWFR5WtAZmB2F3vCEXUHDDK2rHXtxdTeXEqxg6BmTH │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" │ │ +│ │ 1 Imm/Owned Object ID: 0xeff0af6e2a74458870fd0c0ba18380279c730556d8c0196be95b088389e215fa │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────┤ │ +│ │ 0 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 1 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰──────────────────────╯ │ +│ │ +│ Signatures: │ +│ ghG1JT/AYWQFMZZSeO4XR18S6tk8cM8JlJu5fJQg7FG5wCoEX0eeSh7BZDGXJ9fRJNn1pIJT9wtEKSKyhbAjAA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: EFXq8s7D8xQLtotE2ZTFNmuNDu5xpPsHPMjBodNXXirQ │ +│ Status: Success │ +│ Executed Epoch: 411 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715925 │ +│ │ Digest: EqheRAJt9rumDzJscPje2yiiQJzAxS6itp3Yo6ADSvoi │ +│ └── │ +│ ┌── │ +│ │ ID: 0xeff0af6e2a74458870fd0c0ba18380279c730556d8c0196be95b088389e215fa │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ Version: 715925 │ +│ │ Digest: EVHMT3iCTfBSRePHRCG3angXaHsN7qFcmR39XTCQktz4 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ Version: 715925 │ +│ │ Digest: EqheRAJt9rumDzJscPje2yiiQJzAxS6itp3Yo6ADSvoi │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2971600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2941884 MIST │ +│ Non-refundable Storage Fee: 29716 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 6VYn4zA6fgWHkTrDzd1sVewhXBg7hQGy5K3CwBe1jf8Y │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0e84bff608599d8f3d7cc11b0358bf3e142422b096189f3a2119307e6ca416d9 │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 715925 │ +│ │ Digest: EqheRAJt9rumDzJscPje2yiiQJzAxS6itp3Yo6ADSvoi │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xeff0af6e2a74458870fd0c0ba18380279c730556d8c0196be95b088389e215fa │ +│ │ Sender: 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ ObjectType: 0xccacaaf4c31547838afd391e4cd1900d7b46d7e692902e5c25aa831501c993f4::HUIWANG_WORLD_NFT::NFT │ +│ │ Version: 715925 │ +│ │ Digest: EVHMT3iCTfBSRePHRCG3angXaHsN7qFcmR39XTCQktz4 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x23cd103501684d8da2ea03fcdc6af33f35d6d99736a174059e77fa4028e53dd7 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1029716 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + +``` + +--- task end--- \ No newline at end of file diff --git a/mover/HuiWang-World/readme.md b/mover/HuiWang-World/readme.md index 3cc6ed4cc..2074a828e 100644 --- a/mover/HuiWang-World/readme.md +++ b/mover/HuiWang-World/readme.md @@ -17,17 +17,18 @@ - [x] package id: 0xd4fb3cc172f20e39641345c9762c59c6b45cb5700138a8568584e6383616ac0d ## 02 move coin -- [] My Coin package id : -- [] Faucet package id : -- [] 转账 `My Coin` hash: -- [] `Faucet Coin` address1 mint hash: +- [x] My Coin package id : 0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa +- [x] Faucet package id : 0xae16113528530ccfefb1dfcf99da129421621be8307edee8bb05ea1ecb7dd2fa +- [x] 转账 `My Coin` hash: EXNu2hebvcsuTpnh5Higoi4BBiWy6BZ1hKJ4jKYiH2rD +- [x] `Faucet Coin` address1 mint hash: G32Rz8CrZMyv8umGg5c2hpCYjAT4vcPnqFj5pFWUnRcZ - [] `Faucet Coin` address2 mint hash: ## 03 move NFT -- [] nft package id : -- [] nft object id : -- [] 转账 nft hash: -- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) +- [x] nft package id : 0xb20685c739bfe12eff994044e34d7eab91cc04e2d84f8455e03f4d748591bfee +- [x] nft object id : 0x9855e6838b1dabc734e1b4991dab188bd2ecfe29ba912e2256768d4a4af6a3df +- [x] 转账 nft hash: DgJZRmmrfLg8rtvJEkRwZvZ6UMsSsYqDjjC96rPwTWwd +- [x] scan上的NFT截图:![Scan截图](./images/SuiScanNFT.png) +- [x] scan上的NFT的URL地址: https://suiscan.xyz/mainnet/object/0x9855e6838b1dabc734e1b4991dab188bd2ecfe29ba912e2256768d4a4af6a3df ## 04 Move Game - [] game package id : diff --git a/mover/HungYann/code/readme.md b/mover/HungYann/code/readme.md index 0c70f47ed..ca64f179b 100644 --- a/mover/HungYann/code/readme.md +++ b/mover/HungYann/code/readme.md @@ -65,7 +65,7 @@ CoinMetadata是一个存储已创建的可替换代币的元数据的资源 **命令行调用** ```rust -sui client call --package xxx --module hungyan_facuet --function mint --args object_id 1 account_id --gas-budget 100000000 +sui client call --package xxx --module hungyan_facuet --function mint --args object_id 1 account_id ``` @@ -106,5 +106,5 @@ sui client switch --env mainnet ``` cd hungyan_nft/ -sui client publish --gas-budget 100000000 +sui client publish ``` diff --git a/mover/Iluvata/code/readme.md b/mover/Iluvata/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Iluvata/code/task1/hello_move/Move.lock b/mover/Iluvata/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..e10fa3781 --- /dev/null +++ b/mover/Iluvata/code/task1/hello_move/Move.lock @@ -0,0 +1,41 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 0 +manifest_digest = "19848DB7E1FC2803C211B8F70103576C882545ECEB83BFA34A7D8B5AA4DEE57E" +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.28.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "b032f5b2" +original-published-id = "0x2d6a940c49abe97ec563c51101f95c4949b85c224918e3c5b6ea09cf8c49487f" +latest-published-id = "0x2d6a940c49abe97ec563c51101f95c4949b85c224918e3c5b6ea09cf8c49487f" +published-version = "1" + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x39657c000ed40c75b875115ad6c7cee0e411072daec66df339f1eae3ae65681c" +latest-published-id = "0x39657c000ed40c75b875115ad6c7cee0e411072daec66df339f1eae3ae65681c" +published-version = "1" diff --git a/mover/Iluvata/code/task1/hello_move/Move.toml b/mover/Iluvata/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..027987b81 --- /dev/null +++ b/mover/Iluvata/code/task1/hello_move/Move.toml @@ -0,0 +1,41 @@ +[package] +name = "hello_move" +edition = "2024.beta" + + +# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha +# 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" } +# 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] +hello_move = "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/Iluvata/code/task1/hello_move/sources/hello.move b/mover/Iluvata/code/task1/hello_move/sources/hello.move new file mode 100644 index 000000000..bebaec156 --- /dev/null +++ b/mover/Iluvata/code/task1/hello_move/sources/hello.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"Iluvata"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/Iluvata/images/cli_call.png b/mover/Iluvata/images/cli_call.png new file mode 100644 index 000000000..8759aa3b9 Binary files /dev/null and b/mover/Iluvata/images/cli_call.png differ diff --git a/mover/Iluvata/images/suiscan_Iluvata.png b/mover/Iluvata/images/suiscan_Iluvata.png new file mode 100644 index 000000000..ded554772 Binary files /dev/null and b/mover/Iluvata/images/suiscan_Iluvata.png differ diff --git a/mover/Iluvata/images/suiwallet_Iluvata.png b/mover/Iluvata/images/suiwallet_Iluvata.png new file mode 100644 index 000000000..f4e75b24c Binary files /dev/null and b/mover/Iluvata/images/suiwallet_Iluvata.png differ diff --git a/mover/Iluvata/notes/readme.md b/mover/Iluvata/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Iluvata/readme.md b/mover/Iluvata/readme.md new file mode 100644 index 000000000..0cb50797d --- /dev/null +++ b/mover/Iluvata/readme.md @@ -0,0 +1,47 @@ +## 基本信息 +- Sui钱包地址: `0x7db62b2a862f6af9d3710ef9814ef448350e728462cc758cc9695f338fbe698e` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `Iluvata` + +## 个人简介 +- 工作经验: 5年 +- 技术栈: `Rust` `C++` +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `maxwell_pepper` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.28.2-08b50387a184 +- [x] Sui钱包截图: ![Sui钱包截图](./images/suiwallet_Iluvata.png) +- [x] package id: 0x39657c000ed40c75b875115ad6c7cee0e411072daec66df339f1eae3ae65681c +- [x] package id 在 scan上的查看截图:![Scan截图](./images/suiscan_Iluvata.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: + +## 04 Move Game +- [] game package id : +- [] call game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap hash: + +## 06 SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/cli_call.png) +- [x] flag hash : 2FYYpVFSmMLLVLK1XFzQGM1xizSgrC4mgrZD8pU2MDWN + +## 08 Move CTF Lets Move +- [x] proof : [204,137,168,71] +- [x] flag hash : B2rmAvTBpa7NkMDgNfKTvs3HkGCy19jrhHETdDqC28H2 \ No newline at end of file diff --git a/mover/JA1E0/code/readme.md b/mover/JA1E0/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/JA1E0/code/task1/hello_world/Move.lock b/mover/JA1E0/code/task1/hello_world/Move.lock new file mode 100644 index 000000000..85a445d95 --- /dev/null +++ b/mover/JA1E0/code/task1/hello_world/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "DE12A1CAE4C2BE737C120E6E44F26475E73335C3028CF2F59C57BD6321E3A79A" +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 = "0x0453bfd84cf2f7af35d2a949ed614fe28413ec6a77b0c6ce83b105b7c6f2c2f9" +latest-published-id = "0x0453bfd84cf2f7af35d2a949ed614fe28413ec6a77b0c6ce83b105b7c6f2c2f9" +published-version = "1" diff --git a/mover/JA1E0/code/task1/hello_world/Move.toml b/mover/JA1E0/code/task1/hello_world/Move.toml new file mode 100644 index 000000000..d0a1217e5 --- /dev/null +++ b/mover/JA1E0/code/task1/hello_world/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "hello_world" +edition = "2024.beta" # edition = "legacy" to use legacy (pre-2024) Move +version = "0.0.1" +# 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] +hello_world = "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/JA1E0/code/task1/hello_world/sources/hello_world.move b/mover/JA1E0/code/task1/hello_world/sources/hello_world.move new file mode 100644 index 000000000..f842434f2 --- /dev/null +++ b/mover/JA1E0/code/task1/hello_world/sources/hello_world.move @@ -0,0 +1,28 @@ +// Module: hello_world +module hello_world::hello_world { + + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + //包含任意字符串的 obejct + public struct HelloWorldObject has key,store { + id: UID, + // 被object包含的字符串 + text: string::String + } + + public entry fun mint(ctx: &mut TxContext){ + let object = HelloWorldObject{ + id: object::new(ctx), + text: string::utf8(b"hello JA1E0") + }; + transfer::transfer(object, tx_context::sender(ctx)) + } + + // public fun addition (a:u8,b:u8): u8{ + // // 没有分号的最后一行 为返回值 + // a+b + // } +} + diff --git a/mover/JA1E0/code/task1/hello_world/tests/hello_world_tests.move b/mover/JA1E0/code/task1/hello_world/tests/hello_world_tests.move new file mode 100644 index 000000000..8fdf06eec --- /dev/null +++ b/mover/JA1E0/code/task1/hello_world/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_world::hello_world_tests { + // uncomment this line to import the module + // use hello_world::hello_world; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_world() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_world::hello_world_tests::ENotImplemented)] + fun test_hello_world_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/JA1E0/images/SCR-20240629-mzit.png b/mover/JA1E0/images/SCR-20240629-mzit.png new file mode 100644 index 000000000..31635272c Binary files /dev/null and b/mover/JA1E0/images/SCR-20240629-mzit.png differ diff --git a/mover/JA1E0/images/SCR-20240629-tftu.png b/mover/JA1E0/images/SCR-20240629-tftu.png new file mode 100644 index 000000000..2f38477c1 Binary files /dev/null and b/mover/JA1E0/images/SCR-20240629-tftu.png differ diff --git a/mover/JA1E0/notes/readme.md b/mover/JA1E0/notes/readme.md new file mode 100644 index 000000000..d93c88f92 --- /dev/null +++ b/mover/JA1E0/notes/readme.md @@ -0,0 +1,3 @@ +gas = tokens 等于钱,打包上传packge 做运算都要实用 +gas_budget 是预算,如果消费大于预算吗,则会失败。默认10000000 +1. 打包上传package,得到packageId `sui client publish --gas-budget 20000000` 2. call `sui client call --function mint --module hello_world --package $PACKAGE_ID --gas-budget 10000000` 3.查看objectId, \ No newline at end of file diff --git a/mover/JA1E0/readme.md b/mover/JA1E0/readme.md new file mode 100644 index 000000000..65f1d71fd --- /dev/null +++ b/mover/JA1E0/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xa77c3eecc002b208a094cc4c84a04ad82a19ab6eb3a597716f0932a27e3284f8` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `JA1E0` + +## 个人简介 +- 工作经验: 2年 +- 技术栈: `Python` `C++` +> 重要提示 请认真写自己的简介 +- 两年木马病毒分析,YARA规则熟练工,对区块链很好奇,想通过学习Move了解区块链。 +- 联系方式: tg: `ye0304` + +## 任务 + +## 01 hello move +- [x] Sui cli version: `sui 1.27.2-homebrew` +- [x] Sui钱包截图: ![Sui钱包截图](./images/SCR-20240629-mzit.png) +- [x] package id: `0x0453bfd84cf2f7af35d2a949ed614fe28413ec6a77b0c6ce83b105b7c6f2c2f9` +- [x] package id 在 scan上的查看截图:![Scan截图](./images/SCR-20240629-tftu.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/Jay9625/code/hello_move/Move.lock b/mover/Jay9625/code/hello_move/Move.lock new file mode 100644 index 000000000..4ab4b0db1 --- /dev/null +++ b/mover/Jay9625/code/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x49822a96d37a8233f5a73ff4b1349eeee0679c0ff65d8e7b621b49d7ef5bb517" +latest-published-id = "0x49822a96d37a8233f5a73ff4b1349eeee0679c0ff65d8e7b621b49d7ef5bb517" +published-version = "1" diff --git a/mover/Jay9625/code/hello_move/Move.toml b/mover/Jay9625/code/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/Jay9625/code/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/Jay9625/code/hello_move/sources/hello_move.move b/mover/Jay9625/code/hello_move/sources/hello_move.move new file mode 100644 index 000000000..c7a79fff6 --- /dev/null +++ b/mover/Jay9625/code/hello_move/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"move"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/Jay9625/code/hello_move/tests/hello_move_tests.move b/mover/Jay9625/code/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/Jay9625/code/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Jay9625/code/readme.md b/mover/Jay9625/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Jay9625/image-1.png b/mover/Jay9625/image-1.png new file mode 100644 index 000000000..fede2a815 Binary files /dev/null and b/mover/Jay9625/image-1.png differ diff --git a/mover/Jay9625/image.png b/mover/Jay9625/image.png new file mode 100644 index 000000000..bb27db27c Binary files /dev/null and b/mover/Jay9625/image.png differ diff --git a/mover/Jay9625/notes/readme.md b/mover/Jay9625/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Jay9625/readme.md b/mover/Jay9625/readme.md new file mode 100644 index 000000000..58f33d514 --- /dev/null +++ b/mover/Jay9625/readme.md @@ -0,0 +1,44 @@ +## 基本信息 +- Sui钱包地址: `0xb4e62dac5c1d363b72990f32001656c4a6a5b015cde36f42a61cae62bd3fd9a4` +- github: `https://github.com/Jay9625` + +## 个人简介 +- 工作经验: 1年 +- 技术栈: `Python` `C++` `Go` +- 本硕计算机专业,有web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `AAAJaychou` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.26.0-homebrew +- [x] Sui钱包截图: ![Sui钱包截图](image.png) +- [x] package id: 0x49822a96d37a8233f5a73ff4b1349eeee0679c0ff65d8e7b621b49d7ef5bb517 +- [x] package id 在 scan上的查看截图:![](image-1.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : diff --git a/mover/Jiang-HongXin/code/readme.md b/mover/Jiang-HongXin/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Jiang-HongXin/code/task1/hello_move/Move.lock b/mover/Jiang-HongXin/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..b0456c476 --- /dev/null +++ b/mover/Jiang-HongXin/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "b032f5b2" +original-published-id = "0x1c865ceda65cf10950c0a139d76bd05088be04fd04c2f279ee936be21fdca16b" +latest-published-id = "0x1c865ceda65cf10950c0a139d76bd05088be04fd04c2f279ee936be21fdca16b" +published-version = "1" diff --git a/mover/Jiang-HongXin/code/task1/hello_move/Move.toml b/mover/Jiang-HongXin/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/Jiang-HongXin/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/Jiang-HongXin/code/task1/hello_move/sources/hello_move.move b/mover/Jiang-HongXin/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..da56f4988 --- /dev/null +++ b/mover/Jiang-HongXin/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"Jiang-HongXin"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/Jiang-HongXin/code/task1/hello_move/tests/hello_move_tests.move b/mover/Jiang-HongXin/code/task1/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/Jiang-HongXin/code/task1/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Jiang-HongXin/images/packageId.jpeg b/mover/Jiang-HongXin/images/packageId.jpeg new file mode 100644 index 000000000..8d503f42d Binary files /dev/null and b/mover/Jiang-HongXin/images/packageId.jpeg differ diff --git a/mover/Jiang-HongXin/images/sui-version.png b/mover/Jiang-HongXin/images/sui-version.png new file mode 100644 index 000000000..ed009c777 Binary files /dev/null and b/mover/Jiang-HongXin/images/sui-version.png differ diff --git a/mover/Jiang-HongXin/images/wallet.png b/mover/Jiang-HongXin/images/wallet.png new file mode 100644 index 000000000..061348bdc Binary files /dev/null and b/mover/Jiang-HongXin/images/wallet.png differ diff --git a/mover/Jiang-HongXin/notes/readme.md b/mover/Jiang-HongXin/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Jiang-HongXin/readme.md b/mover/Jiang-HongXin/readme.md new file mode 100644 index 000000000..953d10493 --- /dev/null +++ b/mover/Jiang-HongXin/readme.md @@ -0,0 +1,53 @@ +## 基本信息 +- Sui钱包地址: `0x0d034666407f27ded6ff5313c402d989cdbdd26cd6c4077d845f41777ebcc9fc` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `Jiang-HongXin` + +## 个人简介 +- 工作经验: 2年 +- 技术栈: `Java` `Python` +- 多年web2开发经验,对Web3特别感兴趣,想通过Move入门区块链,进一步探索Web3世界 +- 联系方式: qq: `1260257314` + +## 任务 + +## 01 hello move +- [] Sui cli version: +- [] Sui钱包截图: ![Sui钱包截图](./images/wallet.png) +- [] package id: 0x1c865ceda65cf10950c0a139d76bd05088be04fd04c2f279ee936be21fdca16b +- [] package id 在 scan上的查看截图:![Scan截图](./images/sui-version.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/JianhaWang/code/readme.md b/mover/JianhaWang/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/JianhaWang/code/task1/Move.toml b/mover/JianhaWang/code/task1/Move.toml new file mode 100644 index 000000000..e75e497eb --- /dev/null +++ b/mover/JianhaWang/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1" +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] +task1 = "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/JianhaWang/code/task1/sources/task1.move b/mover/JianhaWang/code/task1/sources/task1.move new file mode 100644 index 000000000..f47959b92 --- /dev/null +++ b/mover/JianhaWang/code/task1/sources/task1.move @@ -0,0 +1,19 @@ +module task1::hello_move { + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct HelloObj has key, store { + id: UID, + say: string::String + } + + public fun mint(ctx: &mut TxContext) { + let object = HelloObj { + id: object::new(ctx), + say: string::utf8(b"Hello JianhaWang!") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } +} diff --git a/mover/JianhaWang/notes/1.png b/mover/JianhaWang/notes/1.png new file mode 100644 index 000000000..c4a91d890 Binary files /dev/null and b/mover/JianhaWang/notes/1.png differ diff --git a/mover/JianhaWang/notes/2.png b/mover/JianhaWang/notes/2.png new file mode 100644 index 000000000..0af302ffb Binary files /dev/null and b/mover/JianhaWang/notes/2.png differ diff --git a/mover/JianhaWang/notes/readme.md b/mover/JianhaWang/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/JianhaWang/readme.md b/mover/JianhaWang/readme.md new file mode 100644 index 000000000..3696a1573 --- /dev/null +++ b/mover/JianhaWang/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xd1f2ed6451d3c008fe7393d208c648c535d59e1fb3764fea589539075101faad` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `JianhaWang` + +## 个人简介 +- 工作经验: 1年 +- 技术栈: `C++` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `Greego` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui-client 1.29.2-09db80adf1af +- [x] Sui钱包截图: ![Sui钱包截图](./notes/1.png) +- [x] package id: 0x7cd0cc37aa1711c8365da790282d546c220b7d166aa2e314ee88b33ab19c0bbe +- [x] package id 在 scan上的查看截图:![Scan截图](./notes/2.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/JoJo-Ben/code/task1/Move.lock b/mover/JoJo-Ben/code/task1/Move.lock new file mode 100644 index 000000000..31331db67 --- /dev/null +++ b/mover/JoJo-Ben/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2E267C18D553336099CDD31F7063857679825E46CD06EC67CC7F7FB0C20317C1" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x37d0b44f047b31d69f7c3d0b1a0386cc1b5f2ceb0f364eab3e4f5d60d50eaf17" +latest-published-id = "0x37d0b44f047b31d69f7c3d0b1a0386cc1b5f2ceb0f364eab3e4f5d60d50eaf17" +published-version = "1" diff --git a/mover/JoJo-Ben/code/task1/Move.toml b/mover/JoJo-Ben/code/task1/Move.toml new file mode 100644 index 000000000..e75e497eb --- /dev/null +++ b/mover/JoJo-Ben/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1" +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] +task1 = "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/JoJo-Ben/code/task1/sources/task1.move b/mover/JoJo-Ben/code/task1/sources/task1.move new file mode 100644 index 000000000..ba394c1d1 --- /dev/null +++ b/mover/JoJo-Ben/code/task1/sources/task1.move @@ -0,0 +1,20 @@ +module task1::task1{ + use std::ascii::{String, string}; + use sui::object::{Self, UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id: UID, + say: String, + } + + fun init (ctx: &mut TxContext){ + let hello_move = Hello{ + id: object::new(ctx), + say: string(b"JoJo-Ben"), + }; + + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/JoJo-Ben/code/task1/tests/task1_tests.move b/mover/JoJo-Ben/code/task1/tests/task1_tests.move new file mode 100644 index 000000000..31fb8c1ac --- /dev/null +++ b/mover/JoJo-Ben/code/task1/tests/task1_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task1::task1_tests { + // uncomment this line to import the module + // use task1::task1; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task1() { + // pass + } + + #[test, expected_failure(abort_code = ::task1::task1_tests::ENotImplemented)] + fun test_task1_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/JoJo-Ben/code/task2/Move.lock b/mover/JoJo-Ben/code/task2/Move.lock new file mode 100644 index 000000000..9905f99f0 --- /dev/null +++ b/mover/JoJo-Ben/code/task2/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E7A65BF39B740E195045E87B46B06936199C063AFE29D8948B9C6B9B853033A8" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xdc7ae7f9555736cd0a467e69ee47494cc569885d99a71131a449db30f2bc80bf" +latest-published-id = "0xdc7ae7f9555736cd0a467e69ee47494cc569885d99a71131a449db30f2bc80bf" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xa8385516f66e045fe3c69179453c5b76855a141017ca622ae2516153e6622735" +latest-published-id = "0xa8385516f66e045fe3c69179453c5b76855a141017ca622ae2516153e6622735" +published-version = "1" diff --git a/mover/JoJo-Ben/code/task2/Move.toml b/mover/JoJo-Ben/code/task2/Move.toml new file mode 100644 index 000000000..6a6098d99 --- /dev/null +++ b/mover/JoJo-Ben/code/task2/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task2" +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] +task2 = "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/JoJo-Ben/code/task2/sources/coin.move b/mover/JoJo-Ben/code/task2/sources/coin.move new file mode 100644 index 000000000..4457fc3d8 --- /dev/null +++ b/mover/JoJo-Ben/code/task2/sources/coin.move @@ -0,0 +1,34 @@ +module task2::jojoben_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct JOJOBEN_COIN has drop {} + + fun init(witness: JOJOBEN_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"JOJOBEN_COIN", + b"jojoben", + b"jojoben coin", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/173065194?v=4")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/JoJo-Ben/code/task2/sources/faucet.move b/mover/JoJo-Ben/code/task2/sources/faucet.move new file mode 100644 index 000000000..121266042 --- /dev/null +++ b/mover/JoJo-Ben/code/task2/sources/faucet.move @@ -0,0 +1,35 @@ +module task2::jojoben_faucet_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct JOJOBEN_FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: JOJOBEN_FAUCET_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"JOJOBEN_FAUCET", + b"JOJOBEN_FAUCET", + b"jojoben's faucet coin, everyone can access and mutate.", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/173065194?v=4")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury_cap) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/JoJo-Ben/code/task2/tests/task2_tests.move b/mover/JoJo-Ben/code/task2/tests/task2_tests.move new file mode 100644 index 000000000..81e8c886d --- /dev/null +++ b/mover/JoJo-Ben/code/task2/tests/task2_tests.move @@ -0,0 +1,19 @@ +/* +#[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 + } +} +*/ diff --git a/mover/JoJo-Ben/code/task3/Move.lock b/mover/JoJo-Ben/code/task3/Move.lock new file mode 100644 index 000000000..b46cd5188 --- /dev/null +++ b/mover/JoJo-Ben/code/task3/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "DEDE53BD567ECEDC2009BE853A86F47F6BDC3F1F03A6B00FAED274F07E74A18B" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x8bd45abe0784d12bfd12b20e9d7ac4c1f3b467ed49f69d57bffb2004d4a17003" +latest-published-id = "0x8bd45abe0784d12bfd12b20e9d7ac4c1f3b467ed49f69d57bffb2004d4a17003" +published-version = "1" diff --git a/mover/JoJo-Ben/code/task3/Move.toml b/mover/JoJo-Ben/code/task3/Move.toml new file mode 100644 index 000000000..480be1592 --- /dev/null +++ b/mover/JoJo-Ben/code/task3/Move.toml @@ -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" + diff --git a/mover/JoJo-Ben/code/task3/sources/task3.move b/mover/JoJo-Ben/code/task3/sources/task3.move new file mode 100644 index 000000000..e61eae07a --- /dev/null +++ b/mover/JoJo-Ben/code/task3/sources/task3.move @@ -0,0 +1,61 @@ +module task3::nft { + + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"JoJo-Ben"), + description: string::utf8(b"JoJo-Ben NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/173065194?v=4" + ) + }; + transfer::public_transfer(nft, recipient); + } +} \ No newline at end of file diff --git a/mover/JoJo-Ben/code/task3/tests/task3_tests.move b/mover/JoJo-Ben/code/task3/tests/task3_tests.move new file mode 100644 index 000000000..d0f947751 --- /dev/null +++ b/mover/JoJo-Ben/code/task3/tests/task3_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task3::task3_tests { + // uncomment this line to import the module + // use task3::task3; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task3() { + // pass + } + + #[test, expected_failure(abort_code = ::task3::task3_tests::ENotImplemented)] + fun test_task3_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/JoJo-Ben/code/task4/Move.lock b/mover/JoJo-Ben/code/task4/Move.lock new file mode 100644 index 000000000..06ccbab66 --- /dev/null +++ b/mover/JoJo-Ben/code/task4/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "ED18027FE1E04C9C17AFCADBD07CCA64749BB3234A62A2FDA2C1172E7092CD17" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xfe0eff9fd4550b800461bd6301b5a74c9cc9aa8fd2bb50a88f209345ecc93a58" +latest-published-id = "0xfe0eff9fd4550b800461bd6301b5a74c9cc9aa8fd2bb50a88f209345ecc93a58" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x75fe2a4694c014297553990f59b56b29928391f52aeca4fa19fc95e517977072" +latest-published-id = "0x75fe2a4694c014297553990f59b56b29928391f52aeca4fa19fc95e517977072" +published-version = "1" diff --git a/mover/JoJo-Ben/code/task4/Move.toml b/mover/JoJo-Ben/code/task4/Move.toml new file mode 100644 index 000000000..86e124a47 --- /dev/null +++ b/mover/JoJo-Ben/code/task4/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task4" +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] +task4 = "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/JoJo-Ben/code/task4/sources/task4.move b/mover/JoJo-Ben/code/task4/sources/task4.move new file mode 100644 index 000000000..41b3dcc61 --- /dev/null +++ b/mover/JoJo-Ben/code/task4/sources/task4.move @@ -0,0 +1,25 @@ +module task4::game { + use std::string; + use sui::event; + use sui::random::{Self, Random}; + + public struct GameResultEvent has drop, copy { + user_guess: u8, + random_number: u8, + result: string::String, + } + + entry fun play(guess: u8, r: &Random, ctx: &mut TxContext) { + assert!(guess < 10, 0); + let mut generator = random::new_generator(r, ctx); + let random_number = random::generate_u8_in_range(&mut generator, 1, 10); + + let result = if (random_number == guess) { + string::utf8(b"you win") + } else { + string::utf8(b"you loss") + }; + + event::emit(GameResultEvent { user_guess: guess, random_number, result }); + } +} \ No newline at end of file diff --git a/mover/JoJo-Ben/code/task4/tests/task4_tests.move b/mover/JoJo-Ben/code/task4/tests/task4_tests.move new file mode 100644 index 000000000..321932cc6 --- /dev/null +++ b/mover/JoJo-Ben/code/task4/tests/task4_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task4::task4_tests { + // uncomment this line to import the module + // use task4::task4; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task4() { + // pass + } + + #[test, expected_failure(abort_code = ::task4::task4_tests::ENotImplemented)] + fun test_task4_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/JoJo-Ben/readme.md b/mover/JoJo-Ben/readme.md new file mode 100644 index 000000000..5e673b503 --- /dev/null +++ b/mover/JoJo-Ben/readme.md @@ -0,0 +1,47 @@ +## 基本信息 +- Sui钱包地址: `0xa82eccb5a3a5a3054338108a12ae70a749f101a6ce7f5b018f4d426e89b912d7` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `0xpaul0903` + +## 个人简介 +- 工作经验: 0年 +- 雖然我沒有編程經驗,但我對區塊鏈技術和加密貨幣產生了濃厚的興趣,我正在學習 Move 語言。 +- 联系方式: `18721658352@163.com` + +## 任务 + +## 01 hello move +- [x] (Testnet)package id: 0x37d0b44f047b31d69f7c3d0b1a0386cc1b5f2ceb0f364eab3e4f5d60d50eaf17 + +## 02 move coin +- [x] My Coin package id : 0xa8385516f66e045fe3c69179453c5b76855a141017ca622ae2516153e6622735 +- [x] Faucet package id : 0xa8385516f66e045fe3c69179453c5b76855a141017ca622ae2516153e6622735 +- [x] 转账 `My Coin` hash: BmvUTQXVhKsVrvfPfpqJZPBSqeoWEAApYGJ1TbKzKAWU + +## 03 move NFT +- [x] nft package id : 0x8bd45abe0784d12bfd12b20e9d7ac4c1f3b467ed49f69d57bffb2004d4a17003 +- [x] nft object id : 0xbeab697d0e12cbbde74ac27d245b2bea7e616672f19a4e47682ef6817ea18d2b +- [x] 转账 nft hash: FdJo9bUQLNkTBfTQU2JaHLr91iVLdH1xYxWNCnSP8vje + +## 04 Move Game +- [x] (testnet Random) game package id : 0xfe0eff9fd4550b800461bd6301b5a74c9cc9aa8fd2bb50a88f209345ecc93a58 +- [x] (testnet Random)call game hash: BjVbfXFM3VF7BaAc1qi6V71z2TFK5PSgHVD1mWfwJnbg +```bash +[warn] Client/Server api version mismatch, client api version : 1.27.0, server api version : 1.27.4 +Object 0x0000000000000000000000000000000000000000000000000000000000000008 does not exist +``` + +## 05 Move Swap +- [ ] swap package id : +- [ ] call swap hash: + +## 06 SDK PTB +- [ ] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图: ![CLI](./task7.png) +- [x] flag hash: 69roRD4wvpFhzFGT6UVkX8fZvhLnVAhbjV6WVFipmvo3 + +## 08 +- [x] proof: `75pi` +- [x] hash: ArVMrBAKPaTRsTTuAm9rbE5J1QNJNQsUHaH4RpAqS3B6 diff --git a/mover/JoJo-Ben/task7.png b/mover/JoJo-Ben/task7.png new file mode 100644 index 000000000..90085bcc4 Binary files /dev/null and b/mover/JoJo-Ben/task7.png differ diff --git a/mover/KyrinCode/tasks/4_move_game/call.sh b/mover/KyrinCode/tasks/4_move_game/call.sh index 9c4dd4a68..0063170ee 100755 --- a/mover/KyrinCode/tasks/4_move_game/call.sh +++ b/mover/KyrinCode/tasks/4_move_game/call.sh @@ -12,7 +12,7 @@ CLOCK=0x6 # --module kyrincode_game \ # --function get_faucet_coin \ # --args $TREASURY_CAP 1000000000 \ -# --gas-budget 100000000 +# # INPUT=0x627e8035c35043e85ef5e89573b428913326d8a4c3e9aec6ad75ed0dc7c85be1 @@ -21,7 +21,7 @@ CLOCK=0x6 # --module kyrincode_game \ # --function deposit \ # --args $GAME $INPUT 500000000 \ -# --gas-budget 100000000 +# INPUT=0x7d1f5a1a4923fee63b252bb77d78605ed3623cfb5a1d190aca5fffefcb6ed1ba @@ -30,4 +30,3 @@ sui client call --package $PACKAGE_ID \ --module kyrincode_game \ --function play \ --args 2 $GAME $INPUT $CLOCK \ - --gas-budget 100000000 \ No newline at end of file diff --git a/mover/KyrinCode/tasks/5_move_swap/call.sh b/mover/KyrinCode/tasks/5_move_swap/call.sh index b05f75d0b..af3ea31a5 100755 --- a/mover/KyrinCode/tasks/5_move_swap/call.sh +++ b/mover/KyrinCode/tasks/5_move_swap/call.sh @@ -17,7 +17,7 @@ KYRINCODE_FAUCET_COIN_TYPE=0xde2d0d163530740d7587d71d4e9503338c2a7596c221688311a # --function create_pool_with_coins_and_transfer_lp_to_sender \ # --type-args $KYRINCODE_COIN_TYPE $KYRINCODE_FAUCET_COIN_TYPE \ # --args $FACTORY $KYRINCODE_COIN $KYRINCODE_FAUCET_COIN \ -# --gas-budget 100000000 +# # swap kyrincode_coin for kyrincode_faucet_coin POOL=0x9d24a2bef83e531eb14d9fce977cd2caa7e415ccfc816cb8d305915b33389434 @@ -29,4 +29,3 @@ sui client call --package $PACKAGE_ID \ --function swap_a_for_b_with_coin_and_transfer_to_sender \ --type-args $KYRINCODE_COIN_TYPE $KYRINCODE_FAUCET_COIN_TYPE \ --args $POOL $KYRINCODE_COIN $MIN_OUT \ - --gas-budget 100000000 \ No newline at end of file diff --git a/mover/LYKore/code/readme.md b/mover/LYKore/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/LYKore/code/task1.move b/mover/LYKore/code/task1.move new file mode 100644 index 000000000..175447f2b --- /dev/null +++ b/mover/LYKore/code/task1.move @@ -0,0 +1,30 @@ +/* +/// Module: hello_world +module hello_world::hello_world { + +} +*/ + +module hello_world::hello_world { + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + /// 包含了任意字符串的 object + public struct HelloWorldObject has key, store { + id: UID, + /// 被 object 包含的字符串 + text: string::String + } + + public entry fun mint(ctx: &mut TxContext) { + let object = HelloWorldObject { + id: object::new(ctx), + text: string::utf8(b"Hello LYK0r4!") + }; + transfer::transfer(object, tx_context::sender(ctx)); + } + + +} \ No newline at end of file diff --git a/mover/LYKore/notes/readme.md b/mover/LYKore/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/LYKore/readme.assets/image-20240530123309237.png b/mover/LYKore/readme.assets/image-20240530123309237.png new file mode 100644 index 000000000..889696b98 Binary files /dev/null and b/mover/LYKore/readme.assets/image-20240530123309237.png differ diff --git a/mover/LYKore/readme.assets/image-20240530123342138.png b/mover/LYKore/readme.assets/image-20240530123342138.png new file mode 100644 index 000000000..1b048a5a5 Binary files /dev/null and b/mover/LYKore/readme.assets/image-20240530123342138.png differ diff --git a/mover/LYKore/readme.md b/mover/LYKore/readme.md new file mode 100644 index 000000000..549b93596 --- /dev/null +++ b/mover/LYKore/readme.md @@ -0,0 +1,46 @@ +## 基本信息 +- Sui钱包地址: `0x04197b770a0a10db7a10f07347be7885b8d25907029cfe827a145adb82677b5f` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `LYKore` + +## 个人简介 +- 工作经验: 0年 +- 技术栈: `php` `python` +> 重要提示 请认真写自己的简介 +- 对区块链安全感兴趣、对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `https://t.me/LYK0r4` + +## 任务 + +## 01 hello move +- [√] Sui cli version:1.26.0-d709c305ebf3 +- [√] Sui钱包截图: ![image-20240530123342138](./readme.assets/image-20240530123342138.png) +- [√] package id: 0x4c141fb942944b2a0823aff9990fa2b7b6895b428816c18886b03603bf963a3e +- [√] package id 在 scan上的查看截图:![image-20240530123309237](./readme.assets/image-20240530123309237.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : diff --git a/mover/Lindappi/code/coin_faucet/Move.toml b/mover/Lindappi/code/coin_faucet/Move.toml new file mode 100644 index 000000000..29218a00e --- /dev/null +++ b/mover/Lindappi/code/coin_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "coin_faucet" +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] +coin_faucet = "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/Lindappi/code/coin_faucet/sources/coin.move b/mover/Lindappi/code/coin_faucet/sources/coin.move new file mode 100644 index 000000000..42cbc5832 --- /dev/null +++ b/mover/Lindappi/code/coin_faucet/sources/coin.move @@ -0,0 +1,26 @@ +module coin_faucet::lindappi_coin { + use sui::coin; + use sui::coin::{TreasuryCap}; + use sui::transfer::{public_transfer, public_freeze_object}; + + public struct LINDAPPI_COIN has drop{} + fun init(witness: LINDAPPI_COIN, ctx: &mut TxContext){ + let (treasuryCap, denyCap ,metadata) = coin::create_regulated_currency( + witness, + 8, + b"LINDAPPI", + b"LINDAPPI Coin", + b"move coin", + option::none(), + ctx + ); + public_transfer(treasuryCap, tx_context::sender(ctx)); + public_transfer(denyCap, tx_context::sender(ctx)); + public_freeze_object(metadata); + } + + public entry fun mint(cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext){ + let coin = coin::mint(cap, amount, ctx); + public_transfer(coin, recipient); + } +} \ No newline at end of file diff --git a/mover/Lindappi/code/coin_faucet/sources/faucet.move b/mover/Lindappi/code/coin_faucet/sources/faucet.move new file mode 100644 index 000000000..f1fb2778e --- /dev/null +++ b/mover/Lindappi/code/coin_faucet/sources/faucet.move @@ -0,0 +1,24 @@ +module coin_faucet::lindappi_faucet_coin { + use sui::coin; + use sui::coin::TreasuryCap; + use sui::transfer::{ public_share_object, public_freeze_object}; + + public struct LINDAPPI_FAUCET_COIN has drop{} + fun init(witness: LINDAPPI_FAUCET_COIN, ctx: &mut TxContext){ + let (treasury, metadata) = coin::create_currency( + witness, + 8, + b"LINDAPPI_PUBLIC", + b"lindappi Faucet coin", + b"test faucet coin", + option::none(), + ctx + ); + public_share_object(treasury); + public_freeze_object(metadata); + } + + public entry fun mint(cap: &mut TreasuryCap, value: u64, recipient: address, ctx: &mut TxContext){ + coin::mint_and_transfer(cap, value, recipient, ctx); + } +} \ No newline at end of file diff --git a/mover/Lindappi/code/hello_move/Move.toml b/mover/Lindappi/code/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/Lindappi/code/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/Lindappi/code/hello_move/sources/hello_move.move b/mover/Lindappi/code/hello_move/sources/hello_move.move new file mode 100644 index 000000000..ad9b8e5ac --- /dev/null +++ b/mover/Lindappi/code/hello_move/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello_move { + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct HelloObj has key, store { + id: UID, + say: string::String + } + + public fun mint(ctx: &mut TxContext) { + let object = HelloObj { + id: object::new(ctx), + say: string::utf8(b"Hello Lindappi!") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } +} diff --git a/mover/Lindappi/code/move_game/Move.toml b/mover/Lindappi/code/move_game/Move.toml new file mode 100644 index 000000000..a304d31a7 --- /dev/null +++ b/mover/Lindappi/code/move_game/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "move_game" +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] +move_game = "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/Lindappi/code/move_game/sources/move_game.move b/mover/Lindappi/code/move_game/sources/move_game.move new file mode 100644 index 000000000..a7c2dcc4a --- /dev/null +++ b/mover/Lindappi/code/move_game/sources/move_game.move @@ -0,0 +1,170 @@ +module move_game::lindappi_game { + use std::string::{Self, String}; + use sui::event; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin}; + use sui::tx_context::sender; + use std::hash; + use sui::bcs; + + const EPoolNotEnough: u64 = 1; + const EInputNotEnough: u64 = 2; + const ERR_HIGH_ARG_GREATER_THAN_LOW_ARG: u64 = 101; + + public struct GameResult has copy, drop { + result: String, + is_winner: bool, + } + + public struct Game has key { + id: UID, + pool: Balance, + ticket: u64, + reward: u64, + } + + public struct SpinResult has copy, drop, store { + spin1: u8, + spin2: u8, + spin3: u8, + } + + public fun game_pool(game: &Game): u64 { + balance::value(&game.pool) + } + + public fun game_ticket(game: &Game): u64 { + game.ticket + } + + public fun game_reward(game: &Game): u64 { + game.reward + } + + public struct AdminCap has key { + id: UID, + } + + fun init(_ctx: &mut TxContext) { + } + + entry fun creat_game(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + pool: balance::zero(), + ticket: 1000, + reward: 2000, + }; + transfer::share_object(game); + + let admin_cap = AdminCap { id: object::new(ctx) }; + transfer::transfer(admin_cap, sender(ctx)); + } + + fun get_spin_result(ctx: &mut TxContext) : SpinResult { + let spin1 = (rand_u64_range(0, 5, ctx) as u8); + let spin2 = (rand_u64_range(0, 5, ctx) as u8); + let spin3 = (rand_u64_range(0, 5, ctx) as u8); + SpinResult { spin1, spin2, spin3 } + } + + public entry fun play(game: &mut Game, input: Coin, ctx: &mut TxContext) { + assert!(balance::value(&game.pool) >= game.reward - game.ticket, EPoolNotEnough); + + let player_spins = get_spin_result(ctx); + let winning_combination = SpinResult { spin1: 2, spin2: 2, spin3: 2 }; + + let input_value = coin::value(&input); + assert!(input_value >= game.ticket, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > game.ticket) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, game.ticket) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + }; + + let (result, is_winner) = if (player_spins.spin1 == winning_combination.spin1 && player_spins.spin2 == winning_combination.spin2 && player_spins.spin3 == winning_combination.spin3) { + ( string::utf8(b"Congratulations, you hit the jackpot! Collect your coins😄"), true) + } else { + ( string::utf8(b"Try again, better luck next time!💔"), false) + }; + + if (is_winner) { + let reward_balance = balance::split(&mut game.pool, game.reward); + let reward = coin::from_balance(reward_balance, ctx); + transfer::public_transfer(reward, sender(ctx)); + }; + + event::emit(GameResult { + result, + is_winner, + }); + } + + public entry fun deposit(game: &mut Game, input: Coin, amount: u64, ctx: &mut TxContext) { + let input_value = coin::value(&input); + assert!(input_value >= amount, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > amount) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, amount) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + } + } + + public entry fun withdraw(_: &AdminCap, game: &mut Game, amount: u64, ctx: &mut TxContext) { + let output_balance = balance::split(&mut game.pool, amount); + let output = coin::from_balance(output_balance, ctx); + transfer::public_transfer(output, sender(ctx)); + } + + fun seed(ctx: &mut TxContext): vector { + let ctx_bytes = bcs::to_bytes(ctx); + let uid = object::new(ctx); + let uid_bytes: vector = object::uid_to_bytes(&uid); + object::delete(uid); + + let mut info: vector = vector::empty(); + vector::append(&mut info, ctx_bytes); + vector::append(&mut info, uid_bytes); + + let hash: vector = hash::sha3_256(info); + hash + } + + fun bytes_to_u64(bytes: vector): u64 { + let mut value = 0u64; + let mut i = 0u64; + while (i < 8) { + value = value | ((*vector::borrow(&bytes, i) as u64) << ((8 * (7 - i)) as u8)); + i = i + 1; + }; + return value + } + + fun rand_u64_with_seed(_seed: vector): u64 { + bytes_to_u64(_seed) + } + + fun rand_u64_range_with_seed(_seed: vector, low: u64, high: u64): u64 { + assert!(high > low, ERR_HIGH_ARG_GREATER_THAN_LOW_ARG); + let value = rand_u64_with_seed(_seed); + (value % (high - low)) + low + } + + public fun rand_u64_range(low: u64, high: u64, ctx: &mut TxContext): u64 { + rand_u64_range_with_seed(seed(ctx), low, high) + } +} \ No newline at end of file diff --git a/mover/Lindappi/code/nft/Move.toml b/mover/Lindappi/code/nft/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/Lindappi/code/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/Lindappi/code/nft/sources/nft.move b/mover/Lindappi/code/nft/sources/nft.move new file mode 100644 index 000000000..45ea0d9fd --- /dev/null +++ b/mover/Lindappi/code/nft/sources/nft.move @@ -0,0 +1,47 @@ +module nft::lindappi_nft { + use std::ascii::String; + use std::string::utf8; + use sui::display; + use sui::object; + use sui::object::{UID}; + use sui::package; + use sui::transfer; + use sui::transfer::public_transfer; + use sui::tx_context; + use sui::tx_context::{TxContext}; + + public struct LINDAPPI_NFT has drop {} + + public struct NFT has key,store { + id: UID, + name: String, + } + + fun init(otw: LINDAPPI_NFT, ctx: &mut sui::tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://avatars.githubusercontent.com/u/169317529"), + ]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values,ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + public entry fun mint_to(name: String, recipient: address,ctx: &mut TxContext) { + let nft = NFT{ + id: object::new(ctx), + name, + }; + public_transfer(nft, recipient) + } +} \ No newline at end of file diff --git a/mover/Lindappi/code/readme.md b/mover/Lindappi/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Lindappi/code/sdk/index.html b/mover/Lindappi/code/sdk/index.html new file mode 100644 index 000000000..251e0801f --- /dev/null +++ b/mover/Lindappi/code/sdk/index.html @@ -0,0 +1,12 @@ + + + + + + SDK Help + + +
+ + + diff --git a/mover/Lindappi/code/sdk/package.json b/mover/Lindappi/code/sdk/package.json new file mode 100644 index 000000000..076a96228 --- /dev/null +++ b/mover/Lindappi/code/sdk/package.json @@ -0,0 +1,24 @@ +{ + "name": "with-vite", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --port 3000" + }, + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@suiet/wallet-kit": "0.2.24", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tweetnacl": "^1.0.3", + "navi-sdk": "^1.1.21" + }, + "devDependencies": { + "@types/react": "^18.0.22", + "@types/react-dom": "^18.0.7", + "@vitejs/plugin-react": "^2.2.0", + "typescript": "^5.4.3", + "vite": "^3.2.7" + } +} diff --git a/mover/Lindappi/code/sdk/src/App.css b/mover/Lindappi/code/sdk/src/App.css new file mode 100644 index 000000000..ac87691e7 --- /dev/null +++ b/mover/Lindappi/code/sdk/src/App.css @@ -0,0 +1,43 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +.card { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 2em; +} + +.read-the-docs { + color: #888; +} + +.btn-group button+button{ + margin-left: 12px; +} \ No newline at end of file diff --git a/mover/Lindappi/code/sdk/src/App.tsx b/mover/Lindappi/code/sdk/src/App.tsx new file mode 100644 index 000000000..eb6a8644a --- /dev/null +++ b/mover/Lindappi/code/sdk/src/App.tsx @@ -0,0 +1,114 @@ +import "./App.css"; +import { + ConnectButton, + useAccountBalance, + useWallet, + ErrorCode, + formatSUI, +} from "@suiet/wallet-kit"; +import "@suiet/wallet-kit/style.css"; +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import {depositCoin, borrowCoin} from 'navi-sdk/dist/libs/PTB' +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from 'navi-sdk/dist/address' +import {Sui, USDC} from 'navi-sdk/dist/address'; + +function App() { + const wallet = useWallet(); + const { balance } = useAccountBalance(); + + function uint8arrayToHex(value: Uint8Array | undefined) { + if (!value) return ""; + // @ts-ignore + return value.toString("hex"); + } + + async function handleNAVISDK() { + if (!wallet.account) return; + const account = wallet.account; + const sender = account.address; + try { + let txb = new TransactionBlock(); + txb.setSender(sender); + + let getCoinInfo = balance; + if (!getCoinInfo) { + throw new Error("Insufficient balance"); + } + + let deposit_amount = 1e9; + let sui_symbol = Sui.symbol; + const pool_sui: PoolConfig = pool[sui_symbol as keyof Pool]; + const [to_deposit] = txb.splitCoins(txb.gas, [deposit_amount]); + await depositCoin(txb, pool_sui, to_deposit, deposit_amount); + + let borrow_amount = 0.071009 * 1e6; + let usdc_symbol = USDC.symbol; + const pool_usdc: PoolConfig = pool[usdc_symbol as keyof Pool]; + const [borrow_coin] = await borrowCoin(txb, pool_usdc, borrow_amount); + + await depositCoin(txb, pool_usdc, borrow_coin, borrow_amount); + + const resData = await wallet.signAndExecuteTransactionBlock({ + transactionBlock: txb, + }); + console.log("transaction digest: " + JSON.stringify(resData)); + } catch (e) { + console.error("failed", e); + alert("failed (see response in the console)"); + } + } + + return ( +
+
+ { + if (error.code === ErrorCode.WALLET__CONNECT_ERROR__USER_REJECTED) { + console.warn( + "user rejected the connection to " + error.details?.wallet + ); + } else { + console.warn("unknown connect error: ", error); + } + }} + /> + + {!wallet.connected ? ( +

Connect wallet from now!

+ ) : ( +
+
+

current wallet: {wallet.adapter?.name}

+

+ wallet status:{" "} + {wallet.connecting + ? "connecting" + : wallet.connected + ? "connected" + : "disconnected"} +

+

wallet address: {wallet.account?.address}

+

current network: {wallet.chain?.name}

+

+ wallet balance:{" "} + {formatSUI(balance ?? 0, { + withAbbr: false, + })}{" "} + SUI +

+

+ wallet publicKey: {uint8arrayToHex(wallet.account?.publicKey)} +

+
+
+ +
+
+ )} +
+
+ ); +} + +export default App; diff --git a/mover/Lindappi/code/sdk/src/index.css b/mover/Lindappi/code/sdk/src/index.css new file mode 100644 index 000000000..41bc8b138 --- /dev/null +++ b/mover/Lindappi/code/sdk/src/index.css @@ -0,0 +1,64 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} + + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/mover/Lindappi/code/sdk/src/main.tsx b/mover/Lindappi/code/sdk/src/main.tsx new file mode 100644 index 000000000..b27eb00c3 --- /dev/null +++ b/mover/Lindappi/code/sdk/src/main.tsx @@ -0,0 +1,16 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +import { + WalletProvider, +} from '@suiet/wallet-kit'; + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + + + +) diff --git a/mover/Lindappi/code/sdk/tsconfig.json b/mover/Lindappi/code/sdk/tsconfig.json new file mode 100644 index 000000000..3d0a51a86 --- /dev/null +++ b/mover/Lindappi/code/sdk/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/Lindappi/code/sdk/tsconfig.node.json b/mover/Lindappi/code/sdk/tsconfig.node.json new file mode 100644 index 000000000..9d31e2aed --- /dev/null +++ b/mover/Lindappi/code/sdk/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/Lindappi/code/sdk/vite.config.ts b/mover/Lindappi/code/sdk/vite.config.ts new file mode 100644 index 000000000..55ef63119 --- /dev/null +++ b/mover/Lindappi/code/sdk/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + build: { + target: 'es2020' + }, + optimizeDeps: { + esbuildOptions: { + target: 'es2020', + define: { + global: 'globalThis', + }, + }, + }, +}) diff --git a/mover/Lindappi/code/swap/Move.toml b/mover/Lindappi/code/swap/Move.toml new file mode 100644 index 000000000..aa7dab9a2 --- /dev/null +++ b/mover/Lindappi/code/swap/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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 (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] +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" + diff --git a/mover/Lindappi/code/swap/sources/swap.move b/mover/Lindappi/code/swap/sources/swap.move new file mode 100644 index 000000000..ad9eb254b --- /dev/null +++ b/mover/Lindappi/code/swap/sources/swap.move @@ -0,0 +1,312 @@ +module swap::lindappi_swap { + use sui::object::{Self, UID}; + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply, Balance}; + use sui::transfer; + use sui::math; + use sui::tx_context::{Self, TxContext}; + + /// For when supplied Coin is zero. + const EZeroAmount: u64 = 0; + + /// For when someone tries to swap in an empty pool. + const EReservesEmpty: u64 = 2; + + /// For when someone attempts to add more liquidity than u128 Math allows. + const EPoolFull: u64 = 4; + + /// The integer scaling setting for fees calculation. + const FEE_SCALING: u128 = 10000; + + /// The fee percent that will be taken from the swap. + /// Set to 0.3%. + const FEE_PERCENT: u128 = 30; + + /// The max value that can be held in one of the Balances of + /// a Pool. U64 MAX / FEE_SCALING + const MAX_POOL_VALUE: u64 = { + 18446744073709551615 / 10000 + }; + + /// The Pool token that will be used to mark the pool share + /// of a liquidity provider. + /// The first type parameter stands for the witness type of a pool. + /// The seconds and thirds is for the coin held in the pool. + public struct LSP has drop {} + + /// The pool with exchange. + /// + /// - `fee_percent` should be in the range: [0-10000), meaning + /// that 10000 is 100% and 1 is 0.01% + public struct Pool has key { + id: UID, + token_a: Balance, + token_b: Balance, + lsp_supply: Supply>, + /// Fee Percent is denominated in basis points. + fee_percent: u64 + } + + + /// ======================================================================= + /// ============================= 初始化函数 =============================== + /// ======================================================================= + + /// Module initializer is empty - to publish a new Pool one has + /// to create a type which will mark LSPs. + fun init(_: &mut TxContext) { + } + + /// ======================================================================= + /// ============================= 流动性池 ================================= + /// ======================================================================= + + entry fun create_pool ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + create_pool_inner(token_a, token_b, ctx), + tx_context::sender(ctx) + ); + } + + fun create_pool_inner ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + let fee_percent = (FEE_PERCENT as u64); + + let token_a_amt = coin::value(&token_a); + let token_b_amt = coin::value(&token_b); + + assert!(token_a_amt > 0 && token_b_amt > 0, EZeroAmount); + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let share = math::sqrt(token_a_amt) * math::sqrt(token_b_amt); + let mut lsp_supply = balance::create_supply(LSP {}); + let lsp = balance::increase_supply(&mut lsp_supply, share); + + transfer::share_object(Pool { + id: object::new(ctx), + token_a: coin::into_balance(token_a), + token_b: coin::into_balance(token_b), + lsp_supply, + fee_percent, + }); + + coin::from_balance(lsp, ctx) + } + + entry fun add_liquidity ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + add_liquidity_inner(pool, token_a, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun add_liquidity_inner ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + assert!(coin::value(&token_a) > 0 && coin::value(&token_b) > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, lsp_supply) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_balance = coin::into_balance(token_a); + let token_b_balance = coin::into_balance(token_b); + + let token_a_added = balance::value(&token_a_balance); + let token_b_added = balance::value(&token_b_balance); + + // XXX - 可以对新增的流动性进行计算,查看比值是否和原来的比值一致 + // assert!(token_a_added * token_b_amt == token_b_added * token_a_amt, EWrongFee); + // assert!(math::abs_diff(token_a_added * token_b_amt, token_b_added * token_a_amt) < 100, EWrongFee); + + let share_minted = math::min( + (token_a_added * lsp_supply) / token_a_amt, + (token_b_added * lsp_supply) / token_b_amt + ); + + let token_a_amt = balance::join(&mut pool.token_a, token_a_balance); + let token_b_amt = balance::join(&mut pool.token_b, token_b_balance); + + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let balance = balance::increase_supply(&mut pool.lsp_supply, share_minted); + + coin::from_balance(balance, ctx) + } + + entry fun remove_liquidity ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ) { + let (token_a, token_b) = remove_liquidity_inner(pool, lsp, ctx); + let sender = tx_context::sender(ctx); + + transfer::public_transfer(token_a, sender); + transfer::public_transfer(token_b, sender); + } + + fun remove_liquidity_inner ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ): (Coin, Coin) { + let lsp_amount = coin::value(&lsp); + assert!(lsp_amount > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, total_supply) = get_amounts(pool); + + let token_a = (token_a_amt * lsp_amount) / total_supply; + let token_b = (token_b_amt * lsp_amount) / total_supply; + + balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); + + ( + coin::take(&mut pool.token_a, token_a, ctx), + coin::take(&mut pool.token_b, token_b, ctx), + ) + } + + /// ======================================================================= + /// ============================= 交易函数 ================================= + /// ======================================================================= + + entry fun swap_a_to_b ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_a_to_b_inner(pool, token_a, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_a_to_b_inner ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ): Coin { + let token_a_amt = coin::value(&token_a); + assert!(token_a_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_b_amt = sell_token_a(pool, token_a_amt); + + balance::join(&mut pool.token_a, coin::into_balance(token_a)); + + coin::take(&mut pool.token_b, token_b_amt, ctx) + } + + entry fun swap_b_to_a ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_b_to_a_inner(pool, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_b_to_a_inner ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ): Coin { + let token_b_amt = coin::value(&token_b); + assert!(token_b_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_amt = sell_token_b(pool, token_b_amt); + + balance::join(&mut pool.token_b, coin::into_balance(token_b)); + + coin::take(&mut pool.token_a, token_a_amt, ctx) + } + + /// ======================================================================= + /// ============================= 辅助函数 ================================= + /// ======================================================================= + + /// 计算售出指定数量的 Token A,会得到多少数量的 Token B + public fun sell_token_a(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_a_amt, + token_b_amt, + pool.fee_percent + ) + } + + /// 计算售出指定数量的 Token B,会得到多少数量的 Token A + public fun sell_token_b(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_b_amt, + token_a_amt, + pool.fee_percent + ) + } + + /// Get most used values in a handy way: + /// - amount of token a + /// - amount of token b + /// - total supply of LSP + public fun get_amounts(pool: &Pool): (u64, u64, u64) { + ( + balance::value(&pool.token_a), + balance::value(&pool.token_b), + balance::supply_value(&pool.lsp_supply), + ) + } + + public fun calc_output_amount( + input_amount: u64, + input_reserve: u64, + output_reserve: u64, + fee_percent: u64 + ): u64 { + let ( + input_amount, + input_reserve, + output_reserve, + fee_percent + ) = ( + (input_amount as u128), + (input_reserve as u128), + (output_reserve as u128), + (fee_percent as u128), + ); + + // 计算手续费后的输入数量 + let input_with_fee = input_amount * FEE_SCALING / (FEE_SCALING - fee_percent); + + // 根据公式 (x + dx) * (y - dy) = k + // 得到 dy = y - k / (x + dx) + let total = input_reserve * output_reserve; + let output_amount = output_reserve - total / (input_reserve + input_with_fee); + + (output_amount as u64) + } +} diff --git a/mover/Lindappi/img/2024-06-26-10.png b/mover/Lindappi/img/2024-06-26-10.png new file mode 100644 index 000000000..aa1fe2953 Binary files /dev/null and b/mover/Lindappi/img/2024-06-26-10.png differ diff --git a/mover/Lindappi/img/2024-06-26-11.png b/mover/Lindappi/img/2024-06-26-11.png new file mode 100644 index 000000000..466d16f7a Binary files /dev/null and b/mover/Lindappi/img/2024-06-26-11.png differ diff --git a/mover/Lindappi/img/2024-07-03-00.png b/mover/Lindappi/img/2024-07-03-00.png new file mode 100644 index 000000000..4f571c319 Binary files /dev/null and b/mover/Lindappi/img/2024-07-03-00.png differ diff --git a/mover/Lindappi/img/2024-07-10-03.png b/mover/Lindappi/img/2024-07-10-03.png new file mode 100644 index 000000000..4a792f5e0 Binary files /dev/null and b/mover/Lindappi/img/2024-07-10-03.png differ diff --git a/mover/Lindappi/notes/readme.md b/mover/Lindappi/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Lindappi/readme.md b/mover/Lindappi/readme.md new file mode 100644 index 000000000..c8b8c1cbc --- /dev/null +++ b/mover/Lindappi/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x7d2ed7bea7b4e7651532e4af48d9213e8ad914953edc159262b686cd56588089` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `Lindappi` + +## 个人简介 +- 工作经验: 4年 +- 技术栈: `Python Golang` +> 重要提示 请认真写自己的简介 +- cv从业者,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `lindahaoo` + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.27.2 +- [x] Sui钱包截图: ![Sui钱包截图](./img/2024-06-26-10.png) +- [x] package id: `0x0b7fc98b6475b5e73c2fde3e14cdce24a82b93971e376469a6d2b7e85074602c` +- [x] package id 在 scan上的查看截图:![Scan截图](./img/2024-06-26-11.png) + +## 02 move coin +- [x] My Coin package id : 0x1b6d787e6bb158468ef48f46ba486b03e4d386d7f0a5611b90edda28bc3b8c30 +- [x] Faucet package id : 0x1b6d787e6bb158468ef48f46ba486b03e4d386d7f0a5611b90edda28bc3b8c30 +- [x] 转账 `My Coin` hash: 5x7kHFtAWvRCC8vaVzv4JZGPZZ4AHUarDczj6HuTidx4 +- [x] `Faucet Coin` address1 mint hash: 39NsHGG6Rb91NgWQYm2zjW1hHMfndoih91M3WieYDaer +- [x] `Faucet Coin` address2 mint hash: HBAFDcMFzFyWkNsy2zEtUq8jPC4fg5DwtUWrCwJsTfbr + +## 03 move NFT +- [x] nft package id : 0xc61d7c8591137a9cfd5245a4af90daf8e41bf87c6c3b1f660bb88f5b0cb7017f +- [x] nft object id : 0x7423e4fd519dc2878dbee08465b3e54f104f401e053c2b58fae7211c38dc66dc +- [x] 转账 nft hash: BofkFAg64ihyaBRnSwaQMRjDwLriqxW1Zz8gSuSTHwW2 +- [x] scan上的NFT截图:![Scan截图](./img/2024-07-03-00.png) + +## 04 Move Game +- [x] game package id : 0x6d29f512d16a33a6b84486e50105ff7b4b8d20313f62b9ffab19d15158b18aba +- [x] deposit Coin hash: DZPdmWDMtnLKcygChxaZPvsFGucYeZDv4igwfMPa2QeP +- [x] withdraw `Coin` hash: CXNmcixGxiiwRWurPHCWTAMWYDHXaCkyeDHQ8XWMNkoo +- [x] play game hash: 9v8CkmG3xe2iyLgGmUV7Mdh4xnzDZVLUi6qXGM7vfgy2 + +## 05 Move Swap +- [x] swap package id : 0xc119c1ae60b8f1bb675b2f2db0a4c20111b64d2aa13d8d82796f7e1944947e23 +- [x] call swap CoinA-> CoinB hash : 7NJWqJ2DXxEvVzybSJYomQTm4qjkn8Vv3soMwo2fxbep +- [x] call swap CoinB-> CoinA hash : EzCNrUPMpF5gDze39yDFNGKThXcM9ZgcadDBsB1AbjWn + +## 06 Dapp-kit SDK PTB +- [x] save hash : JC6UazsupRunhSQgwCW6g3Rj9zEfEfMH57YKXW8YXh2R + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./img/2024-07-10-03.png) +- [x] flag hash : 8BRtdL6sckRfWrmyM38QGCrcu1vyEUPn5j7UV3FgCqT3 + +## 08 Move CTF Lets Move +- [x] proof : b3819797fb665b05fa15 +- [x] flag hash : 7WNKXKmBvzXPqdHgsoHv2PGzjGYydaawbZPHkm8Aw7mh diff --git a/mover/Linyuqiz/code/task1/Move.toml b/mover/Linyuqiz/code/task1/Move.toml new file mode 100644 index 000000000..f6bf62a02 --- /dev/null +++ b/mover/Linyuqiz/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello" +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] +hello = "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/Linyuqiz/code/task1/sources/hello.move b/mover/Linyuqiz/code/task1/sources/hello.move new file mode 100644 index 000000000..6062bfe0e --- /dev/null +++ b/mover/Linyuqiz/code/task1/sources/hello.move @@ -0,0 +1,17 @@ +/// Module: hello +module hello::Hello { + use std::ascii::{String, string}; + use sui::transfer::transfer; + + public struct Hello has key, store { + id: UID, + content: String + } + + fun init(ctx: &mut TxContext) { + transfer(Hello { + id: object::new(ctx), + content: string(b"Hello, Move!"), + }, tx_context::sender(ctx)) + } +} diff --git a/mover/Linyuqiz/notes/ task1-img/image-1.png b/mover/Linyuqiz/notes/ task1-img/image-1.png new file mode 100644 index 000000000..c12490e8e Binary files /dev/null and b/mover/Linyuqiz/notes/ task1-img/image-1.png differ diff --git a/mover/Linyuqiz/notes/ task1-img/image-2.png b/mover/Linyuqiz/notes/ task1-img/image-2.png new file mode 100644 index 000000000..806eb2a2e Binary files /dev/null and b/mover/Linyuqiz/notes/ task1-img/image-2.png differ diff --git a/mover/Linyuqiz/notes/ task1-img/image-3.png b/mover/Linyuqiz/notes/ task1-img/image-3.png new file mode 100644 index 000000000..4b962aeae Binary files /dev/null and b/mover/Linyuqiz/notes/ task1-img/image-3.png differ diff --git a/mover/Linyuqiz/notes/ task1-img/image-4.png b/mover/Linyuqiz/notes/ task1-img/image-4.png new file mode 100644 index 000000000..fba6e215c Binary files /dev/null and b/mover/Linyuqiz/notes/ task1-img/image-4.png differ diff --git a/mover/Linyuqiz/notes/ task1-img/image-5.png b/mover/Linyuqiz/notes/ task1-img/image-5.png new file mode 100644 index 000000000..f0dceffaf Binary files /dev/null and b/mover/Linyuqiz/notes/ task1-img/image-5.png differ diff --git a/mover/Linyuqiz/notes/ task1-img/image.png b/mover/Linyuqiz/notes/ task1-img/image.png new file mode 100644 index 000000000..724bf8f3a Binary files /dev/null and b/mover/Linyuqiz/notes/ task1-img/image.png differ diff --git a/mover/Linyuqiz/notes/task1-img/image-1.png b/mover/Linyuqiz/notes/task1-img/image-1.png new file mode 100644 index 000000000..c12490e8e Binary files /dev/null and b/mover/Linyuqiz/notes/task1-img/image-1.png differ diff --git a/mover/Linyuqiz/notes/task1-img/image-2.png b/mover/Linyuqiz/notes/task1-img/image-2.png new file mode 100644 index 000000000..806eb2a2e Binary files /dev/null and b/mover/Linyuqiz/notes/task1-img/image-2.png differ diff --git a/mover/Linyuqiz/notes/task1-img/image-3.png b/mover/Linyuqiz/notes/task1-img/image-3.png new file mode 100644 index 000000000..4b962aeae Binary files /dev/null and b/mover/Linyuqiz/notes/task1-img/image-3.png differ diff --git a/mover/Linyuqiz/notes/task1-img/image-4.png b/mover/Linyuqiz/notes/task1-img/image-4.png new file mode 100644 index 000000000..fba6e215c Binary files /dev/null and b/mover/Linyuqiz/notes/task1-img/image-4.png differ diff --git a/mover/Linyuqiz/notes/task1-img/image-5.png b/mover/Linyuqiz/notes/task1-img/image-5.png new file mode 100644 index 000000000..f0dceffaf Binary files /dev/null and b/mover/Linyuqiz/notes/task1-img/image-5.png differ diff --git a/mover/Linyuqiz/notes/task1-img/image.png b/mover/Linyuqiz/notes/task1-img/image.png new file mode 100644 index 000000000..724bf8f3a Binary files /dev/null and b/mover/Linyuqiz/notes/task1-img/image.png differ diff --git a/mover/Linyuqiz/notes/task1.md b/mover/Linyuqiz/notes/task1.md new file mode 100644 index 000000000..5b559d86f --- /dev/null +++ b/mover/Linyuqiz/notes/task1.md @@ -0,0 +1,50 @@ +# Task 1 - Hello Move + +## 1. Sui Cli 版本 +![alt text](image.png) + +## 2. 创建 Move 项目 +``` +sui move new hello +``` + +## 3. 编译 Move 项目 +``` +sui move build +``` + +## 4. 编写 Hello Move 合约 +```move +module hello::Hello { + use std::ascii::{String, string}; + use sui::transfer::transfer; + + public struct Hello has key, store { + id: UID, + content: String + } + + fun init(ctx: &mut TxContext) { + transfer(Hello { + id: object::new(ctx), + content: string(b"Hello, Move!"), + }, tx_context::sender(ctx)) + } +} +``` + +## 5. 初始化本地 Move 环境 +![alt text](./%20task1-img/image-1.png) + +## 6. Sui 测试账户地址 +![alt text](./%20task1-img/image-2.png) + +## 7. 领取测试币 +![alt text](./%20task1-img/image-3.png) + +## 8. 部署 Hello Move 合约 +![alt text](./%20task1-img/image-4.png) + +## 9. 查看 Hello Move 合约 +https://testnet.suivision.xyz/txblock/4CeGpVB7rFM5WTSuzRztUqJcnWAW4SzMMr3JNRaVfgV3 +![alt text](./%20task1-img/image-5.png) \ No newline at end of file diff --git a/mover/Linyuqiz/readme.md b/mover/Linyuqiz/readme.md new file mode 100644 index 000000000..d2bc6cb62 --- /dev/null +++ b/mover/Linyuqiz/readme.md @@ -0,0 +1,15 @@ +# 基本信息 + +- Sui钱包地址: `0xfe875699b98d93ba103aacd186b8cd59fd832e724a909cdc79aaf07282e9cf4a` + +- github: `Linyuqiz` + +## 个人简介 + +- 工作经验: 2年 +- 技术栈: `golang: 1.5年` `javascript: 0.5年` +- 希望可以从 Move 方向入门并从事区块链工作 +- 联系方式: + +## Task 1: Hello Move +- package id: 4CeGpVB7rFM5WTSuzRztUqJcnWAW4SzMMr3JNRaVfgV3 diff --git a/mover/LittleMoreInteresting/code/task1/hello/Move.lock b/mover/LittleMoreInteresting/code/task1/hello/Move.lock new file mode 100644 index 000000000..08856650c --- /dev/null +++ b/mover/LittleMoreInteresting/code/task1/hello/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "23C730475A68F1E6BEDDB2CD78A3EB131C4A59425643F732B34CA8F439B08D68" +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.28.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x717446bd0e6665b47235a322984a238aab92944e3e0a22d08295ba6b5425b50c" +latest-published-id = "0x717446bd0e6665b47235a322984a238aab92944e3e0a22d08295ba6b5425b50c" +published-version = "1" diff --git a/mover/LittleMoreInteresting/code/task1/hello/Move.toml b/mover/LittleMoreInteresting/code/task1/hello/Move.toml new file mode 100644 index 000000000..aecda2430 --- /dev/null +++ b/mover/LittleMoreInteresting/code/task1/hello/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello" +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] +hello = "0x467a752e1c00d3ac1a310af4e19859b5a0b84d33c46c3987667139a8cf0a3d22" + +# 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/LittleMoreInteresting/code/task1/hello/sources/hello.move b/mover/LittleMoreInteresting/code/task1/hello/sources/hello.move new file mode 100644 index 000000000..15d3fc0de --- /dev/null +++ b/mover/LittleMoreInteresting/code/task1/hello/sources/hello.move @@ -0,0 +1,19 @@ +module hello::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"move"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/LittleMoreInteresting/code/task2/mycoin/Move.lock b/mover/LittleMoreInteresting/code/task2/mycoin/Move.lock new file mode 100644 index 000000000..e66ec6d0e --- /dev/null +++ b/mover/LittleMoreInteresting/code/task2/mycoin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "1393B3A86BC22B7FE61E23DBB2EF7BE1A330BF07AB402600F7E7CFF6E9DC82F9" +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.28.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xf53217205ce6091a49095499e42b59c8396864eea961a9849e0578087deb9c3b" +latest-published-id = "0xf53217205ce6091a49095499e42b59c8396864eea961a9849e0578087deb9c3b" +published-version = "1" diff --git a/mover/LittleMoreInteresting/code/task2/mycoin/Move.toml b/mover/LittleMoreInteresting/code/task2/mycoin/Move.toml new file mode 100644 index 000000000..e77f86f6a --- /dev/null +++ b/mover/LittleMoreInteresting/code/task2/mycoin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "mycoin" +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] +mycoin = "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/LittleMoreInteresting/code/task2/mycoin/readme.md b/mover/LittleMoreInteresting/code/task2/mycoin/readme.md new file mode 100644 index 000000000..cc330662f --- /dev/null +++ b/mover/LittleMoreInteresting/code/task2/mycoin/readme.md @@ -0,0 +1,361 @@ +Transaction Digest: 9p4JFzZNijeMzcGjcpEUuvzCGwEtAf4mwL6MRMykGGZ1 +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec │ +│ Gas Owner: 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 759 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x79490c7d40d539c3bd7437eb6c104059f020beab2bcbda26dde105af3f1612c2 │ +│ │ Version: 298054268 │ +│ │ Digest: 5nhWefHT1oq6d24QxhdMqXVmEXqqvHw3D7i6Q3SjVS4w │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ etaBi6uUQLu+h876ieGj6wC7xhcDh99QoXrbzbpKFdlrxxRqKZuDKZOvAiqAmtIn41fcdNsRPS8REmNnoZ6iCA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 9p4JFzZNijeMzcGjcpEUuvzCGwEtAf4mwL6MRMykGGZ1 │ +│ Status: Success │ +│ Executed Epoch: 456 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x5f982db287864be6e99eb15e9bd764368116ce5c5ddbc8a9d26ecac1cf6af461 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: AyPrjy8YfszotFyKSSJY7YzxS1Dphuee19pGtj9PskQL │ +│ └── │ +│ ┌── │ +│ │ ID: 0xb6f977002df76b9b6af1fb6ae2973aaa95b373cbaa0ab8d7aaee338b52c6457b │ +│ │ Owner: Immutable │ +│ │ Version: 298054269 │ +│ │ Digest: 5BgxnWcdzgUnjuNQ36VXcrADsAC8sLitqVrNbx26tHqo │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd012a2c00fe630e594eb217ca2e9cf47b2aa8b383e685a20a49bf9023eb2878c │ +│ │ Owner: Account Address ( 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec ) │ +│ │ Version: 298054269 │ +│ │ Digest: 5YEjkzXH7d4PpyACTWk1eaFJWQm6ofMT9Z7bonkxAfKX │ +│ └── │ +│ ┌── │ +│ │ ID: 0xed187aa6228cf68cf50a6d012d077f3f0b6852eab5cdab81545e5e0b0d47b149 │ +│ │ Owner: Account Address ( 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec ) │ +│ │ Version: 298054269 │ +│ │ Digest: GgAALC7aP3MZ3rhyCbp2iL73KSqZHQAomxUZ4sio9vjx │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x79490c7d40d539c3bd7437eb6c104059f020beab2bcbda26dde105af3f1612c2 │ +│ │ Owner: Account Address ( 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec ) │ +│ │ Version: 298054269 │ +│ │ Digest: 3a5tJwZ27Pv2kRmbSFpNEb2eUFPNgfbq5KaGug7zTyiQ │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x79490c7d40d539c3bd7437eb6c104059f020beab2bcbda26dde105af3f1612c2 │ +│ │ Owner: Account Address ( 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec ) │ +│ │ Version: 298054269 │ +│ │ Digest: 3a5tJwZ27Pv2kRmbSFpNEb2eUFPNgfbq5KaGug7zTyiQ │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 15070800 MIST │ +│ Computation Cost: 759000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 6LCo63DRAGos6xG1QGcRbxpRKYaN1R2aPnGefHo6MdDZ │ +│ EY8ZaDkjhyBXX8iu9HXPQWznBp4QUcpAaTuwXSheDVuq │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xb6f977002df76b9b6af1fb6ae2973aaa95b373cbaa0ab8d7aaee338b52c6457b │ +│ │ Sender: 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x5f982db287864be6e99eb15e9bd764368116ce5c5ddbc8a9d26ecac1cf6af461::LittleMoreInterestingCOIN::LITTLEMOREINTERESTINGCOIN> │ +│ │ Version: 298054269 │ +│ │ Digest: 5BgxnWcdzgUnjuNQ36VXcrADsAC8sLitqVrNbx26tHqo │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xd012a2c00fe630e594eb217ca2e9cf47b2aa8b383e685a20a49bf9023eb2878c │ +│ │ Sender: 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec │ +│ │ Owner: Account Address ( 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x5f982db287864be6e99eb15e9bd764368116ce5c5ddbc8a9d26ecac1cf6af461::LittleMoreInterestingCOIN::LITTLEMOREINTERESTINGCOIN> │ +│ │ Version: 298054269 │ +│ │ Digest: 5YEjkzXH7d4PpyACTWk1eaFJWQm6ofMT9Z7bonkxAfKX │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xed187aa6228cf68cf50a6d012d077f3f0b6852eab5cdab81545e5e0b0d47b149 │ +│ │ Sender: 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec │ +│ │ Owner: Account Address ( 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 298054269 │ +│ │ Digest: GgAALC7aP3MZ3rhyCbp2iL73KSqZHQAomxUZ4sio9vjx │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x79490c7d40d539c3bd7437eb6c104059f020beab2bcbda26dde105af3f1612c2 │ +│ │ Sender: 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec │ +│ │ Owner: Account Address ( 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 298054269 │ +│ │ Digest: 3a5tJwZ27Pv2kRmbSFpNEb2eUFPNgfbq5KaGug7zTyiQ │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x5f982db287864be6e99eb15e9bd764368116ce5c5ddbc8a9d26ecac1cf6af461 │ +│ │ Version: 1 │ +│ │ Digest: AyPrjy8YfszotFyKSSJY7YzxS1Dphuee19pGtj9PskQL │ +│ │ Modules: LittleMoreInterestingCOIN │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -14851680 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + + + Transaction Digest: 2rrCRjATYoeAe8M62TxkCBtjdLWV3Ec4rq2c3yweCe8S +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec │ +│ Gas Owner: 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 759 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x79490c7d40d539c3bd7437eb6c104059f020beab2bcbda26dde105af3f1612c2 │ +│ │ Version: 298054272 │ +│ │ Digest: Dnm1aReLUhe9T1NxrmFxmuzAjAbvPYmxeyCiTbYZA99n │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ dLEOWhDXYQo72ZsRqdzm/AqERqmwVuHX/p/SZ88WRisLQSEAf6fFHoTtthB+uJ9gewHYRtShGTu/qNFTGWD4DQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 2rrCRjATYoeAe8M62TxkCBtjdLWV3Ec4rq2c3yweCe8S │ +│ Status: Success │ +│ Executed Epoch: 456 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x00bcbbbcf8c00f0707d0712637e0b5770e1c37b317bc244d74083b4afd832967 │ +│ │ Owner: Account Address ( 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec ) │ +│ │ Version: 298054273 │ +│ │ Digest: 6JLMZfanht5qcPh8ySiTzfc1kwEAYYFZfc8iTp4RZcYr │ +│ └── │ +│ ┌── │ +│ │ ID: 0x16c0d97fab5d672a7b857a91b03a504d953fa93c1c954f9bced800eb4b319be6 │ +│ │ Owner: Immutable │ +│ │ Version: 298054273 │ +│ │ Digest: 7dFnw6ECwvF74dY7f5sfb5SqhWZysqqx4ECUkWAhFxiD │ +│ └── │ +│ ┌── │ +│ │ ID: 0x2e6e865f0e9aad0dafb8df9da189356bcdb6acd28d054cce1f9408dba91e2031 │ +│ │ Owner: Immutable │ +│ │ Version: 298054273 │ +│ │ Digest: 7hX2AWV4MkegqCeFqhZJKvxnErH389LzDxrk1b5otNY9 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x4ebbcd6b70ec0338e6fc797b8dde4a5d25ef99feb8beb8edf2785fcbedb56d4d │ +│ │ Owner: Shared( 298054273 ) │ +│ │ Version: 298054273 │ +│ │ Digest: 4Xe4UwYqoQfR83URWReyvz3uFAHbB2qoMLAA2b2abipJ │ +│ └── │ +│ ┌── │ +│ │ ID: 0xa49c1b4a3b283e3fec550f038df9bc00b5433b03fa6da30ef2a5fd31203fde47 │ +│ │ Owner: Account Address ( 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec ) │ +│ │ Version: 298054273 │ +│ │ Digest: 6bfh9qd9yaBq4pfBmssvbMF5sQEQfoAwwPzRXQLTCJtX │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf8d1b2d2a2cd66d6d12446b648144f30ab0a5cc9e918d4a0f5261a013d161f54 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: HMiFguPDouZKiHGR5sfhiHzaqGTDEV1MLnn6LrtMeA42 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x79490c7d40d539c3bd7437eb6c104059f020beab2bcbda26dde105af3f1612c2 │ +│ │ Owner: Account Address ( 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec ) │ +│ │ Version: 298054273 │ +│ │ Digest: DCdmYuaB9YdyeNq8KgW2SwSJPsaV3CHztaGJhwV6CKg6 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x79490c7d40d539c3bd7437eb6c104059f020beab2bcbda26dde105af3f1612c2 │ +│ │ Owner: Account Address ( 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec ) │ +│ │ Version: 298054273 │ +│ │ Digest: DCdmYuaB9YdyeNq8KgW2SwSJPsaV3CHztaGJhwV6CKg6 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 25923600 MIST │ +│ Computation Cost: 759000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 4EAq6GM2c5BGf6Rq7GVAXbY9R4qinm2hyMQ9RLjG4Z8r │ +│ EY8ZaDkjhyBXX8iu9HXPQWznBp4QUcpAaTuwXSheDVuq │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x00bcbbbcf8c00f0707d0712637e0b5770e1c37b317bc244d74083b4afd832967 │ +│ │ Sender: 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec │ +│ │ Owner: Account Address ( 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 298054273 │ +│ │ Digest: 6JLMZfanht5qcPh8ySiTzfc1kwEAYYFZfc8iTp4RZcYr │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x16c0d97fab5d672a7b857a91b03a504d953fa93c1c954f9bced800eb4b319be6 │ +│ │ Sender: 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xf8d1b2d2a2cd66d6d12446b648144f30ab0a5cc9e918d4a0f5261a013d161f54::LittleMoreInterestingCOIN::LITTLEMOREINTERESTINGCOIN> │ +│ │ Version: 298054273 │ +│ │ Digest: 7dFnw6ECwvF74dY7f5sfb5SqhWZysqqx4ECUkWAhFxiD │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x2e6e865f0e9aad0dafb8df9da189356bcdb6acd28d054cce1f9408dba91e2031 │ +│ │ Sender: 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xf8d1b2d2a2cd66d6d12446b648144f30ab0a5cc9e918d4a0f5261a013d161f54::LittleMoreInterestingFAUCET::LITTLEMOREINTERESTINGFAUCET> │ +│ │ Version: 298054273 │ +│ │ Digest: 7hX2AWV4MkegqCeFqhZJKvxnErH389LzDxrk1b5otNY9 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x4ebbcd6b70ec0338e6fc797b8dde4a5d25ef99feb8beb8edf2785fcbedb56d4d │ +│ │ Sender: 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec │ +│ │ Owner: Shared( 298054273 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xf8d1b2d2a2cd66d6d12446b648144f30ab0a5cc9e918d4a0f5261a013d161f54::LittleMoreInterestingFAUCET::LITTLEMOREINTERESTINGFAUCET> │ +│ │ Version: 298054273 │ +│ │ Digest: 4Xe4UwYqoQfR83URWReyvz3uFAHbB2qoMLAA2b2abipJ │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xa49c1b4a3b283e3fec550f038df9bc00b5433b03fa6da30ef2a5fd31203fde47 │ +│ │ Sender: 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec │ +│ │ Owner: Account Address ( 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xf8d1b2d2a2cd66d6d12446b648144f30ab0a5cc9e918d4a0f5261a013d161f54::LittleMoreInterestingCOIN::LITTLEMOREINTERESTINGCOIN> │ +│ │ Version: 298054273 │ +│ │ Digest: 6bfh9qd9yaBq4pfBmssvbMF5sQEQfoAwwPzRXQLTCJtX │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x79490c7d40d539c3bd7437eb6c104059f020beab2bcbda26dde105af3f1612c2 │ +│ │ Sender: 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec │ +│ │ Owner: Account Address ( 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 298054273 │ +│ │ Digest: DCdmYuaB9YdyeNq8KgW2SwSJPsaV3CHztaGJhwV6CKg6 │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xf8d1b2d2a2cd66d6d12446b648144f30ab0a5cc9e918d4a0f5261a013d161f54 │ +│ │ Version: 1 │ +│ │ Digest: HMiFguPDouZKiHGR5sfhiHzaqGTDEV1MLnn6LrtMeA42 │ +│ │ Modules: LittleMoreInterestingCOIN, LittleMoreInterestingFAUCET │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -25704480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + + +sui client call --function mint \ + --module LittleMoreInterestingCOIN \ + --package 0x5f982db287864be6e99eb15e9bd764368116ce5c5ddbc8a9d26ecac1cf6af461 \ + --gas-budget 20000000 \ + --args 0xd012a2c00fe630e594eb217ca2e9cf47b2aa8b383e685a20a49bf9023eb2878c 100 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec + + +sui client call --function mint_and_transfer \ + --module coin \ + --package 0x2 \ + --gas-budget 20000000 \ + --args 0x4ebbcd6b70ec0338e6fc797b8dde4a5d25ef99feb8beb8edf2785fcbedb56d4d 1000000 0xc01b12fbd2a4860676fa5f17f44992455b0183ccf74a9d779d5818e3d29643ec \ + --type-args "0xf8d1b2d2a2cd66d6d12446b648144f30ab0a5cc9e918d4a0f5261a013d161f54::LittleMoreInterestingFAUCET::LITTLEMOREINTERESTINGFAUCET" diff --git a/mover/LittleMoreInteresting/code/task2/mycoin/sources/LittleMoreInteresting_coin.move b/mover/LittleMoreInteresting/code/task2/mycoin/sources/LittleMoreInteresting_coin.move new file mode 100644 index 000000000..51aa6ee67 --- /dev/null +++ b/mover/LittleMoreInteresting/code/task2/mycoin/sources/LittleMoreInteresting_coin.move @@ -0,0 +1,31 @@ +module mycoin::LittleMoreInterestingCOIN { + use sui::coin::{Self, TreasuryCap, Coin}; + + public struct LITTLEMOREINTERESTINGCOIN has drop {} + + fun init(witness: LITTLEMOREINTERESTINGCOIN, ctx: &mut TxContext) { + + let (treasury, metadata) = coin::create_currency( + witness, + 6, + b"LCOIN", + b"LittleMoreInterestingCOIN", + b"LittleMoreInterestingCOIN Task 2", + option::none(), + ctx + ); + + transfer::public_transfer(treasury, ctx.sender()); + + transfer::public_freeze_object(metadata); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } +} \ No newline at end of file diff --git a/mover/LittleMoreInteresting/code/task2/mycoin/sources/LittleMoreInteresting_faucet.move b/mover/LittleMoreInteresting/code/task2/mycoin/sources/LittleMoreInteresting_faucet.move new file mode 100644 index 000000000..2ad3328fb --- /dev/null +++ b/mover/LittleMoreInteresting/code/task2/mycoin/sources/LittleMoreInteresting_faucet.move @@ -0,0 +1,22 @@ +module mycoin::LittleMoreInterestingFAUCET { + use sui::coin::{Self, TreasuryCap, Coin}; + + public struct LittleMoreInterestingFAUCET has drop {} + + fun init(witness: LittleMoreInterestingFAUCET, ctx: &mut TxContext) { + + let (treasury, metadata) = coin::create_currency( + witness, + 6, + b"LFAUCET", + b"LittleMoreInterestingFAUCET", + b"LittleMoreInterestingFAUCET Task 2", + option::none(), + ctx + ); + + transfer::public_share_object(treasury); + + transfer::public_freeze_object(metadata); + } +} \ No newline at end of file diff --git a/mover/LittleMoreInteresting/code/task3/my_nft/Move.lock b/mover/LittleMoreInteresting/code/task3/my_nft/Move.lock new file mode 100644 index 000000000..d7511f5c0 --- /dev/null +++ b/mover/LittleMoreInteresting/code/task3/my_nft/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "4C9B47E7441289AA0D50D87EEB9836BD01CE3604E3B249490E7F2046EAEE3400" +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.28.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xc37c0f88b0971ecb61416ac3d0d1c85cd08da639c8b0ca1b2a3518faf4825868" +latest-published-id = "0xc37c0f88b0971ecb61416ac3d0d1c85cd08da639c8b0ca1b2a3518faf4825868" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xac9826a6f7056a72b60cc11c05639fa3160759a05a3fe3bd719ceaae68694794" +latest-published-id = "0xac9826a6f7056a72b60cc11c05639fa3160759a05a3fe3bd719ceaae68694794" +published-version = "1" diff --git a/mover/LittleMoreInteresting/code/task3/my_nft/Move.toml b/mover/LittleMoreInteresting/code/task3/my_nft/Move.toml new file mode 100644 index 000000000..d40d13d2e --- /dev/null +++ b/mover/LittleMoreInteresting/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://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] +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/LittleMoreInteresting/code/task3/my_nft/sources/my_nft.move b/mover/LittleMoreInteresting/code/task3/my_nft/sources/my_nft.move new file mode 100644 index 000000000..2a1b0a6ef --- /dev/null +++ b/mover/LittleMoreInteresting/code/task3/my_nft/sources/my_nft.move @@ -0,0 +1,38 @@ +/* +/// Module: my_nft +module my_nft::my_nft { + +} +*/ +module my_nft::my_nft { + + use std::string::String; + use std::string; + use sui::object; + use sui::transfer::public_transfer; + use sui::tx_context::sender; + + public struct LittleMoreInterestingNFT has key, store{ + id:UID, + name:String, + image_url:String, + } + + fun init(ctx:&mut TxContext) { + let my_nft = LittleMoreInterestingNFT{ + id:object::new(ctx), + name:string::utf8(b"LittleMoreInteresting NFT"), + image_url:string::utf8(b"https://avatars.githubusercontent.com/u/12570729?v=4") + }; + public_transfer(my_nft,sender(ctx)) + } + + public entry fun mint_and_transfer(to:address,ctx:&mut TxContext) { + let my_nft = LittleMoreInterestingNFT{ + id:object::new(ctx), + name:string::utf8(b"LittleMoreInteresting NFT"), + image_url:string::utf8(b"https://avatars.githubusercontent.com/u/12570729?v=4") + }; + public_transfer(my_nft,to) + } +} diff --git a/mover/LittleMoreInteresting/code/task3/my_nft/tests/my_nft_tests.move b/mover/LittleMoreInteresting/code/task3/my_nft/tests/my_nft_tests.move new file mode 100644 index 000000000..5d3a60230 --- /dev/null +++ b/mover/LittleMoreInteresting/code/task3/my_nft/tests/my_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[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/LittleMoreInteresting/code/task3/my_nft/tx.txt b/mover/LittleMoreInteresting/code/task3/my_nft/tx.txt new file mode 100644 index 000000000..ab4d9afb9 --- /dev/null +++ b/mover/LittleMoreInteresting/code/task3/my_nft/tx.txt @@ -0,0 +1,261 @@ +Transaction Digest: H72jmAU53QD48RbdthFwZrFjMLBJvbQ2PcnQvaJxXjbF +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 │ +│ Gas Owner: 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 │ +│ Gas Budget: 50000000 MIST │ +│ Gas Price: 759 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x216deb66bdd8b3cc27d3146d71426353b0a40f847085ac4818e7532ca70a6395 │ +│ │ Version: 298054284 │ +│ │ Digest: 4g6ZR1T8uqjDBrPUhYd7JBDFArL13KoUL7d4XCspkDzH │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 3WgAt+HtS6N8ifrd53hakou9DkX4d7n6IhrG2xi0WEbgthH7Hm+B4AFrPSTBEK+XFyGDNl+WV3Vhk8h32jZyCg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: H72jmAU53QD48RbdthFwZrFjMLBJvbQ2PcnQvaJxXjbF │ +│ Status: Success │ +│ Executed Epoch: 458 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x6903ce2a467bd0352868dbdc62c67bcf6cf65d9435ee2931c86794bb0e26e9b6 │ +│ │ Owner: Account Address ( 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 ) │ +│ │ Version: 298054285 │ +│ │ Digest: 9wWqNcW3Mt4i38YZgRqZXm6nHrRAL3m9YF4R67HJFuhX │ +│ └── │ +│ ┌── │ +│ │ ID: 0xac9826a6f7056a72b60cc11c05639fa3160759a05a3fe3bd719ceaae68694794 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 7w19pHiqNjUKxDX8Kc9GLJ53nGsLTfT2tPo5cmMvqMFJ │ +│ └── │ +│ ┌── │ +│ │ ID: 0xe759c75565061f80636290391cb7128e38840e4c41b46369ba3897bb2f14be42 │ +│ │ Owner: Account Address ( 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 ) │ +│ │ Version: 298054285 │ +│ │ Digest: 51fUP63s4sYD2a8hyWwreRkXzcjt6Acw6MWEf3URVgX7 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x216deb66bdd8b3cc27d3146d71426353b0a40f847085ac4818e7532ca70a6395 │ +│ │ Owner: Account Address ( 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 ) │ +│ │ Version: 298054285 │ +│ │ Digest: HPwCKURmAfc3bKUKpsD6euWsR8Q3ADsMgvpjC2JvpRtN │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x216deb66bdd8b3cc27d3146d71426353b0a40f847085ac4818e7532ca70a6395 │ +│ │ Owner: Account Address ( 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 ) │ +│ │ Version: 298054285 │ +│ │ Digest: HPwCKURmAfc3bKUKpsD6euWsR8Q3ADsMgvpjC2JvpRtN │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 11042800 MIST │ +│ Computation Cost: 759000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ Cfb9VrdowmEyHnSB7UFDRAAYzFhVEM5n8zaSVKZiJnJ4 │ +│ EY8ZaDkjhyBXX8iu9HXPQWznBp4QUcpAaTuwXSheDVuq │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x6903ce2a467bd0352868dbdc62c67bcf6cf65d9435ee2931c86794bb0e26e9b6 │ +│ │ Sender: 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 │ +│ │ Owner: Account Address ( 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 298054285 │ +│ │ Digest: 9wWqNcW3Mt4i38YZgRqZXm6nHrRAL3m9YF4R67HJFuhX │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xe759c75565061f80636290391cb7128e38840e4c41b46369ba3897bb2f14be42 │ +│ │ Sender: 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 │ +│ │ Owner: Account Address ( 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 ) │ +│ │ ObjectType: 0xac9826a6f7056a72b60cc11c05639fa3160759a05a3fe3bd719ceaae68694794::my_nft::LittleMoreInterestingNFT │ +│ │ Version: 298054285 │ +│ │ Digest: 51fUP63s4sYD2a8hyWwreRkXzcjt6Acw6MWEf3URVgX7 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x216deb66bdd8b3cc27d3146d71426353b0a40f847085ac4818e7532ca70a6395 │ +│ │ Sender: 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 │ +│ │ Owner: Account Address ( 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 298054285 │ +│ │ Digest: HPwCKURmAfc3bKUKpsD6euWsR8Q3ADsMgvpjC2JvpRtN │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xac9826a6f7056a72b60cc11c05639fa3160759a05a3fe3bd719ceaae68694794 │ +│ │ Version: 1 │ +│ │ Digest: 7w19pHiqNjUKxDX8Kc9GLJ53nGsLTfT2tPo5cmMvqMFJ │ +│ │ Modules: my_nft │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -10823680 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + +Transaction Digest: 5CXJ9Nb9x2Vde6tA3M2v5BTXek5xfCtkTcKe4wkLEhiS +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 │ +│ Gas Owner: 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 │ +│ Gas Budget: 20000000 MIST │ +│ Gas Price: 759 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x216deb66bdd8b3cc27d3146d71426353b0a40f847085ac4818e7532ca70a6395 │ +│ │ Version: 298054285 │ +│ │ Digest: HPwCKURmAfc3bKUKpsD6euWsR8Q3ADsMgvpjC2JvpRtN │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint_and_transfer │ │ +│ │ │ Module: my_nft │ │ +│ │ │ Package: 0xac9826a6f7056a72b60cc11c05639fa3160759a05a3fe3bd719ceaae68694794 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ vu/oTKljEL3xOZnxOI0HL5UWDR7ipU+5Tn06MI3MfNedAlkJDC3j5DbAIYGIGXbrVudwMDll6ZiEn7Pe6Eq2CA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 5CXJ9Nb9x2Vde6tA3M2v5BTXek5xfCtkTcKe4wkLEhiS │ +│ Status: Success │ +│ Executed Epoch: 458 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xc28a760f2370d2e271cb0c5bccb9ea79a27f5f798af57b4375ed4837b7ff8268 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ Version: 298054286 │ +│ │ Digest: 4KMcbR8eqLPt2rfSVRUB49G9nG7SYH88CmopLPFt4jdX │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x216deb66bdd8b3cc27d3146d71426353b0a40f847085ac4818e7532ca70a6395 │ +│ │ Owner: Account Address ( 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 ) │ +│ │ Version: 298054286 │ +│ │ Digest: tPAEVEv2wq9oGoxuunSNifNGX5JLUmvoDv3wDDW2R6z │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x216deb66bdd8b3cc27d3146d71426353b0a40f847085ac4818e7532ca70a6395 │ +│ │ Owner: Account Address ( 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 ) │ +│ │ Version: 298054286 │ +│ │ Digest: tPAEVEv2wq9oGoxuunSNifNGX5JLUmvoDv3wDDW2R6z │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3009600 MIST │ +│ Computation Cost: 759000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ H72jmAU53QD48RbdthFwZrFjMLBJvbQ2PcnQvaJxXjbF │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xc28a760f2370d2e271cb0c5bccb9ea79a27f5f798af57b4375ed4837b7ff8268 │ +│ │ Sender: 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ ObjectType: 0xac9826a6f7056a72b60cc11c05639fa3160759a05a3fe3bd719ceaae68694794::my_nft::LittleMoreInterestingNFT │ +│ │ Version: 298054286 │ +│ │ Digest: 4KMcbR8eqLPt2rfSVRUB49G9nG7SYH88CmopLPFt4jdX │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x216deb66bdd8b3cc27d3146d71426353b0a40f847085ac4818e7532ca70a6395 │ +│ │ Sender: 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 │ +│ │ Owner: Account Address ( 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 298054286 │ +│ │ Digest: tPAEVEv2wq9oGoxuunSNifNGX5JLUmvoDv3wDDW2R6z │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x33a962ee7746b8be68147f699eb73b2725efdb93c0b2015267f5566677b1e742 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2790480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────── + +sui client call --function mint_and_transfer \ + --module my_nft \ + --package 0xac9826a6f7056a72b60cc11c05639fa3160759a05a3fe3bd719ceaae68694794 \ + --gas-budget 20000000 \ + --args 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 diff --git a/mover/LittleMoreInteresting/images/20240714191615.png b/mover/LittleMoreInteresting/images/20240714191615.png new file mode 100644 index 000000000..cb35b79e9 Binary files /dev/null and b/mover/LittleMoreInteresting/images/20240714191615.png differ diff --git a/mover/LittleMoreInteresting/images/20240715042237.jpg b/mover/LittleMoreInteresting/images/20240715042237.jpg new file mode 100644 index 000000000..b7003814b Binary files /dev/null and b/mover/LittleMoreInteresting/images/20240715042237.jpg differ diff --git a/mover/LittleMoreInteresting/images/sui-wallte.png b/mover/LittleMoreInteresting/images/sui-wallte.png new file mode 100644 index 000000000..69fc7e4e3 Binary files /dev/null and b/mover/LittleMoreInteresting/images/sui-wallte.png differ diff --git a/mover/LittleMoreInteresting/images/suiscan-hello.png b/mover/LittleMoreInteresting/images/suiscan-hello.png new file mode 100644 index 000000000..f7efe4b5c Binary files /dev/null and b/mover/LittleMoreInteresting/images/suiscan-hello.png differ diff --git a/mover/LittleMoreInteresting/notes/readme.md b/mover/LittleMoreInteresting/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/LittleMoreInteresting/readme.md b/mover/LittleMoreInteresting/readme.md new file mode 100644 index 000000000..ddff29cb6 --- /dev/null +++ b/mover/LittleMoreInteresting/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x79f0faed7e62471026a78669ec642a15cb4322c5e9aa4afc04110eb38af14816` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `LittleMoreInteresting` + +## 个人简介 +- 工作经验: 8年 +- 技术栈: `Golang` `PHP` `solidity` `react` +> 个人简介 +- 多年web2后端开发经验,对Move特别感兴趣,想通过Move入门web3开发。 +- 联系方式: tg: `horace2024` + +## 任务 + +## 01 hello move +- [] Sui cli version:sui 1.28.2-08b50387a184 +- [] Sui钱包截图: ![Sui钱包截图](./images/sui-wallte.png) +- [] package id: `0x717446bd0e6665b47235a322984a238aab92944e3e0a22d08295ba6b5425b50c` +- [] package id 在 scan上的查看截图:![Scan截图](./images/suiscan-hello.png) + +## 02 move coin +- [] My Coin package id : 0x5f982db287864be6e99eb15e9bd764368116ce5c5ddbc8a9d26ecac1cf6af461 +- [] Faucet package id : 0xf8d1b2d2a2cd66d6d12446b648144f30ab0a5cc9e918d4a0f5261a013d161f54 +- [] 转账 `My Coin` hash: 4EAq6GM2c5BGf6Rq7GVAXbY9R4qinm2hyMQ9RLjG4Z8r +- [] `Faucet Coin` address1 mint hash: J2kht8JoCHjqHtia9oi4vjhniNr6t7mqqNGkZVA5EUYK +- [] `Faucet Coin` address2 mint hash: Cfb9VrdowmEyHnSB7UFDRAAYzFhVEM5n8zaSVKZiJnJ4 + +## 03 move NFT +- [] nft package id :0xac9826a6f7056a72b60cc11c05639fa3160759a05a3fe3bd719ceaae68694794 +- [] nft object id : 0xe759c75565061f80636290391cb7128e38840e4c41b46369ba3897bb2f14be42 +- [] 转账 nft hash: H72jmAU53QD48RbdthFwZrFjMLBJvbQ2PcnQvaJxXjbF +- [] scan上的NFT截图:![Scan截图](./images/20240714191615.png) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/20240715042237.jpg) +- [] flag hash : 6Het3SJuaF9aYEwwX8NLJ3CtoibMaSiRBDxhfZ54UpTV + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/Llanfai/Readme.md b/mover/Llanfai/Readme.md new file mode 100644 index 000000000..119efe23b --- /dev/null +++ b/mover/Llanfai/Readme.md @@ -0,0 +1,19 @@ +## 基本信息 + +- Sui钱包地址: 0x3faec9f122cd454c80594b63ad8bb0936a4b0cd85c280fee7d5cc2909c2a273f + 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: Llanfair + +## 个人简介 + +技术栈: C Go Solidity +联系方式: QQ: 2870496724 + +## 任务 + +### 01 hello move + +package id: +0xafca8870ec4e6e424110896de0beae71f488aa2b939b2ac1acf0ed0dfc37a4dc + +/ \ No newline at end of file diff --git a/mover/Llanfai/code/Move.lock b/mover/Llanfai/code/Move.lock new file mode 100644 index 000000000..4ff06b1cc --- /dev/null +++ b/mover/Llanfai/code/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xafca8870ec4e6e424110896de0beae71f488aa2b939b2ac1acf0ed0dfc37a4dc" +latest-published-id = "0xafca8870ec4e6e424110896de0beae71f488aa2b939b2ac1acf0ed0dfc37a4dc" +published-version = "1" diff --git a/mover/Llanfai/code/Move.toml b/mover/Llanfai/code/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/Llanfai/code/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/Llanfai/code/sources/hello_move.move b/mover/Llanfai/code/sources/hello_move.move new file mode 100644 index 000000000..2a2ebe497 --- /dev/null +++ b/mover/Llanfai/code/sources/hello_move.move @@ -0,0 +1,20 @@ +module hello_move::hello_move { + use sui::object::{Self, UID}; + use sui::tx_context::{Self, TxContext}; + use std::string::{Self, String}; + use sui::transfer; + + public struct Hello has key { + id: UID, + str: String, + } + + public fun say_hello(ctx: &mut TxContext) { + let word = Hello { + id: object::new(ctx), + str: string::utf8(b"Hello your Llanfai"), + }; + transfer::transfer(word, tx_context::sender(ctx)); + } +} + diff --git a/mover/Llanfai/code/tests/hello_move_tests.move b/mover/Llanfai/code/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/Llanfai/code/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/LoneSurvivor1995/code/readme.md b/mover/LoneSurvivor1995/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/LoneSurvivor1995/code/tast1/hello_world/Move.lock b/mover/LoneSurvivor1995/code/tast1/hello_world/Move.lock new file mode 100644 index 000000000..b2a5d0cdb --- /dev/null +++ b/mover/LoneSurvivor1995/code/tast1/hello_world/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "60F2000F4D6DAD240EF371DB3BC521F7BD4C8B814BC59CA473B852B77FDBE53C" +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.28.3" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x26f93b901b67a5a6c77b8b35f06ae45223242a6cc5e0911a95a62be4987597f3" +latest-published-id = "0x26f93b901b67a5a6c77b8b35f06ae45223242a6cc5e0911a95a62be4987597f3" +published-version = "1" diff --git a/mover/LoneSurvivor1995/code/tast1/hello_world/Move.toml b/mover/LoneSurvivor1995/code/tast1/hello_world/Move.toml new file mode 100644 index 000000000..201de1731 --- /dev/null +++ b/mover/LoneSurvivor1995/code/tast1/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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] +hello_world = "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/LoneSurvivor1995/code/tast1/hello_world/sources/hello_world.move b/mover/LoneSurvivor1995/code/tast1/hello_world/sources/hello_world.move new file mode 100644 index 000000000..fd986f5ed --- /dev/null +++ b/mover/LoneSurvivor1995/code/tast1/hello_world/sources/hello_world.move @@ -0,0 +1,20 @@ +// Module: hello_world +module hello_world::hello_world { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"LoneSurvivor1995"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/LoneSurvivor1995/code/tast1/hello_world/tests/hello_world_tests.move b/mover/LoneSurvivor1995/code/tast1/hello_world/tests/hello_world_tests.move new file mode 100644 index 000000000..8fdf06eec --- /dev/null +++ b/mover/LoneSurvivor1995/code/tast1/hello_world/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_world::hello_world_tests { + // uncomment this line to import the module + // use hello_world::hello_world; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_world() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_world::hello_world_tests::ENotImplemented)] + fun test_hello_world_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/LoneSurvivor1995/images/image1.png b/mover/LoneSurvivor1995/images/image1.png new file mode 100644 index 000000000..93133225b Binary files /dev/null and b/mover/LoneSurvivor1995/images/image1.png differ diff --git a/mover/LoneSurvivor1995/images/image2.png b/mover/LoneSurvivor1995/images/image2.png new file mode 100644 index 000000000..af2c9c1a4 Binary files /dev/null and b/mover/LoneSurvivor1995/images/image2.png differ diff --git a/mover/LoneSurvivor1995/notes/readme.md b/mover/LoneSurvivor1995/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/LoneSurvivor1995/readme.md b/mover/LoneSurvivor1995/readme.md new file mode 100644 index 000000000..ca698ba9b --- /dev/null +++ b/mover/LoneSurvivor1995/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x8e667672cdcbf9649d67ded0ac0b08d40a7f82248c12ad68cb17ca080cbdb101` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `LoneSurvivor1995` + +## 个人简介 +- 工作经验: 8年 +- 技术栈: `Rust` `C++` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `t.me/harrymei1995` + +## 任务 + +## 01 hello move +- [] Sui cli version: sui 1.28.3-homebrew +- [] Sui钱包截图: ![Sui钱包截图](./images/image2.png) +- [] package id: 0x348b5d217287d1be81f82de906840789621b911539dfa883d729c527ae7d9cb0 +- [] package id 在 scan上的查看截图:![Scan截图](./images/image1.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/LoneSurvivor1995/scan.jpg b/mover/LoneSurvivor1995/scan.jpg new file mode 100644 index 000000000..d16ebb649 Binary files /dev/null and b/mover/LoneSurvivor1995/scan.jpg differ diff --git a/mover/Lumia001/code/readme.md b/mover/Lumia001/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Lumia001/code/task2/Move.lock b/mover/Lumia001/code/task2/Move.lock new file mode 100644 index 000000000..4921eeb7c --- /dev/null +++ b/mover/Lumia001/code/task2/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "BCF68D07FCDC5E8F3CDBE4D57CD42390558EDCA350FF77EE53CFF38C9F62734F" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.26.0" +edition = "legacy" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x37069dd83e90896c26ff3df91f9a68173346b5ef758030885122c3a94b4d4529" +latest-published-id = "0x37069dd83e90896c26ff3df91f9a68173346b5ef758030885122c3a94b4d4529" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124" +latest-published-id = "0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124" +published-version = "1" diff --git a/mover/Lumia001/code/task2/Move.toml b/mover/Lumia001/code/task2/Move.toml new file mode 100644 index 000000000..39f1ba855 --- /dev/null +++ b/mover/Lumia001/code/task2/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "lumia001" +#published-at = "" +# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha +# 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/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] +lumia001 = "0x0" +#mycoin = "" + +# 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/Lumia001/code/task2/doc.md b/mover/Lumia001/code/task2/doc.md new file mode 100644 index 000000000..8aa2ccec1 --- /dev/null +++ b/mover/Lumia001/code/task2/doc.md @@ -0,0 +1,19 @@ + + +```shell +# mint X +sui client call --package 0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124\ + --module Lumia001Coin \ + --function mint \ + \ + --args 0x3428d0b61176fcc6b8076be0ecc341f38643065028ec41ef176267cacb0af896 \ + 200000000 \ + 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 + +# mint Y +sui client call --package 0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124\ + --module Lumia001Faucet \ + --function mint \ + --gas-budget 10000000 \ + --args 0x55dba045d64cab75c3ac52a8c5add543d3dff9a1e2669a030b1a901971b16422 +``` \ No newline at end of file diff --git a/mover/Lumia001/code/task2/sources/task2_lumia001_coin.move b/mover/Lumia001/code/task2/sources/task2_lumia001_coin.move new file mode 100644 index 000000000..632b41018 --- /dev/null +++ b/mover/Lumia001/code/task2/sources/task2_lumia001_coin.move @@ -0,0 +1,50 @@ +module lumia001::Lumia001Coin { + + use std::option; + + use sui::coin; + use sui::coin::TreasuryCap; + use sui::event::emit; + use sui::transfer; + use sui::tx_context; + use sui::tx_context::TxContext; + + const DECIMAL: u64 = 1_000_000; + + + struct LUMIA001COIN has drop {} + + struct MintCoinEvent has copy, drop { + amt: u64, + recp: address + } + + // init coin metadata. + fun init(witness: LUMIA001COIN, ctx: &mut TxContext) { + let (treasury, metadata) = + coin::create_currency( + witness, + 6, + b"LUMIA001COIN", + b"LUMIA001COIN", + b"LUMIA001COIN description.", + option::none(), + ctx + ); + + coin::mint_and_transfer(&mut treasury, (100 * DECIMAL), + tx_context::sender(ctx), ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + // mint some coins. + entry fun mint(treasury_cap: &mut TreasuryCap, amount: u64, recp: address, ctx: &mut TxContext) { + let coins = coin::mint(treasury_cap, amount * DECIMAL, ctx); + transfer::public_transfer(coins, recp); + emit(MintCoinEvent { + amt: amount, + recp + }) + } +} \ No newline at end of file diff --git a/mover/Lumia001/code/task2/sources/task2_lumia001_faucet_coin.move b/mover/Lumia001/code/task2/sources/task2_lumia001_faucet_coin.move new file mode 100644 index 000000000..9be9d532e --- /dev/null +++ b/mover/Lumia001/code/task2/sources/task2_lumia001_faucet_coin.move @@ -0,0 +1,51 @@ +module lumia001::Lumia001Faucet { + + use std::option; + + use sui::coin; + use sui::coin::TreasuryCap; + use sui::object; + use sui::object::UID; + use sui::transfer; + use sui::tx_context; + use sui::tx_context::TxContext; + + const DECIMAL: u64 = 1_000_000; + + + struct TreasuryCapHolder has key { + id: UID, + treasury: TreasuryCap, + } + + struct LUMIA001FAUCET has drop {} + + // init coin metadata. + fun init(witness: LUMIA001FAUCET, ctx: &mut TxContext) { + let (treasury, metadata) = + coin::create_currency( + witness, + 6, + b"LUMIA001FAUCET", + b"LUMIA001FAUCET", + b"LUMIA001FAUCET faucet description.", + option::none(), + ctx + ); + + let treasury_cap_holder = TreasuryCapHolder { + id: object::new(ctx), + treasury, + }; + + transfer::public_freeze_object(metadata); + transfer::share_object(treasury_cap_holder); + } + + // mint fixed coins. + entry fun mint(treasury_cap_holder: &mut TreasuryCapHolder, ctx: &mut TxContext) { + let treasury_cap = &mut treasury_cap_holder.treasury; + let coins = coin::mint(treasury_cap, 1000 * DECIMAL, ctx); + transfer::public_transfer(coins, tx_context::sender(ctx)) + } +} \ No newline at end of file diff --git a/mover/Lumia001/code/task3/Move.lock b/mover/Lumia001/code/task3/Move.lock new file mode 100644 index 000000000..0c909bba2 --- /dev/null +++ b/mover/Lumia001/code/task3/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "03F23717A4FC4AFAE1B93CE9875F6FB8414031F9DB3A08AD0DFD93C57620E4C5" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x1bc8df3c64fcd4c05fad107c1ac3aec18cf09814d6e9e1a2456be56dfc8e6bf9" +latest-published-id = "0x1bc8df3c64fcd4c05fad107c1ac3aec18cf09814d6e9e1a2456be56dfc8e6bf9" +published-version = "1" diff --git a/mover/Lumia001/code/task3/Move.toml b/mover/Lumia001/code/task3/Move.toml new file mode 100644 index 000000000..897860c54 --- /dev/null +++ b/mover/Lumia001/code/task3/Move.toml @@ -0,0 +1,36 @@ +[package] +name = "lumia001" +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/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] +lumia001 = "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/Lumia001/code/task3/sources/task3_nft.move b/mover/Lumia001/code/task3/sources/task3_nft.move new file mode 100644 index 000000000..f9fc3914c --- /dev/null +++ b/mover/Lumia001/code/task3/sources/task3_nft.move @@ -0,0 +1,49 @@ +module lumia001::Lumia001Nft { + use std::ascii::String; + use std::string::utf8; + + use sui::package; + use sui::transfer::public_transfer; + + use sui::display; + + public struct LUMIA001NFT has drop {} + + public + + struct NFT has key, store { + id: sui::object::UID, + name: String, + } + + fun init(otw: LUMIA001NFT, ctx: &mut tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + utf8(b"description"), + ]; + + let values = vector[ + utf8(b"Lumia001"), + utf8(b"https://avatars.githubusercontent.com/u/44024489?v=4"), + utf8(b"Lumia001's NFT."), + ]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values, ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + // every one can mint + public entry fun mint_to(name: String, recipient: address, ctx: &mut TxContext) { + let nft = NFT { + id: object::new(ctx), + name, + }; + public_transfer(nft, recipient) + } +} \ No newline at end of file diff --git a/mover/Lumia001/images/task1/sui-wallet.png b/mover/Lumia001/images/task1/sui-wallet.png new file mode 100644 index 000000000..984be5105 Binary files /dev/null and b/mover/Lumia001/images/task1/sui-wallet.png differ diff --git a/mover/Lumia001/images/task1/suiscan_view.png b/mover/Lumia001/images/task1/suiscan_view.png new file mode 100644 index 000000000..15f31b6a8 Binary files /dev/null and b/mover/Lumia001/images/task1/suiscan_view.png differ diff --git a/mover/Lumia001/images/task3/task3-nft.png b/mover/Lumia001/images/task3/task3-nft.png new file mode 100644 index 000000000..2815ecefe Binary files /dev/null and b/mover/Lumia001/images/task3/task3-nft.png differ diff --git a/mover/Lumia001/notes/readme.md b/mover/Lumia001/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Lumia001/notes/task1.md b/mover/Lumia001/notes/task1.md new file mode 100644 index 000000000..0ba060424 --- /dev/null +++ b/mover/Lumia001/notes/task1.md @@ -0,0 +1,160 @@ +## command + +```shell +# create address. + +sui client new-address ed25519 testnet + +``` + +```shell +# switch env. + +sui client switch --env testnet + +``` + +```shell +# publish package. + +sui client publish --gas-budget 10000000 + +``` + +## publish result. + +```text + +Transaction Digest: E69wQmqPhHcvvgEjchCPqqVuVBdfve5tJtJSfA8roV8u +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x7bda1b3d4e36590ba9116c448753eb2971bf36f60bd65bb8bffca0ddfe6cb943 │ +│ Gas Owner: 0x7bda1b3d4e36590ba9116c448753eb2971bf36f60bd65bb8bffca0ddfe6cb943 │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x441c1e9b52292368a5a8ecf839133904583f24bb853ed40e8053284e163df5de │ +│ │ Version: 971921 │ +│ │ Digest: DLJP2rML4qYRGjdPTZ1LuNJhfTb93hMzcK4a14nA6Vh │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x7bda1b3d4e36590ba9116c448753eb2971bf36f60bd65bb8bffca0ddfe6cb943" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ oT/j1uNFoVYX6L7uipqKj5JZfdbbNFWe2lWHasfc7fjDk3KDUIKDYUYpaO+TNPJG85Ub057JfkVgrEsl9a8eBg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: E69wQmqPhHcvvgEjchCPqqVuVBdfve5tJtJSfA8roV8u │ +│ Status: Success │ +│ Executed Epoch: 386 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xa3a58a3eb22ceca4a7c6092345052cb0bf6c3617f8e4bf09b86386efdc8aa2fd │ +│ │ Owner: Account Address ( 0x7bda1b3d4e36590ba9116c448753eb2971bf36f60bd65bb8bffca0ddfe6cb943 ) │ +│ │ Version: 971922 │ +│ │ Digest: AoTu44QfZRy4Xphy8J3cHanNV32AVx58xo1CHKKmcRgJ │ +│ └── │ +│ ┌── │ +│ │ ID: 0xc058ade4e367c72a2f5884fb02a7496e8db2493d72dd17a27d2d6cfd51292ed9 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: By1juyY3EthuS88yTDQPQcXdeHeiq3i4ahK1y66j5yw6 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x441c1e9b52292368a5a8ecf839133904583f24bb853ed40e8053284e163df5de │ +│ │ Owner: Account Address ( 0x7bda1b3d4e36590ba9116c448753eb2971bf36f60bd65bb8bffca0ddfe6cb943 ) │ +│ │ Version: 971922 │ +│ │ Digest: AngoMDtzrSiKPxiNbXLJLcUPMEemqvTXERkcXwQ6Y4Qi │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x441c1e9b52292368a5a8ecf839133904583f24bb853ed40e8053284e163df5de │ +│ │ Owner: Account Address ( 0x7bda1b3d4e36590ba9116c448753eb2971bf36f60bd65bb8bffca0ddfe6cb943 ) │ +│ │ Version: 971922 │ +│ │ Digest: AngoMDtzrSiKPxiNbXLJLcUPMEemqvTXERkcXwQ6Y4Qi │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 7683600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ 9au69QfQwHHNVKsoW4QinXXmXxzSZMzJHepyoJPdsr9o │ +│ HAu8Q91VQ6kVbhxadSjYmBwNo2j9xN6j185oHAvH3ACk │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xa3a58a3eb22ceca4a7c6092345052cb0bf6c3617f8e4bf09b86386efdc8aa2fd │ +│ │ Sender: 0x7bda1b3d4e36590ba9116c448753eb2971bf36f60bd65bb8bffca0ddfe6cb943 │ +│ │ Owner: Account Address ( 0x7bda1b3d4e36590ba9116c448753eb2971bf36f60bd65bb8bffca0ddfe6cb943 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 971922 │ +│ │ Digest: AoTu44QfZRy4Xphy8J3cHanNV32AVx58xo1CHKKmcRgJ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x441c1e9b52292368a5a8ecf839133904583f24bb853ed40e8053284e163df5de │ +│ │ Sender: 0x7bda1b3d4e36590ba9116c448753eb2971bf36f60bd65bb8bffca0ddfe6cb943 │ +│ │ Owner: Account Address ( 0x7bda1b3d4e36590ba9116c448753eb2971bf36f60bd65bb8bffca0ddfe6cb943 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 971922 │ +│ │ Digest: AngoMDtzrSiKPxiNbXLJLcUPMEemqvTXERkcXwQ6Y4Qi │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xc058ade4e367c72a2f5884fb02a7496e8db2493d72dd17a27d2d6cfd51292ed9 │ +│ │ Version: 1 │ +│ │ Digest: By1juyY3EthuS88yTDQPQcXdeHeiq3i4ahK1y66j5yw6 │ +│ │ Modules: task1 │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x7bda1b3d4e36590ba9116c448753eb2971bf36f60bd65bb8bffca0ddfe6cb943 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -7705480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + + +``` \ No newline at end of file diff --git a/mover/Lumia001/notes/task2.md b/mover/Lumia001/notes/task2.md new file mode 100644 index 000000000..9f2d00494 --- /dev/null +++ b/mover/Lumia001/notes/task2.md @@ -0,0 +1,277 @@ +## use command +```shell + +```shell +# mint X +sui client call --package 0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124\ + --module Lumia001Coin \ + --function mint \ + \ + --args 0x3428d0b61176fcc6b8076be0ecc341f38643065028ec41ef176267cacb0af896 \ + 200000000 \ + 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 + +# mint Y +sui client call --package 0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124\ + --module Lumia001Faucet \ + --function mint \ + --gas-budget 10000000 \ + --args 0x55dba045d64cab75c3ac52a8c5add543d3dff9a1e2669a030b1a901971b16422 +``` + +``` +## oparation's key info. + +```text + +coin hash: +88E6YAC3LiLApMwNvdnyKGDiZ8PcCyVRHSxkUHENiYQo + +faucet hash 1 2: +12aB5Xi9TW9xLcbx71Ug1js8qb7884eaTJDe1s8QywZe + + + + +# Holder +0x55dba045d64cab75c3ac52a8c5add543d3dff9a1e2669a030b1a901971b16422 + +# cap +0x3428d0b61176fcc6b8076be0ecc341f38643065028ec41ef176267cacb0af896 + +# pacageId: +0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124 + +# type + +0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124::Lumia001Faucet::LUMIA001FAUCET + +0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124::Lumia001Coin::LUMIA001COIN + +``` + +## publish record. + +```text +[warn] Client/Server api version mismatch, client api version : 1.26.0, server api version : 1.25.2 +UPDATING GIT DEPENDENCY https://gitee.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING lumia001 +Successfully verified dependencies on-chain against source. +Error executing transaction: Failure { + error: "InsufficientGas", +} +gorden@Gordendebijibendiannao task2 % sui client publish +[warn] Client/Server api version mismatch, client api version : 1.26.0, server api version : 1.25.2 +UPDATING GIT DEPENDENCY https://gitee.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING lumia001 +Successfully verified dependencies on-chain against source. +Transaction Digest: 42cT8aW1SvWSnybRRjyesdCkPYSeUHDHdv1cMznu7KMd +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ Gas Owner: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x5e99e654ff8ace87888b67e7333a9a6fca9060ed8edcb4d09ec2dacc4c638097 │ +│ │ Version: 211023822 │ +│ │ Digest: 7B26jFJ69fWiJKkjLC5jyiD8wac9MdwCdkCYX74aSLMd │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ NAq00Cv7Xt1fDy4lzaQNqePmgdfwJdjfYeSXfrPgrzJ9HlTpMy8HwOifmAjPBZ3Ve3uXOhCy88ths5N9g9n5Ag== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 42cT8aW1SvWSnybRRjyesdCkPYSeUHDHdv1cMznu7KMd │ +│ Status: Success │ +│ Executed Epoch: 417 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x137d82fbc5d6e1dd1696f60f839a0d84464ec4d9fbe8769a1a270ff8b6e66113 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ Version: 211023823 │ +│ │ Digest: Da9Gvrk6MU1J4Voi4yTAhB1oLSxYQQpdubK6cYSYRfwA │ +│ └── │ +│ ┌── │ +│ │ ID: 0x3428d0b61176fcc6b8076be0ecc341f38643065028ec41ef176267cacb0af896 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ Version: 211023823 │ +│ │ Digest: HHENDt83cRt2HETFEoFiBp6iiBQDyt2vYz64weWsVrdn │ +│ └── │ +│ ┌── │ +│ │ ID: 0x55dba045d64cab75c3ac52a8c5add543d3dff9a1e2669a030b1a901971b16422 │ +│ │ Owner: Shared( 211023823 ) │ +│ │ Version: 211023823 │ +│ │ Digest: EwWyZqcGyP9WN7bKWNXf4yUpbhCb9VKe9gAfqCc1WJgV │ +│ └── │ +│ ┌── │ +│ │ ID: 0x9118a9feb9fd3ac4a1e4d67325e759a27d995a5080cca0a2d82b32f6ea46456c │ +│ │ Owner: Immutable │ +│ │ Version: 211023823 │ +│ │ Digest: RYBVyTQo9HyNj5jFGQtG7NZ14R1u9JiL4DjJrH8mZth │ +│ └── │ +│ ┌── │ +│ │ ID: 0xb17ecb81e29ff8a7743139aa3eb432e1eb3ff52ccb1a699a31762c2d6803c7e8 │ +│ │ Owner: Immutable │ +│ │ Version: 211023823 │ +│ │ Digest: 9YK4mjyoiZJb1dtqZTZNgur1i21kwisbEuk143Jd8e22 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: HAMP7RaED9Ui8MLMvay56UWe8rQtfNkJnLyn4x9XNEc9 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf3a3e296329b424a8d714d4aca2a78cd26da6190f700ea8b611dd19753d32fa1 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ Version: 211023823 │ +│ │ Digest: 3ywzeKMBidwKcXMsgZKNzAzaMpUunL27sUfM5sPFBH1k │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x5e99e654ff8ace87888b67e7333a9a6fca9060ed8edcb4d09ec2dacc4c638097 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ Version: 211023823 │ +│ │ Digest: FA5qXwWrjNvVcYSrMDRnMM3XAdgveNm27c3PfcNm1v3P │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x5e99e654ff8ace87888b67e7333a9a6fca9060ed8edcb4d09ec2dacc4c638097 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ Version: 211023823 │ +│ │ Digest: FA5qXwWrjNvVcYSrMDRnMM3XAdgveNm27c3PfcNm1v3P │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 28287200 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 4XBzPPUYo9Cgx6G3yuBvx58uZaKs13KV3oxnv9nXiWtw │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x137d82fbc5d6e1dd1696f60f839a0d84464ec4d9fbe8769a1a270ff8b6e66113 │ +│ │ Sender: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124::Lumia001Coin::LUMIA001COIN> │ +│ │ Version: 211023823 │ +│ │ Digest: Da9Gvrk6MU1J4Voi4yTAhB1oLSxYQQpdubK6cYSYRfwA │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x3428d0b61176fcc6b8076be0ecc341f38643065028ec41ef176267cacb0af896 │ +│ │ Sender: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124::Lumia001Coin::LUMIA001COIN> │ +│ │ Version: 211023823 │ +│ │ Digest: HHENDt83cRt2HETFEoFiBp6iiBQDyt2vYz64weWsVrdn │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x55dba045d64cab75c3ac52a8c5add543d3dff9a1e2669a030b1a901971b16422 │ +│ │ Sender: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ │ Owner: Shared( 211023823 ) │ +│ │ ObjectType: 0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124::Lumia001Faucet::TreasuryCapHolder │ +│ │ Version: 211023823 │ +│ │ Digest: EwWyZqcGyP9WN7bKWNXf4yUpbhCb9VKe9gAfqCc1WJgV │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x9118a9feb9fd3ac4a1e4d67325e759a27d995a5080cca0a2d82b32f6ea46456c │ +│ │ Sender: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124::Lumia001Coin::LUMIA001COIN> │ +│ │ Version: 211023823 │ +│ │ Digest: RYBVyTQo9HyNj5jFGQtG7NZ14R1u9JiL4DjJrH8mZth │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xb17ecb81e29ff8a7743139aa3eb432e1eb3ff52ccb1a699a31762c2d6803c7e8 │ +│ │ Sender: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124::Lumia001Faucet::LUMIA001FAUCET> │ +│ │ Version: 211023823 │ +│ │ Digest: 9YK4mjyoiZJb1dtqZTZNgur1i21kwisbEuk143Jd8e22 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xf3a3e296329b424a8d714d4aca2a78cd26da6190f700ea8b611dd19753d32fa1 │ +│ │ Sender: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 211023823 │ +│ │ Digest: 3ywzeKMBidwKcXMsgZKNzAzaMpUunL27sUfM5sPFBH1k │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x5e99e654ff8ace87888b67e7333a9a6fca9060ed8edcb4d09ec2dacc4c638097 │ +│ │ Sender: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 211023823 │ +│ │ Digest: FA5qXwWrjNvVcYSrMDRnMM3XAdgveNm27c3PfcNm1v3P │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124 │ +│ │ Version: 1 │ +│ │ Digest: HAMP7RaED9Ui8MLMvay56UWe8rQtfNkJnLyn4x9XNEc9 │ +│ │ Modules: Lumia001Coin, Lumia001Faucet │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -28059080 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ CoinType: 0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124::Lumia001Coin::LUMIA001COIN │ +│ │ Amount: 100000000 │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ + +``` \ No newline at end of file diff --git a/mover/Lumia001/notes/task3.md b/mover/Lumia001/notes/task3.md new file mode 100644 index 000000000..48a61b22b --- /dev/null +++ b/mover/Lumia001/notes/task3.md @@ -0,0 +1,204 @@ + + +```text + +[warn] Client/Server api version mismatch, client api version : 1.26.0, server api version : 1.25.4 +UPDATING GIT DEPENDENCY https://gitee.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING lumia001 +Successfully verified dependencies on-chain against source. +Transaction Digest: 5hn6WcVyviopeVWgtbWRBmHgrgDPfbkGmWYY5iYDbGsV +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ Gas Owner: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x5e99e654ff8ace87888b67e7333a9a6fca9060ed8edcb4d09ec2dacc4c638097 │ +│ │ Version: 211023828 │ +│ │ Digest: 2rT5KBxW2Y9M7viHdwEmnNA53n5mYvwSioH4sviySrjH │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ EdrbEJ590sC0fLXtfjmUzai019VN0U0JzcMSlsRnpo/cGs7eJ4Xxx/4bBPpI38vMlSWoMb0VJ5gDFmArnrp1CQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 5hn6WcVyviopeVWgtbWRBmHgrgDPfbkGmWYY5iYDbGsV │ +│ Status: Success │ +│ Executed Epoch: 418 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x1bc8df3c64fcd4c05fad107c1ac3aec18cf09814d6e9e1a2456be56dfc8e6bf9 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 5y4LrghRkUmi2xfeaWGpqFmoPLsDVgwxgyc6hK4i3DWA │ +│ └── │ +│ ┌── │ +│ │ ID: 0x21334b3547671c5ffbb8836613207818811458fbc0b94527c02dccae369b6bb1 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ Version: 211023829 │ +│ │ Digest: BqHron3RG6VRQuTmRJDNgSfhNwVLLUxSuYRaJ4TBWu2T │ +│ └── │ +│ ┌── │ +│ │ ID: 0x34ba5082cb3ba007532edf514e6afbc9e062b3754bf72aa17ff9b4621a76b561 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ Version: 211023829 │ +│ │ Digest: 2X8wEKWkWeTiQTzVrK8LjGpd5SsN75qoVPfuqugneqo7 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xb1e20054b8026b954796277593d5b7e61a8806afe34a7c59296b07b40c8dcbd3 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ Version: 211023829 │ +│ │ Digest: JAkTcmTDYNDp6mNCp3oHCuduio7ybkTLLszfJWhpWXBk │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x5e99e654ff8ace87888b67e7333a9a6fca9060ed8edcb4d09ec2dacc4c638097 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ Version: 211023829 │ +│ │ Digest: xUqH2v61kW8NchB6CiGis7sEbb7R7iT9oZJMCNSsQjJ │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x5e99e654ff8ace87888b67e7333a9a6fca9060ed8edcb4d09ec2dacc4c638097 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ Version: 211023829 │ +│ │ Digest: xUqH2v61kW8NchB6CiGis7sEbb7R7iT9oZJMCNSsQjJ │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 15929600 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ CzD9G1KLrBTq4cWezM69aTPyrFKoHcrrb7Jt23PQQBr9 │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 5hn6WcVyviopeVWgtbWRBmHgrgDPfbkGmWYY5iYDbGsV:0 │ +│ │ PackageID: 0x1bc8df3c64fcd4c05fad107c1ac3aec18cf09814d6e9e1a2456be56dfc8e6bf9 │ +│ │ Transaction Module: Lumia001Nft │ +│ │ Sender: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ │ EventType: 0x2::display::DisplayCreated<0x1bc8df3c64fcd4c05fad107c1ac3aec18cf09814d6e9e1a2456be56dfc8e6bf9::Lumia001Nft::NFT> │ +│ │ ParsedJSON: │ +│ │ ┌────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ id │ 0x21334b3547671c5ffbb8836613207818811458fbc0b94527c02dccae369b6bb1 │ │ +│ │ └────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +│ ┌── │ +│ │ EventID: 5hn6WcVyviopeVWgtbWRBmHgrgDPfbkGmWYY5iYDbGsV:1 │ +│ │ PackageID: 0x1bc8df3c64fcd4c05fad107c1ac3aec18cf09814d6e9e1a2456be56dfc8e6bf9 │ +│ │ Transaction Module: Lumia001Nft │ +│ │ Sender: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ │ EventType: 0x2::display::VersionUpdated<0x1bc8df3c64fcd4c05fad107c1ac3aec18cf09814d6e9e1a2456be56dfc8e6bf9::Lumia001Nft::NFT> │ +│ │ ParsedJSON: │ +│ │ ┌─────────┬──────────┬───────┬──────────────────────────────────────────────────────┐ │ +│ │ │ fields │ contents │ key │ name │ │ +│ │ │ │ ├───────┼──────────────────────────────────────────────────────┤ │ +│ │ │ │ │ value │ Lumia001 │ │ +│ │ │ │ ├───────┼──────────────────────────────────────────────────────┤ │ +│ │ │ │ │ key │ image_url │ │ +│ │ │ │ ├───────┼──────────────────────────────────────────────────────┤ │ +│ │ │ │ │ value │ https://avatars.githubusercontent.com/u/44024489?v=4 │ │ +│ │ │ │ ├───────┼──────────────────────────────────────────────────────┤ │ +│ │ │ │ │ key │ description │ │ +│ │ │ │ ├───────┼──────────────────────────────────────────────────────┤ │ +│ │ │ │ │ value │ Lumia001's NFT. │ │ +│ │ ├─────────┼──────────┴───────┴──────────────────────────────────────────────────────┤ │ +│ │ │ id │ 0x21334b3547671c5ffbb8836613207818811458fbc0b94527c02dccae369b6bb1 │ │ +│ │ ├─────────┼─────────────────────────────────────────────────────────────────────────┤ │ +│ │ │ version │ 1 │ │ +│ │ └─────────┴─────────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x21334b3547671c5ffbb8836613207818811458fbc0b94527c02dccae369b6bb1 │ +│ │ Sender: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ ObjectType: 0x2::display::Display<0x1bc8df3c64fcd4c05fad107c1ac3aec18cf09814d6e9e1a2456be56dfc8e6bf9::Lumia001Nft::NFT> │ +│ │ Version: 211023829 │ +│ │ Digest: BqHron3RG6VRQuTmRJDNgSfhNwVLLUxSuYRaJ4TBWu2T │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x34ba5082cb3ba007532edf514e6afbc9e062b3754bf72aa17ff9b4621a76b561 │ +│ │ Sender: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 211023829 │ +│ │ Digest: 2X8wEKWkWeTiQTzVrK8LjGpd5SsN75qoVPfuqugneqo7 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xb1e20054b8026b954796277593d5b7e61a8806afe34a7c59296b07b40c8dcbd3 │ +│ │ Sender: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ ObjectType: 0x2::package::Publisher │ +│ │ Version: 211023829 │ +│ │ Digest: JAkTcmTDYNDp6mNCp3oHCuduio7ybkTLLszfJWhpWXBk │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x5e99e654ff8ace87888b67e7333a9a6fca9060ed8edcb4d09ec2dacc4c638097 │ +│ │ Sender: 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 211023829 │ +│ │ Digest: xUqH2v61kW8NchB6CiGis7sEbb7R7iT9oZJMCNSsQjJ │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x1bc8df3c64fcd4c05fad107c1ac3aec18cf09814d6e9e1a2456be56dfc8e6bf9 │ +│ │ Version: 1 │ +│ │ Digest: 5y4LrghRkUmi2xfeaWGpqFmoPLsDVgwxgyc6hK4i3DWA │ +│ │ Modules: Lumia001Nft │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -15701480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` \ No newline at end of file diff --git a/mover/Lumia001/readme.md b/mover/Lumia001/readme.md new file mode 100644 index 000000000..dc4251f5d --- /dev/null +++ b/mover/Lumia001/readme.md @@ -0,0 +1,57 @@ +## 基本信息 + +- Sui钱包地址: `0x4887f3c29909a93ca193609fa28b9c3f35ee01ac352346fc9d56d2d50126ad59` + +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 + +- github: `Lumia001` + +## 个人简介 + +- 工作经验: 3年 +- 技术栈: `Java` + +> 重要提示 请认真写自己的简介 + +- 3年+web2开发经验,对Wen3特别感兴趣,想通过Move入门Web3的开发 +- 联系方式: tg: `xxx` + +## 任务 + +## 01 hello move + +- [x] Sui cli version: sui 1.26.0-homebrew +- [x] Sui钱包截图: ![Sui钱包截图](./images/task1/sui-wallet.png) +- [x] package id: 0xc058ade4e367c72a2f5884fb02a7496e8db2493d72dd17a27d2d6cfd51292ed9 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/task1/suiscan_view.png) + +## 02 move coin + +- [x] My Coin package id : 0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124 +- [x] Faucet package id : 0xeca401e43db776c5a3149e27245c747907858abc38382a672e0f85d28d2ba124 +- [x] 转账 `My Coin` hash: CgxjPrr86B2CdM3qcRevt1acGU6HffCRabp7EYrctCRa +- [x] `Faucet Coin` address1 mint hash: 88E6YAC3LiLApMwNvdnyKGDiZ8PcCyVRHSxkUHENiYQo +- [x] `Faucet Coin` address2 mint hash: AfY1nD8RGBhGhkuSFnAwdaFb2NdoPuKM8FyD22G9Nh96 + +## 03 move NFT + +- [x] nft package id : 0x1bc8df3c64fcd4c05fad107c1ac3aec18cf09814d6e9e1a2456be56dfc8e6bf9 +- [x] nft object id : 0x21334b3547671c5ffbb8836613207818811458fbc0b94527c02dccae369b6bb1 +- [x] 转账 nft hash: 3WAkvwTaVEFn2EQph8mh2vTmx1teGxZdYMiNXQ4aWKz9 +- [x] scan上的NFT截图:![Scan截图](./images/task3/task3-nft.png) +## 04 Move Game + +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap + +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB + +- [] save hash : diff --git a/mover/Luozzedc/notes/q.png b/mover/Luozzedc/notes/q.png new file mode 100644 index 000000000..a225e1299 Binary files /dev/null and b/mover/Luozzedc/notes/q.png differ diff --git a/mover/Luozzedc/readme.md b/mover/Luozzedc/readme.md index f7b4dd0c4..4abc5456b 100644 --- a/mover/Luozzedc/readme.md +++ b/mover/Luozzedc/readme.md @@ -34,3 +34,12 @@ ## 06 SDK PTB - [x] save hash : `6SuDgitkQqoagSKrvJwhV2c1FZy2XKVALuP6gSgJxBhz` + + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./notes/q.png) +- [x] flag hash : `6T3kF5FEYTz5yzvourUcCdm9BtCB6gzPC7LHEtSnkhu3` + +## 08 Move CTF Lets Move +- [x] proof : `c020c499faf55824b38f` +- [x] flag hash : `8H1iUMtAs5tgR8LnaHXiVmezpcgj1ZjLQdspiAjhe1Dj` \ No newline at end of file diff --git a/mover/MagicalBridge/code/readme.md b/mover/MagicalBridge/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/MagicalBridge/code/task1/hello_myFirstMove/Move.lock b/mover/MagicalBridge/code/task1/hello_myFirstMove/Move.lock new file mode 100644 index 000000000..a8eeba380 --- /dev/null +++ b/mover/MagicalBridge/code/task1/hello_myFirstMove/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "DB61B90FAE3207FD10025338DC026C88F23B0B21F2E6FFBA1513D8FC27E76488" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.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 = "0x0bb5a46c11fdb41edb1ab792aa40d4cb357122f47520c13e1a29be010431c7c2" +latest-published-id = "0x0bb5a46c11fdb41edb1ab792aa40d4cb357122f47520c13e1a29be010431c7c2" +published-version = "1" diff --git a/mover/MagicalBridge/code/task1/hello_myFirstMove/Move.toml b/mover/MagicalBridge/code/task1/hello_myFirstMove/Move.toml new file mode 100644 index 000000000..1047ec6c4 --- /dev/null +++ b/mover/MagicalBridge/code/task1/hello_myFirstMove/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_myFirstMove" +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/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] +hello_myfirstmove = "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/MagicalBridge/code/task1/hello_myFirstMove/sources/hello_myfirstmove.move b/mover/MagicalBridge/code/task1/hello_myFirstMove/sources/hello_myfirstmove.move new file mode 100644 index 000000000..5c351f58d --- /dev/null +++ b/mover/MagicalBridge/code/task1/hello_myFirstMove/sources/hello_myfirstmove.move @@ -0,0 +1,19 @@ +module hello_myfirstmove::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"MagicalBridge"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/MagicalBridge/code/task1/hello_myFirstMove/tests/hello_myfirstmove_tests.move b/mover/MagicalBridge/code/task1/hello_myFirstMove/tests/hello_myfirstmove_tests.move new file mode 100644 index 000000000..7c2323138 --- /dev/null +++ b/mover/MagicalBridge/code/task1/hello_myFirstMove/tests/hello_myfirstmove_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_myfirstmove::hello_myfirstmove_tests { + // uncomment this line to import the module + // use hello_myfirstmove::hello_myfirstmove; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_myfirstmove() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_myfirstmove::hello_myfirstmove_tests::ENotImplemented)] + fun test_hello_myfirstmove_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/.gitignore b/mover/MagicalBridge/code/task1/my-first-sui-dapp/.gitignore new file mode 100644 index 000000000..b0656eeb0 --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/.gitignore @@ -0,0 +1,6 @@ +lib +node_modules +.vscode +package-lock.json +.idea +.DS_Store \ No newline at end of file diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/README.md b/mover/MagicalBridge/code/task1/my-first-sui-dapp/README.md new file mode 100644 index 000000000..ec054a25a --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/README.md @@ -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": "" + } +}' +``` + +### 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 = ""; +``` + +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 +``` diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/index.html b/mover/MagicalBridge/code/task1/my-first-sui-dapp/index.html new file mode 100644 index 000000000..bb7f75b16 --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/index.html @@ -0,0 +1,59 @@ + + + + + + + Sui dApp Starter + + + + +
+ + + diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/move/counter/Move.lock b/mover/MagicalBridge/code/task1/my-first-sui-dapp/move/counter/Move.lock new file mode 100644 index 000000000..e84169d2a --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/move/counter/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "DE30C35B5C1AFB26D08A6E1857A1405AB1D75C07A9246A0F292CB36722DAD80F" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.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 = "0x597e0bfefc998c57ea88998c728baf208e21287f6a6733e841062fce37bd8d8f" +latest-published-id = "0x597e0bfefc998c57ea88998c728baf208e21287f6a6733e841062fce37bd8d8f" +published-version = "1" diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/move/counter/Move.toml b/mover/MagicalBridge/code/task1/my-first-sui-dapp/move/counter/Move.toml new file mode 100644 index 000000000..0230dec55 --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/move/counter/Move.toml @@ -0,0 +1,10 @@ +[package] +name = "counter" +version = "0.0.1" +edition = "2024.beta" + +[dependencies] +Sui = { git = "https://gitee.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } + +[addresses] +counter = "0x0" diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/move/counter/sources/counter.move b/mover/MagicalBridge/code/task1/my-first-sui-dapp/move/counter/sources/counter.move new file mode 100644 index 000000000..857c95d19 --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/move/counter/sources/counter.move @@ -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) + } +} diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/package.json b/mover/MagicalBridge/code/task1/my-first-sui-dapp/package.json new file mode 100644 index 000000000..99a9f6c50 --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/package.json @@ -0,0 +1,35 @@ +{ + "name": "my-first-sui-dapp", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@mysten/dapp-kit": "0.14.10", + "@mysten/sui": "1.2.0", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@tanstack/react-query": "^5.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } +} \ No newline at end of file diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/prettier.config.cjs b/mover/MagicalBridge/code/task1/my-first-sui-dapp/prettier.config.cjs new file mode 100644 index 000000000..c07541106 --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/prettier.config.cjs @@ -0,0 +1,4 @@ +// eslint-disable-next-line no-undef +module.exports = { + proseWrap: "always", +}; diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/App.tsx b/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/App.tsx new file mode 100644 index 000000000..dd5506c95 --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/App.tsx @@ -0,0 +1,61 @@ +import { ConnectButton, useCurrentAccount } from "@mysten/dapp-kit"; +import { isValidSuiObjectId } from "@mysten/sui/utils"; +import { Box, Container, Flex, Heading } from "@radix-ui/themes"; +import { useState } from "react"; +import { Counter } from "./Counter"; +import { CreateCounter } from "./CreateCounter"; + +function App() { + const currentAccount = useCurrentAccount(); + const [counterId, setCounter] = useState(() => { + const hash = window.location.hash.slice(1); + return isValidSuiObjectId(hash) ? hash : null; + }); + + return ( + <> + + + dApp Starter Template + + + + + + + + + {currentAccount ? ( + counterId ? ( + + ) : ( + { + window.location.hash = id; + setCounter(id); + }} + /> + ) + ) : ( + Please connect your wallet + )} + + + + ); +} + +export default App; diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/Counter.tsx b/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/Counter.tsx new file mode 100644 index 000000000..bbd54cfd2 --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/Counter.tsx @@ -0,0 +1,87 @@ +import { + useCurrentAccount, + useSignAndExecuteTransaction, + useSuiClient, + useSuiClientQuery, +} from "@mysten/dapp-kit"; +import type { SuiObjectData } from "@mysten/sui/client"; +import { Transaction } from "@mysten/sui/transactions"; +import { Button, Flex, Heading, Text } from "@radix-ui/themes"; +import { useNetworkVariable } from "./networkConfig"; + +export function Counter({ id }: { id: string }) { + const client = useSuiClient(); + const currentAccount = useCurrentAccount(); + const counterPackageId = useNetworkVariable("counterPackageId"); + const { mutate: signAndExecute } = useSignAndExecuteTransaction(); + const { data, isPending, error, refetch } = useSuiClientQuery("getObject", { + id, + options: { + showContent: true, + showOwner: true, + }, + }); + + const executeMoveCall = (method: "increment" | "reset") => { + const tx = new Transaction(); + + if (method === "reset") { + tx.moveCall({ + arguments: [tx.object(id), tx.pure.u64(0)], + target: `${counterPackageId}::counter::set_value`, + }); + } else { + tx.moveCall({ + arguments: [tx.object(id)], + target: `${counterPackageId}::counter::increment`, + }); + } + + signAndExecute( + { + transaction: tx, + }, + { + onSuccess: (tx) => { + client.waitForTransaction({ digest: tx.digest }).then(() => { + refetch(); + }); + }, + }, + ); + }; + + if (isPending) return Loading...; + + if (error) return Error: {error.message}; + + if (!data.data) return Not found; + + const ownedByCurrentAccount = + getCounterFields(data.data)?.owner === currentAccount?.address; + + return ( + <> + Counter {id} + + + Count: {getCounterFields(data.data)?.value} + + + {ownedByCurrentAccount ? ( + + ) : null} + + + + ); +} +function getCounterFields(data: SuiObjectData) { + if (data.content?.dataType !== "moveObject") { + return null; + } + + return data.content.fields as { value: number; owner: string }; +} diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/CreateCounter.tsx b/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/CreateCounter.tsx new file mode 100644 index 000000000..38dc3f93f --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/CreateCounter.tsx @@ -0,0 +1,60 @@ +import { Transaction } from "@mysten/sui/transactions"; +import { Button, Container } from "@radix-ui/themes"; +import { useSignAndExecuteTransaction, useSuiClient } from "@mysten/dapp-kit"; +import { useNetworkVariable } from "./networkConfig"; + +export function CreateCounter({ + onCreated, +}: { + onCreated: (id: string) => void; +}) { + const client = useSuiClient(); + const counterPackageId = useNetworkVariable("counterPackageId"); + const { mutate: signAndExecute } = useSignAndExecuteTransaction(); + + return ( + + + + ); + + function create() { + const tx = new Transaction(); + + tx.moveCall({ + arguments: [], + target: `${counterPackageId}::counter::create`, + }); + + signAndExecute( + { + transaction: tx, + }, + { + onSuccess: ({ digest }) => { + client + .waitForTransaction({ + digest: digest, + options: { + showEffects: true, + }, + }) + .then((tx) => { + const objectId = tx.effects?.created?.[0]?.reference?.objectId; + + if (objectId) { + onCreated(objectId); + } + }); + }, + }, + ); + } +} diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/constants.ts b/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/constants.ts new file mode 100644 index 000000000..ba9d6d3be --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/constants.ts @@ -0,0 +1,3 @@ +export const DEVNET_COUNTER_PACKAGE_ID = "0xTODO"; +export const TESTNET_COUNTER_PACKAGE_ID = "0x597e0bfefc998c57ea88998c728baf208e21287f6a6733e841062fce37bd8d8f"; +export const MAINNET_COUNTER_PACKAGE_ID = "0xTODO"; diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/main.tsx b/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/main.tsx new file mode 100644 index 000000000..55f323a5d --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/main.tsx @@ -0,0 +1,26 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "@mysten/dapp-kit/dist/index.css"; +import "@radix-ui/themes/styles.css"; + +import { SuiClientProvider, WalletProvider } from "@mysten/dapp-kit"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { Theme } from "@radix-ui/themes"; +import App from "./App.tsx"; +import { networkConfig } from "./networkConfig.ts"; + +const queryClient = new QueryClient(); + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + + + + + + + , +); diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/networkConfig.ts b/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/networkConfig.ts new file mode 100644 index 000000000..7b6f8b73d --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/networkConfig.ts @@ -0,0 +1,31 @@ +import { getFullnodeUrl } from "@mysten/sui/client"; +import { + DEVNET_COUNTER_PACKAGE_ID, + TESTNET_COUNTER_PACKAGE_ID, + MAINNET_COUNTER_PACKAGE_ID, +} from "./constants.ts"; +import { createNetworkConfig } from "@mysten/dapp-kit"; + +const { networkConfig, useNetworkVariable, useNetworkVariables } = + createNetworkConfig({ + devnet: { + url: getFullnodeUrl("devnet"), + variables: { + counterPackageId: DEVNET_COUNTER_PACKAGE_ID, + }, + }, + testnet: { + url: getFullnodeUrl("testnet"), + variables: { + counterPackageId: TESTNET_COUNTER_PACKAGE_ID, + }, + }, + mainnet: { + url: getFullnodeUrl("mainnet"), + variables: { + counterPackageId: MAINNET_COUNTER_PACKAGE_ID, + }, + }, + }); + +export { useNetworkVariable, useNetworkVariables, networkConfig }; diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/vite-env.d.ts b/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/tsconfig.json b/mover/MagicalBridge/code/task1/my-first-sui-dapp/tsconfig.json new file mode 100644 index 000000000..a7fc6fbf2 --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/tsconfig.node.json b/mover/MagicalBridge/code/task1/my-first-sui-dapp/tsconfig.node.json new file mode 100644 index 000000000..42872c59f --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/vite.config.ts b/mover/MagicalBridge/code/task1/my-first-sui-dapp/vite.config.ts new file mode 100644 index 000000000..d366e8c8d --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); diff --git a/mover/MagicalBridge/code/task1/my-first-sui-dapp/yarn.lock b/mover/MagicalBridge/code/task1/my-first-sui-dapp/yarn.lock new file mode 100644 index 000000000..b763ea2c5 --- /dev/null +++ b/mover/MagicalBridge/code/task1/my-first-sui-dapp/yarn.lock @@ -0,0 +1,2408 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@0no-co/graphql.web@^1.0.5": + version "1.0.7" + resolved "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz#c7a762c887b3482a79ffa68f63de5e96059a62e4" + integrity sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ== + +"@0no-co/graphqlsp@^1.12.9": + version "1.12.10" + resolved "https://registry.npmjs.org/@0no-co/graphqlsp/-/graphqlsp-1.12.10.tgz#efb119b8296c019cbc91bfd7ebe1497d1c698913" + integrity sha512-PrkGVc+XhSjU+7ALSjd4ANlyRZkKOdmOGqj7bqPcKI6C+opuN5MeXSBWKE9383EW27/+MkY+/U1LAaCoZKtkfQ== + dependencies: + "@gql.tada/internal" "^1.0.0" + graphql "^15.5.0 || ^16.0.0 || ^17.0.0" + +"@babel/parser@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" + integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== + +"@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz#f4f0d5530e8dbdf59b3451b9b3e594b6ba082e12" + integrity sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw== + dependencies: + regenerator-runtime "^0.14.0" + +"@emotion/hash@^0.9.0": + version "0.9.1" + resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43" + integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== + +"@esbuild/android-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" + integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== + +"@esbuild/android-arm@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" + integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== + +"@esbuild/android-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" + integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== + +"@esbuild/darwin-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" + integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== + +"@esbuild/darwin-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" + integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== + +"@esbuild/freebsd-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" + integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== + +"@esbuild/freebsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" + integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== + +"@esbuild/linux-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" + integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== + +"@esbuild/linux-arm@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" + integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== + +"@esbuild/linux-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" + integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== + +"@esbuild/linux-loong64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" + integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== + +"@esbuild/linux-mips64el@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" + integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== + +"@esbuild/linux-ppc64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" + integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== + +"@esbuild/linux-riscv64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" + integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== + +"@esbuild/linux-s390x@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" + integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== + +"@esbuild/linux-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" + integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== + +"@esbuild/netbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" + integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== + +"@esbuild/openbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" + integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== + +"@esbuild/sunos-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" + integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== + +"@esbuild/win32-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" + integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== + +"@esbuild/win32-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" + integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== + +"@esbuild/win32-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" + integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": + version "4.11.0" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" + integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== + +"@floating-ui/core@^1.0.0": + version "1.6.3" + resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.3.tgz#5e7bb92843f47fd1d8dcb9b3cc3c243aaed54f95" + integrity sha512-1ZpCvYf788/ZXOhRQGFxnYQOVgeU+pi0i+d0Ow34La7qjIXETi6RNswGVKkA6KcDO8/+Ysu2E/CeUmmeEBDvTg== + dependencies: + "@floating-ui/utils" "^0.2.3" + +"@floating-ui/dom@^1.0.0": + version "1.6.6" + resolved "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.6.tgz#be54c1ab2d19112ad323e63dbeb08185fed0ffd3" + integrity sha512-qiTYajAnh3P+38kECeffMSQgbvXty2VB6rS+42iWR4FPIlZjLK84E9qtLnMTLIpPz2znD/TaFqaiavMUrS+Hcw== + dependencies: + "@floating-ui/core" "^1.0.0" + "@floating-ui/utils" "^0.2.3" + +"@floating-ui/react-dom@^2.0.0": + version "2.1.1" + resolved "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.1.tgz#cca58b6b04fc92b4c39288252e285e0422291fb0" + integrity sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg== + dependencies: + "@floating-ui/dom" "^1.0.0" + +"@floating-ui/utils@^0.2.3": + version "0.2.3" + resolved "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.3.tgz#506fcc73f730affd093044cb2956c31ba6431545" + integrity sha512-XGndio0l5/Gvd6CLIABvsav9HHezgDFFhDfHk1bvLfr9ni8dojqLSvBbotJEjmIwNHL7vK4QzBJTdBRoB+c1ww== + +"@gql.tada/cli-utils@1.4.0": + version "1.4.0" + resolved "https://registry.npmjs.org/@gql.tada/cli-utils/-/cli-utils-1.4.0.tgz#96aeee0229772f8f0ef3338563140f5eed58e87a" + integrity sha512-8CeKMsUHQSj2MVTJqb6LRfanfhfDrPyfmiYuLY75/aKnRBk70Oe3m7YuBc6/QzatLjj6egxPezNdt25MTluSpg== + dependencies: + "@0no-co/graphqlsp" "^1.12.9" + "@gql.tada/internal" "1.0.2" + "@vue/compiler-dom" "^3.4.23" + "@vue/language-core" "^2.0.17" + graphql "^15.5.0 || ^16.0.0 || ^17.0.0" + svelte2tsx "^0.7.6" + +"@gql.tada/internal@1.0.2", "@gql.tada/internal@^1.0.0": + version "1.0.2" + resolved "https://registry.npmjs.org/@gql.tada/internal/-/internal-1.0.2.tgz#24d64c3f82e1bd9be2b47da92d08c4c1071183c0" + integrity sha512-5PH+l47yRpz97YCuKiBdIyLRRCM9fJ56J7yEnwMny1RIR8U4CV39eT0VokvHUjFY6x2Kxh4fH4KeJYezssiOXw== + dependencies: + "@0no-co/graphql.web" "^1.0.5" + +"@graphql-typed-document-node/core@^3.2.0": + version "3.2.0" + resolved "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== + +"@humanwhocodes/config-array@^0.11.14": + version "0.11.14" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== + dependencies: + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.3" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== + +"@mysten/bcs@1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@mysten/bcs/-/bcs-1.0.2.tgz#d24b051f1a0652d44f61d0a6d8b94f7351fdae1e" + integrity sha512-haHT0km/9yIIe8lwo8gDFxGLnoxfRF4WmEVCz4lDXbEVQRsZkF0zB97kukiwMjDuFBaGVUhrOMCLz6td8tSMaQ== + dependencies: + bs58 "^5.0.0" + +"@mysten/dapp-kit@0.14.10": + version "0.14.10" + resolved "https://registry.npmjs.org/@mysten/dapp-kit/-/dapp-kit-0.14.10.tgz#2029e952c3e7542d67ce1fb8798a552357ed3f0e" + integrity sha512-IjCRND4pgr8nr2fLg9XLEACtyxTO1Y4/Fl8/5taxZyhb09kTfS7hcpHkRw3xPmJ/b83DOQW3X0/l/d213k4OVQ== + dependencies: + "@mysten/sui" "1.2.0" + "@mysten/wallet-standard" "0.12.10" + "@mysten/zksend" "0.9.10" + "@radix-ui/react-dialog" "^1.0.4" + "@radix-ui/react-dropdown-menu" "^2.0.5" + "@radix-ui/react-slot" "^1.0.2" + "@vanilla-extract/css" "^1.13.0" + "@vanilla-extract/dynamic" "^2.0.3" + "@vanilla-extract/recipes" "^0.5.0" + clsx "^2.0.0" + zustand "^4.4.1" + +"@mysten/sui@1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@mysten/sui/-/sui-1.2.0.tgz#b3f5ad5932ac1c52901b7c26a6e0d3b57de16a48" + integrity sha512-USDOckZPGcwi2QAuKHEcieoVuW8Xgsm8vtKyXaRrhVLG2t2q3hCEigquiLXh7S3okBbD/P35xjvhR9PdUeqweA== + dependencies: + "@graphql-typed-document-node/core" "^3.2.0" + "@mysten/bcs" "1.0.2" + "@noble/curves" "^1.1.0" + "@noble/hashes" "^1.3.1" + "@scure/bip32" "^1.3.1" + "@scure/bip39" "^1.2.1" + "@suchipi/femver" "^1.0.0" + bech32 "^2.0.0" + gql.tada "^1.7.0" + graphql "^16.8.1" + tweetnacl "^1.0.3" + valibot "^0.25.0" + +"@mysten/wallet-standard@0.12.10": + version "0.12.10" + resolved "https://registry.npmjs.org/@mysten/wallet-standard/-/wallet-standard-0.12.10.tgz#fa0da6aee74a83138595c1e63e3da332c7e82b10" + integrity sha512-hwy9S63D/J9llrGHDRqmJTauUcAL2tKeiRut9NdePCe4BJphzowwZxTLZTsyam4fT2K2yvufyVZwp4Ij4FII6Q== + dependencies: + "@mysten/sui" "1.2.0" + "@wallet-standard/core" "1.0.3" + +"@mysten/zksend@0.9.10": + version "0.9.10" + resolved "https://registry.npmjs.org/@mysten/zksend/-/zksend-0.9.10.tgz#33fe0487881886988b4c5b1d38becc71b75a1fa6" + integrity sha512-ExKtKZT9bL3BKTQZww1zOv8gFDju/40rx2kqjO+qy2Ju+0Mc3jmtoR7NYpCdPK19DvvOl0eKGs6f2P+LN0+rlQ== + dependencies: + "@mysten/sui" "1.2.0" + "@mysten/wallet-standard" "0.12.10" + mitt "^3.0.1" + nanostores "^0.9.3" + valibot "^0.25.0" + +"@noble/curves@^1.1.0", "@noble/curves@~1.4.0": + version "1.4.0" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.4.0.tgz#f05771ef64da724997f69ee1261b2417a49522d6" + integrity sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg== + dependencies: + "@noble/hashes" "1.4.0" + +"@noble/hashes@1.4.0", "@noble/hashes@^1.3.1", "@noble/hashes@~1.4.0": + version "1.4.0" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@radix-ui/colors@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@radix-ui/colors/-/colors-3.0.0.tgz#e8a591a303c44e503bd1212cacf40a09511165e0" + integrity sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg== + +"@radix-ui/number@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.0.tgz#1e95610461a09cdf8bb05c152e76ca1278d5da46" + integrity sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ== + +"@radix-ui/primitive@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz#e46f9958b35d10e9f6dc71c497305c22e3e55dbd" + integrity sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/primitive@1.1.0", "@radix-ui/primitive@^1.0.1": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz#42ef83b3b56dccad5d703ae8c42919a68798bbe2" + integrity sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA== + +"@radix-ui/react-accessible-icon@^1.0.3": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.1.0.tgz#2ae1f2b21842cc3ed4b829203b557951112b7c91" + integrity sha512-i9Zg4NOSXlfUva0agzI2DjWrvFJm9uO4L6CMW7nmMa5CIOOX/Yin894W7WwjodFQWPwe5kmAJ4JF33R8slKI2g== + dependencies: + "@radix-ui/react-visually-hidden" "1.1.0" + +"@radix-ui/react-alert-dialog@^1.0.5": + version "1.1.1" + resolved "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.1.tgz#f49c987b9e4f2bf37005b3864933e2b3beac907a" + integrity sha512-wmCoJwj7byuVuiLKqDLlX7ClSUU0vd9sdCeM+2Ls+uf13+cpSJoMgwysHq1SGVVkJj5Xn0XWi1NoRCdkMpr6Mw== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-dialog" "1.1.1" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-slot" "1.1.0" + +"@radix-ui/react-arrow@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz#744f388182d360b86285217e43b6c63633f39e7a" + integrity sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw== + dependencies: + "@radix-ui/react-primitive" "2.0.0" + +"@radix-ui/react-aspect-ratio@^1.0.3": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.0.tgz#b646d044420a63046ad794db1efa3001c4be24ef" + integrity sha512-dP87DM/Y7jFlPgUZTlhx6FF5CEzOiaxp2rBCKlaXlpH5Ip/9Fg5zZ9lDOQ5o/MOfUlf36eak14zoWYpgcgGoOg== + dependencies: + "@radix-ui/react-primitive" "2.0.0" + +"@radix-ui/react-avatar@^1.0.4": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.0.tgz#457c81334c93f4608df15f081e7baa286558d6a2" + integrity sha512-Q/PbuSMk/vyAd/UoIShVGZ7StHHeRFYU7wXmi5GV+8cLXflZAEpHL/F697H1klrzxKXNtZ97vWiC0q3RKUH8UA== + dependencies: + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-layout-effect" "1.1.0" + +"@radix-ui/react-checkbox@^1.0.4": + version "1.1.1" + resolved "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.1.tgz#a559c4303957d797acee99914480b755aa1f27d6" + integrity sha512-0i/EKJ222Afa1FE0C6pNJxDq1itzcl3HChE9DwskA4th4KRse8ojx8a1nVcOjwJdbpDLcz7uol77yYnQNMHdKw== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-presence" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-use-previous" "1.1.0" + "@radix-ui/react-use-size" "1.1.0" + +"@radix-ui/react-collection@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz#f18af78e46454a2360d103c2251773028b7724ed" + integrity sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw== + dependencies: + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-slot" "1.1.0" + +"@radix-ui/react-compose-refs@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz#7ed868b66946aa6030e580b1ffca386dd4d21989" + integrity sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-compose-refs@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz#656432461fc8283d7b591dcf0d79152fae9ecc74" + integrity sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw== + +"@radix-ui/react-context-menu@^2.1.5": + version "2.2.1" + resolved "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.2.1.tgz#a2c7812336a40cd22900c888336ad6e1adc6a1bc" + integrity sha512-wvMKKIeb3eOrkJ96s722vcidZ+2ZNfcYZWBPRHIB1VWrF+fiF851Io6LX0kmK5wTDQFKdulCCKJk2c3SBaQHvA== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-menu" "2.1.1" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + +"@radix-ui/react-context@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz#fe46e67c96b240de59187dcb7a1a50ce3e2ec00c" + integrity sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-context@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz#6df8d983546cfd1999c8512f3a8ad85a6e7fcee8" + integrity sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A== + +"@radix-ui/react-dialog@1.1.1", "@radix-ui/react-dialog@^1.0.4", "@radix-ui/react-dialog@^1.0.5": + version "1.1.1" + resolved "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.1.tgz#4906507f7b4ad31e22d7dad69d9330c87c431d44" + integrity sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-dismissable-layer" "1.1.0" + "@radix-ui/react-focus-guards" "1.1.0" + "@radix-ui/react-focus-scope" "1.1.0" + "@radix-ui/react-id" "1.1.0" + "@radix-ui/react-portal" "1.1.1" + "@radix-ui/react-presence" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-slot" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + aria-hidden "^1.1.1" + react-remove-scroll "2.5.7" + +"@radix-ui/react-direction@1.1.0", "@radix-ui/react-direction@^1.0.1": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz#a7d39855f4d077adc2a1922f9c353c5977a09cdc" + integrity sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg== + +"@radix-ui/react-dismissable-layer@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz#2cd0a49a732372513733754e6032d3fb7988834e" + integrity sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-escape-keydown" "1.1.0" + +"@radix-ui/react-dropdown-menu@^2.0.5", "@radix-ui/react-dropdown-menu@^2.0.6": + version "2.1.1" + resolved "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.1.tgz#3dc578488688250dbbe109d9ff2ca28a9bca27ec" + integrity sha512-y8E+x9fBq9qvteD2Zwa4397pUVhYsh9iq44b5RD5qu1GMJWBCBuVg1hMyItbc6+zH00TxGRqd9Iot4wzf3OoBQ== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-id" "1.1.0" + "@radix-ui/react-menu" "2.1.1" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + +"@radix-ui/react-focus-guards@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.0.tgz#8e9abb472a9a394f59a1b45f3dd26cfe3fc6da13" + integrity sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw== + +"@radix-ui/react-focus-scope@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz#ebe2891a298e0a33ad34daab2aad8dea31caf0b2" + integrity sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA== + dependencies: + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-callback-ref" "1.1.0" + +"@radix-ui/react-form@^0.0.3": + version "0.0.3" + resolved "https://registry.npmjs.org/@radix-ui/react-form/-/react-form-0.0.3.tgz#328e7163e723ccc748459d66a2d685d7b4f85d5a" + integrity sha512-kgE+Z/haV6fxE5WqIXj05KkaXa3OkZASoTDy25yX2EIp/x0c54rOH/vFr5nOZTg7n7T1z8bSyXmiVIFP9bbhPQ== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/primitive" "1.0.1" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-context" "1.0.1" + "@radix-ui/react-id" "1.0.1" + "@radix-ui/react-label" "2.0.2" + "@radix-ui/react-primitive" "1.0.3" + +"@radix-ui/react-hover-card@^1.0.7": + version "1.1.1" + resolved "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.1.tgz#2982a5a91c7ae5a98e0cacd845fbdfbfdcdab355" + integrity sha512-IwzAOP97hQpDADYVKrEEHUH/b2LA+9MgB0LgdmnbFO2u/3M5hmEofjjr2M6CyzUblaAqJdFm6B7oFtU72DPXrA== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-dismissable-layer" "1.1.0" + "@radix-ui/react-popper" "1.2.0" + "@radix-ui/react-portal" "1.1.1" + "@radix-ui/react-presence" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + +"@radix-ui/react-icons@^1.3.0": + version "1.3.0" + resolved "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz#c61af8f323d87682c5ca76b856d60c2312dbcb69" + integrity sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw== + +"@radix-ui/react-id@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz#73cdc181f650e4df24f0b6a5b7aa426b912c88c0" + integrity sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-layout-effect" "1.0.1" + +"@radix-ui/react-id@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz#de47339656594ad722eb87f94a6b25f9cffae0ed" + integrity sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA== + dependencies: + "@radix-ui/react-use-layout-effect" "1.1.0" + +"@radix-ui/react-label@2.0.2": + version "2.0.2" + resolved "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.0.2.tgz#9c72f1d334aac996fdc27b48a8bdddd82108fb6d" + integrity sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-primitive" "1.0.3" + +"@radix-ui/react-menu@2.1.1": + version "2.1.1" + resolved "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.1.tgz#bd623ace0e1ae1ac78023a505fec0541d59fb346" + integrity sha512-oa3mXRRVjHi6DZu/ghuzdylyjaMXLymx83irM7hTxutQbD+7IhPKdMdRHD26Rm+kHRrWcrUkkRPv5pd47a2xFQ== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-collection" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-direction" "1.1.0" + "@radix-ui/react-dismissable-layer" "1.1.0" + "@radix-ui/react-focus-guards" "1.1.0" + "@radix-ui/react-focus-scope" "1.1.0" + "@radix-ui/react-id" "1.1.0" + "@radix-ui/react-popper" "1.2.0" + "@radix-ui/react-portal" "1.1.1" + "@radix-ui/react-presence" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-roving-focus" "1.1.0" + "@radix-ui/react-slot" "1.1.0" + "@radix-ui/react-use-callback-ref" "1.1.0" + aria-hidden "^1.1.1" + react-remove-scroll "2.5.7" + +"@radix-ui/react-popover@^1.0.7": + version "1.1.1" + resolved "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.1.tgz#604b783cdb3494ed4f16a58c17f0e81e61ab7775" + integrity sha512-3y1A3isulwnWhvTTwmIreiB8CF4L+qRjZnK1wYLO7pplddzXKby/GnZ2M7OZY3qgnl6p9AodUIHRYGXNah8Y7g== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-dismissable-layer" "1.1.0" + "@radix-ui/react-focus-guards" "1.1.0" + "@radix-ui/react-focus-scope" "1.1.0" + "@radix-ui/react-id" "1.1.0" + "@radix-ui/react-popper" "1.2.0" + "@radix-ui/react-portal" "1.1.1" + "@radix-ui/react-presence" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-slot" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + aria-hidden "^1.1.1" + react-remove-scroll "2.5.7" + +"@radix-ui/react-popper@1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz#a3e500193d144fe2d8f5d5e60e393d64111f2a7a" + integrity sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg== + dependencies: + "@floating-ui/react-dom" "^2.0.0" + "@radix-ui/react-arrow" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-use-rect" "1.1.0" + "@radix-ui/react-use-size" "1.1.0" + "@radix-ui/rect" "1.1.0" + +"@radix-ui/react-portal@1.1.1", "@radix-ui/react-portal@^1.0.4": + version "1.1.1" + resolved "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz#1957f1eb2e1aedfb4a5475bd6867d67b50b1d15f" + integrity sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g== + dependencies: + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-layout-effect" "1.1.0" + +"@radix-ui/react-presence@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.0.tgz#227d84d20ca6bfe7da97104b1a8b48a833bfb478" + integrity sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ== + dependencies: + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-use-layout-effect" "1.1.0" + +"@radix-ui/react-primitive@1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz#d49ea0f3f0b2fe3ab1cb5667eb03e8b843b914d0" + integrity sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-slot" "1.0.2" + +"@radix-ui/react-primitive@2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz#fe05715faa9203a223ccc0be15dc44b9f9822884" + integrity sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw== + dependencies: + "@radix-ui/react-slot" "1.1.0" + +"@radix-ui/react-radio-group@^1.1.3": + version "1.2.0" + resolved "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.2.0.tgz#f937dd6b9436ded80c4bebdf3901c20cb8bcbb5a" + integrity sha512-yv+oiLaicYMBpqgfpSPw6q+RyXlLdIpQWDHZbUKURxe+nEh53hFXPPlfhfQQtYkS5MMK/5IWIa76SksleQZSzw== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-direction" "1.1.0" + "@radix-ui/react-presence" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-roving-focus" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-use-previous" "1.1.0" + "@radix-ui/react-use-size" "1.1.0" + +"@radix-ui/react-roving-focus@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz#b30c59daf7e714c748805bfe11c76f96caaac35e" + integrity sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-collection" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-direction" "1.1.0" + "@radix-ui/react-id" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + +"@radix-ui/react-scroll-area@^1.0.5": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.1.0.tgz#50b24b0fc9ada151d176395bcf47b2ec68feada5" + integrity sha512-9ArIZ9HWhsrfqS765h+GZuLoxaRHD/j0ZWOWilsCvYTpYJp8XwCqNG7Dt9Nu/TItKOdgLGkOPCodQvDc+UMwYg== + dependencies: + "@radix-ui/number" "1.1.0" + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-direction" "1.1.0" + "@radix-ui/react-presence" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-layout-effect" "1.1.0" + +"@radix-ui/react-select@^2.0.0": + version "2.1.1" + resolved "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.1.tgz#df05cb0b29d3deaef83b505917c4042e0e418a9f" + integrity sha512-8iRDfyLtzxlprOo9IicnzvpsO1wNCkuwzzCM+Z5Rb5tNOpCdMvcc2AkzX0Fz+Tz9v6NJ5B/7EEgyZveo4FBRfQ== + dependencies: + "@radix-ui/number" "1.1.0" + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-collection" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-direction" "1.1.0" + "@radix-ui/react-dismissable-layer" "1.1.0" + "@radix-ui/react-focus-guards" "1.1.0" + "@radix-ui/react-focus-scope" "1.1.0" + "@radix-ui/react-id" "1.1.0" + "@radix-ui/react-popper" "1.2.0" + "@radix-ui/react-portal" "1.1.1" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-slot" "1.1.0" + "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-use-previous" "1.1.0" + "@radix-ui/react-visually-hidden" "1.1.0" + aria-hidden "^1.1.1" + react-remove-scroll "2.5.7" + +"@radix-ui/react-separator@^1.0.3": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.0.tgz#ee0f4d86003b0e3ea7bc6ccab01ea0adee32663e" + integrity sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA== + dependencies: + "@radix-ui/react-primitive" "2.0.0" + +"@radix-ui/react-slider@^1.1.2": + version "1.2.0" + resolved "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.2.0.tgz#7a4c817d24386b420631a3fdc75563706d743472" + integrity sha512-dAHCDA4/ySXROEPaRtaMV5WHL8+JB/DbtyTbJjYkY0RXmKMO2Ln8DFZhywG5/mVQ4WqHDBc8smc14yPXPqZHYA== + dependencies: + "@radix-ui/number" "1.1.0" + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-collection" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-direction" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-use-previous" "1.1.0" + "@radix-ui/react-use-size" "1.1.0" + +"@radix-ui/react-slot@1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz#a9ff4423eade67f501ffb32ec22064bc9d3099ab" + integrity sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-compose-refs" "1.0.1" + +"@radix-ui/react-slot@1.1.0", "@radix-ui/react-slot@^1.0.2": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz#7c5e48c36ef5496d97b08f1357bb26ed7c714b84" + integrity sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw== + dependencies: + "@radix-ui/react-compose-refs" "1.1.0" + +"@radix-ui/react-switch@^1.0.3": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.0.tgz#fcf8e778500f1d60d4b2bec2fc3fad77a7c118e3" + integrity sha512-OBzy5WAj641k0AOSpKQtreDMe+isX0MQJ1IVyF03ucdF3DunOnROVrjWs8zsXUxC3zfZ6JL9HFVCUlMghz9dJw== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-use-previous" "1.1.0" + "@radix-ui/react-use-size" "1.1.0" + +"@radix-ui/react-tabs@^1.0.4": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.0.tgz#0a6db1caed56776a1176aae68532060e301cc1c0" + integrity sha512-bZgOKB/LtZIij75FSuPzyEti/XBhJH52ExgtdVqjCIh+Nx/FW+LhnbXtbCzIi34ccyMsyOja8T0thCzoHFXNKA== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-direction" "1.1.0" + "@radix-ui/react-id" "1.1.0" + "@radix-ui/react-presence" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-roving-focus" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + +"@radix-ui/react-tooltip@^1.0.7": + version "1.1.2" + resolved "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.2.tgz#c42db2ffd7dcc6ff3d65407c8cb70490288f518d" + integrity sha512-9XRsLwe6Yb9B/tlnYCPVUd/TFS4J7HuOZW345DCeC6vKIxQGMZdx21RK4VoZauPD5frgkXTYVS5y90L+3YBn4w== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-dismissable-layer" "1.1.0" + "@radix-ui/react-id" "1.1.0" + "@radix-ui/react-popper" "1.2.0" + "@radix-ui/react-portal" "1.1.1" + "@radix-ui/react-presence" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-slot" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-visually-hidden" "1.1.0" + +"@radix-ui/react-use-callback-ref@1.1.0", "@radix-ui/react-use-callback-ref@^1.0.1": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz#bce938ca413675bc937944b0d01ef6f4a6dc5bf1" + integrity sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw== + +"@radix-ui/react-use-controllable-state@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz#1321446857bb786917df54c0d4d084877aab04b0" + integrity sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw== + dependencies: + "@radix-ui/react-use-callback-ref" "1.1.0" + +"@radix-ui/react-use-escape-keydown@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz#31a5b87c3b726504b74e05dac1edce7437b98754" + integrity sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw== + dependencies: + "@radix-ui/react-use-callback-ref" "1.1.0" + +"@radix-ui/react-use-layout-effect@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz#be8c7bc809b0c8934acf6657b577daf948a75399" + integrity sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-use-layout-effect@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz#3c2c8ce04827b26a39e442ff4888d9212268bd27" + integrity sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w== + +"@radix-ui/react-use-previous@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz#d4dd37b05520f1d996a384eb469320c2ada8377c" + integrity sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og== + +"@radix-ui/react-use-rect@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz#13b25b913bd3e3987cc9b073a1a164bb1cf47b88" + integrity sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ== + dependencies: + "@radix-ui/rect" "1.1.0" + +"@radix-ui/react-use-size@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz#b4dba7fbd3882ee09e8d2a44a3eed3a7e555246b" + integrity sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw== + dependencies: + "@radix-ui/react-use-layout-effect" "1.1.0" + +"@radix-ui/react-visually-hidden@1.1.0", "@radix-ui/react-visually-hidden@^1.0.3": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz#ad47a8572580f7034b3807c8e6740cd41038a5a2" + integrity sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ== + dependencies: + "@radix-ui/react-primitive" "2.0.0" + +"@radix-ui/rect@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz#f817d1d3265ac5415dadc67edab30ae196696438" + integrity sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg== + +"@radix-ui/themes@^2.0.0": + version "2.0.3" + resolved "https://registry.npmjs.org/@radix-ui/themes/-/themes-2.0.3.tgz#c9e8f4029d73769f356dbe29c97ce3cbade601a8" + integrity sha512-yaXQ8aWT2P1CQ0Xe6YCRD9HXsfMTvKkrIYkrc4aitCzhGTLS0sjtTqKmrxIWMVA+3DIbEuG9K/8aAMRJBhep8g== + dependencies: + "@radix-ui/colors" "^3.0.0" + "@radix-ui/primitive" "^1.0.1" + "@radix-ui/react-accessible-icon" "^1.0.3" + "@radix-ui/react-alert-dialog" "^1.0.5" + "@radix-ui/react-aspect-ratio" "^1.0.3" + "@radix-ui/react-avatar" "^1.0.4" + "@radix-ui/react-checkbox" "^1.0.4" + "@radix-ui/react-context-menu" "^2.1.5" + "@radix-ui/react-dialog" "^1.0.5" + "@radix-ui/react-direction" "^1.0.1" + "@radix-ui/react-dropdown-menu" "^2.0.6" + "@radix-ui/react-form" "^0.0.3" + "@radix-ui/react-hover-card" "^1.0.7" + "@radix-ui/react-popover" "^1.0.7" + "@radix-ui/react-portal" "^1.0.4" + "@radix-ui/react-radio-group" "^1.1.3" + "@radix-ui/react-scroll-area" "^1.0.5" + "@radix-ui/react-select" "^2.0.0" + "@radix-ui/react-separator" "^1.0.3" + "@radix-ui/react-slider" "^1.1.2" + "@radix-ui/react-slot" "^1.0.2" + "@radix-ui/react-switch" "^1.0.3" + "@radix-ui/react-tabs" "^1.0.4" + "@radix-ui/react-tooltip" "^1.0.7" + "@radix-ui/react-use-callback-ref" "^1.0.1" + "@radix-ui/react-visually-hidden" "^1.0.3" + classnames "^2.3.2" + +"@scure/base@~1.1.6": + version "1.1.7" + resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.7.tgz#fe973311a5c6267846aa131bc72e96c5d40d2b30" + integrity sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g== + +"@scure/bip32@^1.3.1": + version "1.4.0" + resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz#4e1f1e196abedcef395b33b9674a042524e20d67" + integrity sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg== + dependencies: + "@noble/curves" "~1.4.0" + "@noble/hashes" "~1.4.0" + "@scure/base" "~1.1.6" + +"@scure/bip39@^1.2.1": + version "1.3.0" + resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz#0f258c16823ddd00739461ac31398b4e7d6a18c3" + integrity sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ== + dependencies: + "@noble/hashes" "~1.4.0" + "@scure/base" "~1.1.6" + +"@suchipi/femver@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz#4909dcc069695e07bd23a64c4bfe411d11d9692f" + integrity sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg== + +"@swc/core-darwin-arm64@1.6.6": + version "1.6.6" + resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.6.6.tgz#9488d50394cb08713c4321a940b48599c1c5e153" + integrity sha512-5DA8NUGECcbcK1YLKJwNDKqdtTYDVnkfDU1WvQSXq/rU+bjYCLtn5gCe8/yzL7ISXA6rwqPU1RDejhbNt4ARLQ== + +"@swc/core-darwin-x64@1.6.6": + version "1.6.6" + resolved "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.6.6.tgz#0b13ae43e1821fd447acfb789979c59bec2d0081" + integrity sha512-2nbh/RHpweNRsJiYDFk1KcX7UtaKgzzTNUjwtvK5cp0wWrpbXmPvdlWOx3yzwoiSASDFx78242JHHXCIOlEdsw== + +"@swc/core-linux-arm-gnueabihf@1.6.6": + version "1.6.6" + resolved "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.6.6.tgz#8dd3e76b887478cedd38d34f1de3c0b8f853d1b8" + integrity sha512-YgytuyUfR7b0z0SRHKV+ylr83HmgnROgeT7xryEkth6JGpAEHooCspQ4RrWTU8+WKJ7aXiZlGXPgybQ4TiS+TA== + +"@swc/core-linux-arm64-gnu@1.6.6": + version "1.6.6" + resolved "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.6.6.tgz#4d6369975d8a077f01cf9f6cee60402529ef67a6" + integrity sha512-yGwx9fddzEE0iURqRVwKBQ4IwRHE6hNhl15WliHpi/PcYhzmYkUIpcbRXjr0dssubXAVPVnx6+jZVDSbutvnfg== + +"@swc/core-linux-arm64-musl@1.6.6": + version "1.6.6" + resolved "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.6.6.tgz#5f0ec779e465242796277d07a3100bd5ccaec6ef" + integrity sha512-a6fMbqzSAsS5KCxFJyg1mD5kwN3ZFO8qQLyJ75R/htZP/eCt05jrhmOI7h2n+1HjiG332jLnZ9S8lkVE5O8Nqw== + +"@swc/core-linux-x64-gnu@1.6.6": + version "1.6.6" + resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.6.6.tgz#30a92064e016f29b8fe85500fa4e71050c60ae74" + integrity sha512-hRGsUKNzzZle28YF0dYIpN0bt9PceR9LaVBq7x8+l9TAaDLFbgksSxcnU/ubTtsy+WsYSYGn+A83w3xWC0O8CQ== + +"@swc/core-linux-x64-musl@1.6.6": + version "1.6.6" + resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.6.6.tgz#59a14e4a90644142b8c90972f5d29cfdde88de78" + integrity sha512-NokIUtFxJDVv3LzGeEtYMTV3j2dnGKLac59luTeq36DQLZdJQawQIdTbzzWl2jE7lxxTZme+dhsVOH9LxE3ceg== + +"@swc/core-win32-arm64-msvc@1.6.6": + version "1.6.6" + resolved "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.6.6.tgz#c81f6e9be1df76273100a422ceec887781244b5d" + integrity sha512-lzYdI4qb4k1dFG26yv+9Jaq/bUMAhgs/2JsrLncGjLof86+uj74wKYCQnbzKAsq2hDtS5DqnHnl+//J+miZfGA== + +"@swc/core-win32-ia32-msvc@1.6.6": + version "1.6.6" + resolved "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.6.6.tgz#0381e95282fdcf5f5f9731b56dad5c5e4da870ce" + integrity sha512-bvl7FMaXIJQ76WZU0ER4+RyfKIMGb6S2MgRkBhJOOp0i7VFx4WLOnrmMzaeoPJaJSkityVKAftfNh7NBzTIydQ== + +"@swc/core-win32-x64-msvc@1.6.6": + version "1.6.6" + resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.6.6.tgz#e511013aa3f71125d6385123469cdd30db141070" + integrity sha512-WAP0JoCTfgeYKgOeYJoJV4ZS0sQUmU3OwvXa2dYYtMLF7zsNqOiW4niU7QlThBHgUv/qNZm2p6ITEgh3w1cltw== + +"@swc/core@^1.5.7": + version "1.6.6" + resolved "https://registry.npmjs.org/@swc/core/-/core-1.6.6.tgz#fefaa3a6bdd1c6991a9ed67648bc058a0d29d4b8" + integrity sha512-sHfmIUPUXNrQTwFMVCY5V5Ena2GTOeaWjS2GFUpjLhAgVfP90OP67DWow7+cYrfFtqBdILHuWnjkTcd0+uPKlg== + dependencies: + "@swc/counter" "^0.1.3" + "@swc/types" "^0.1.9" + optionalDependencies: + "@swc/core-darwin-arm64" "1.6.6" + "@swc/core-darwin-x64" "1.6.6" + "@swc/core-linux-arm-gnueabihf" "1.6.6" + "@swc/core-linux-arm64-gnu" "1.6.6" + "@swc/core-linux-arm64-musl" "1.6.6" + "@swc/core-linux-x64-gnu" "1.6.6" + "@swc/core-linux-x64-musl" "1.6.6" + "@swc/core-win32-arm64-msvc" "1.6.6" + "@swc/core-win32-ia32-msvc" "1.6.6" + "@swc/core-win32-x64-msvc" "1.6.6" + +"@swc/counter@^0.1.3": + version "0.1.3" + resolved "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" + integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== + +"@swc/types@^0.1.9": + version "0.1.9" + resolved "https://registry.npmjs.org/@swc/types/-/types-0.1.9.tgz#e67cdcc2e4dd74a3cef4474b465eb398e7ae83e2" + integrity sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg== + dependencies: + "@swc/counter" "^0.1.3" + +"@tanstack/query-core@5.49.0": + version "5.49.0" + resolved "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.49.0.tgz#c5d81e944709d81b49fb5f494480d5e9f46da51e" + integrity sha512-xUTjCPHC8G+ZvIUzjoMOLnMpNXYPQI4HjhlizTVVBwtSp24iWo4/kaBzHAzsrCVyfbiaPIFFkUvicsY4r8kF8A== + +"@tanstack/react-query@^5.0.0": + version "5.49.0" + resolved "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.49.0.tgz#9ca93e477e7bcec7e087c7a885a924f88f338cc9" + integrity sha512-3A0BDwGVk6UzWFdz+WTC9HHts9kI42XYLK78/DGmoj9fd6W/NsjEjI5S4lPPebgq9cWWPo9QNciaSWfH71RgNg== + dependencies: + "@tanstack/query-core" "5.49.0" + +"@types/json-schema@^7.0.12": + version "7.0.15" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/prop-types@*": + version "15.7.12" + resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== + +"@types/react-dom@^18.2.7": + version "18.3.0" + resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0" + integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^18.2.15": + version "18.3.3" + resolved "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f" + integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@types/semver@^7.5.0": + version "7.5.8" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== + +"@typescript-eslint/eslint-plugin@^6.1.0": + version "6.21.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3" + integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== + dependencies: + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/type-utils" "6.21.0" + "@typescript-eslint/utils" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/parser@^6.1.0": + version "6.21.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" + integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== + dependencies: + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@6.21.0": + version "6.21.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" + integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== + dependencies: + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + +"@typescript-eslint/type-utils@6.21.0": + version "6.21.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e" + integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag== + dependencies: + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/utils" "6.21.0" + debug "^4.3.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/types@6.21.0": + version "6.21.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" + integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== + +"@typescript-eslint/typescript-estree@6.21.0": + version "6.21.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" + integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== + dependencies: + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "9.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/utils@6.21.0": + version "6.21.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134" + integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" + semver "^7.5.4" + +"@typescript-eslint/visitor-keys@6.21.0": + version "6.21.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" + integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== + dependencies: + "@typescript-eslint/types" "6.21.0" + eslint-visitor-keys "^3.4.1" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@vanilla-extract/css@^1.13.0": + version "1.15.3" + resolved "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.15.3.tgz#debf04f61496e290b53f045a2cb6966cc1ba9448" + integrity sha512-mxoskDAxdQAspbkmQRxBvolUi1u1jnyy9WZGm+GeH8V2wwhEvndzl1QoK7w8JfA0WFevTxbev5d+i+xACZlPhA== + dependencies: + "@emotion/hash" "^0.9.0" + "@vanilla-extract/private" "^1.0.5" + css-what "^6.1.0" + cssesc "^3.0.0" + csstype "^3.0.7" + dedent "^1.5.3" + deep-object-diff "^1.1.9" + deepmerge "^4.2.2" + media-query-parser "^2.0.2" + modern-ahocorasick "^1.0.0" + picocolors "^1.0.0" + +"@vanilla-extract/dynamic@^2.0.3": + version "2.1.1" + resolved "https://registry.npmjs.org/@vanilla-extract/dynamic/-/dynamic-2.1.1.tgz#bc93a577b127a7dcb6f254973d13a863029a7faf" + integrity sha512-iqf736036ujEIKsIq28UsBEMaLC2vR2DhwKyrG3NDb/fRy9qL9FKl1TqTtBV4daU30Uh3saeik4vRzN8bzQMbw== + dependencies: + "@vanilla-extract/private" "^1.0.5" + +"@vanilla-extract/private@^1.0.5": + version "1.0.5" + resolved "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.5.tgz#8c08ac4851f4cc89a3dcdb858d8938e69b1481c4" + integrity sha512-6YXeOEKYTA3UV+RC8DeAjFk+/okoNz/h88R+McnzA2zpaVqTR/Ep+vszkWYlGBcMNO7vEkqbq5nT/JMMvhi+tw== + +"@vanilla-extract/recipes@^0.5.0": + version "0.5.3" + resolved "https://registry.npmjs.org/@vanilla-extract/recipes/-/recipes-0.5.3.tgz#c65f2998fc189924845614ccd9f79c9334639f1a" + integrity sha512-SPREq1NmaoKuvJeOV0pppOkwy3pWZUoDufsyQ6iHrbkHhAU7XQqG9o0iZSmg5JoVgDLIiOr9djQb0x9wuxig7A== + +"@vitejs/plugin-react-swc@^3.3.2": + version "3.7.0" + resolved "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.0.tgz#e456c0a6d7f562268e1d231af9ac46b86ef47d88" + integrity sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA== + dependencies: + "@swc/core" "^1.5.7" + +"@volar/language-core@~2.3.1": + version "2.3.4" + resolved "https://registry.npmjs.org/@volar/language-core/-/language-core-2.3.4.tgz#51de0263039a567a12a1eea90e02e59cdbf5de3b" + integrity sha512-wXBhY11qG6pCDAqDnbBRFIDSIwbqkWI7no+lj5+L7IlA7HRIjRP7YQLGzT0LF4lS6eHkMSsclXqy9DwYJasZTQ== + dependencies: + "@volar/source-map" "2.3.4" + +"@volar/source-map@2.3.4": + version "2.3.4" + resolved "https://registry.npmjs.org/@volar/source-map/-/source-map-2.3.4.tgz#1d285610134fe565ca59a54e5a99c12befc70c93" + integrity sha512-C+t63nwcblqLIVTYXaVi/+gC8NukDaDIQI72J3R7aXGvtgaVB16c+J8Iz7/VfOy7kjYv7lf5GhBny6ACw9fTGQ== + +"@vue/compiler-core@3.4.31": + version "3.4.31" + resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.31.tgz#b51a76f1b30e9b5eba0553264dff0f171aedb7c6" + integrity sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg== + dependencies: + "@babel/parser" "^7.24.7" + "@vue/shared" "3.4.31" + entities "^4.5.0" + estree-walker "^2.0.2" + source-map-js "^1.2.0" + +"@vue/compiler-dom@^3.4.0", "@vue/compiler-dom@^3.4.23": + version "3.4.31" + resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.31.tgz#30961ca847f5d6ad18ffa26236c219f61b195f6b" + integrity sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ== + dependencies: + "@vue/compiler-core" "3.4.31" + "@vue/shared" "3.4.31" + +"@vue/language-core@^2.0.17": + version "2.0.22" + resolved "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.22.tgz#2f8164ecc83f85f27301521d0a6ce37cc59bb23a" + integrity sha512-dNTAAtEOuMiz7N1s5tKpypnVVCtawxVSF5BukD0ELcYSw+DSbrSlYYSw8GuwvurodCeYFSHsmslE+c2sYDNoiA== + dependencies: + "@volar/language-core" "~2.3.1" + "@vue/compiler-dom" "^3.4.0" + "@vue/shared" "^3.4.0" + computeds "^0.0.1" + minimatch "^9.0.3" + muggle-string "^0.4.1" + path-browserify "^1.0.1" + vue-template-compiler "^2.7.14" + +"@vue/shared@3.4.31", "@vue/shared@^3.4.0": + version "3.4.31" + resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.4.31.tgz#af9981f57def2c3f080c14bf219314fc0dc808a0" + integrity sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA== + +"@wallet-standard/app@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@wallet-standard/app/-/app-1.0.1.tgz#f83c3ae887f7fb52497a7b259bba734ae10a2994" + integrity sha512-LnLYq2Vy2guTZ8GQKKSXQK3+FRGPil75XEdkZqE6fiLixJhZJoJa5hT7lXxwe0ykVTt9LEThdTbOpT7KadS26Q== + dependencies: + "@wallet-standard/base" "^1.0.1" + +"@wallet-standard/base@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@wallet-standard/base/-/base-1.0.1.tgz#860dd94d47c9e3c5c43b79d91c6afdbd7a36264e" + integrity sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w== + +"@wallet-standard/core@1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@wallet-standard/core/-/core-1.0.3.tgz#3b6743e207ca4e1e725ae20f1838b400fb0694ff" + integrity sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg== + dependencies: + "@wallet-standard/app" "^1.0.1" + "@wallet-standard/base" "^1.0.1" + "@wallet-standard/features" "^1.0.3" + "@wallet-standard/wallet" "^1.0.1" + +"@wallet-standard/features@^1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@wallet-standard/features/-/features-1.0.3.tgz#c992876c5e4f7a0672f8869c4146c87e0dfe48c8" + integrity sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA== + dependencies: + "@wallet-standard/base" "^1.0.1" + +"@wallet-standard/wallet@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@wallet-standard/wallet/-/wallet-1.0.1.tgz#95438941a2a1ee12a794444357b59d53e19b374c" + integrity sha512-qkhJeuQU2afQTZ02yMZE5SFc91Fo3hyFjFkpQglHudENNyiSG0oUKcIjky8X32xVSaumgTZSQUAzpXnCTWHzKQ== + dependencies: + "@wallet-standard/base" "^1.0.1" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^8.9.0: + version "8.12.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz#1627bfa2e058148036133b8d9b51a700663c294c" + integrity sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw== + +ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-hidden@^1.1.1: + version "1.2.4" + resolved "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz#b78e383fdbc04d05762c78b4a25a501e736c4522" + integrity sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A== + dependencies: + tslib "^2.0.0" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-x@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" + integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw== + +bech32@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" + integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +bs58@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279" + integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ== + dependencies: + base-x "^4.0.0" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +classnames@^2.3.2: + version "2.5.1" + resolved "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== + +clsx@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +computeds@^0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz#215b08a4ba3e08a11ff6eee5d6d8d7166a97ce2e" + integrity sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csstype@^3.0.2, csstype@^3.0.7: + version "3.1.3" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== + +debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.5" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== + dependencies: + ms "2.1.2" + +dedent-js@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz#bee5fb7c9e727d85dffa24590d10ec1ab1255305" + integrity sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ== + +dedent@^1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" + integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deep-object-diff@^1.1.9: + version "1.1.9" + resolved "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz#6df7ef035ad6a0caa44479c536ed7b02570f4595" + integrity sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +detect-node-es@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493" + integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +entities@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +esbuild@^0.18.10: + version "0.18.20" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== + optionalDependencies: + "@esbuild/android-arm" "0.18.20" + "@esbuild/android-arm64" "0.18.20" + "@esbuild/android-x64" "0.18.20" + "@esbuild/darwin-arm64" "0.18.20" + "@esbuild/darwin-x64" "0.18.20" + "@esbuild/freebsd-arm64" "0.18.20" + "@esbuild/freebsd-x64" "0.18.20" + "@esbuild/linux-arm" "0.18.20" + "@esbuild/linux-arm64" "0.18.20" + "@esbuild/linux-ia32" "0.18.20" + "@esbuild/linux-loong64" "0.18.20" + "@esbuild/linux-mips64el" "0.18.20" + "@esbuild/linux-ppc64" "0.18.20" + "@esbuild/linux-riscv64" "0.18.20" + "@esbuild/linux-s390x" "0.18.20" + "@esbuild/linux-x64" "0.18.20" + "@esbuild/netbsd-x64" "0.18.20" + "@esbuild/openbsd-x64" "0.18.20" + "@esbuild/sunos-x64" "0.18.20" + "@esbuild/win32-arm64" "0.18.20" + "@esbuild/win32-ia32" "0.18.20" + "@esbuild/win32-x64" "0.18.20" + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-plugin-react-hooks@^4.6.0: + version "4.6.2" + resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz#c829eb06c0e6f484b3fbb85a97e57784f328c596" + integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== + +eslint-plugin-react-refresh@^0.4.3: + version "0.4.7" + resolved "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.7.tgz#1f597f9093b254f10ee0961c139a749acb19af7d" + integrity sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw== + +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.45.0: + version "8.57.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.9: + version "3.3.2" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +get-nonce@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" + integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gql.tada@^1.7.0: + version "1.8.0" + resolved "https://registry.npmjs.org/gql.tada/-/gql.tada-1.8.0.tgz#d74e81d22e0f26e8d02cacc99403f2a065503dde" + integrity sha512-BsdmtWPmCb3oorPnU6DidBNsIDTjbvRc7P5LUZ43ISMz9dNsl2vFvT7i1AEsbK2xV5AtdjgywPKAFHJd4dQr6Q== + dependencies: + "@0no-co/graphql.web" "^1.0.5" + "@0no-co/graphqlsp" "^1.12.9" + "@gql.tada/cli-utils" "1.4.0" + "@gql.tada/internal" "1.0.2" + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +"graphql@^15.5.0 || ^16.0.0 || ^17.0.0", graphql@^16.8.1: + version "16.9.0" + resolved "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz#1c310e63f16a49ce1fbb230bd0a000e99f6f115f" + integrity sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +ignore@^5.2.0, ignore@^5.2.4: + version "5.3.1" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +loose-envify@^1.0.0, loose-envify@^1.1.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +media-query-parser@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/media-query-parser/-/media-query-parser-2.0.2.tgz#ff79e56cee92615a304a1c2fa4f2bd056c0a1d29" + integrity sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w== + dependencies: + "@babel/runtime" "^7.12.5" + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.7" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^9.0.3: + version "9.0.5" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +mitt@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" + integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== + +modern-ahocorasick@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-1.0.1.tgz#dec373444f51b5458ac05216a8ec376e126dd283" + integrity sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +muggle-string@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz#3b366bd43b32f809dc20659534dd30e7c8a0d328" + integrity sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ== + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +nanostores@^0.9.3: + version "0.9.5" + resolved "https://registry.npmjs.org/nanostores/-/nanostores-0.9.5.tgz#4fcfce9786c4bf16e045a899cda2e46e90780a5b" + integrity sha512-Z+p+g8E7yzaWwOe5gEUB2Ox0rCEeXWYIZWmYvw/ajNYX8DlXdMvMDj8DWfM/subqPAcsf8l8Td4iAwO1DeIIRQ== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +pascal-case@^3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-browserify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +postcss@^8.4.27: + version "8.4.38" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.2.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier@^3.0.0: + version "3.3.2" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz#03ff86dc7c835f2d2559ee76876a3914cec4a90a" + integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA== + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +react-dom@^18.2.0: + version "18.3.1" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.2" + +react-remove-scroll-bar@^2.3.4: + version "2.3.6" + resolved "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz#3e585e9d163be84a010180b18721e851ac81a29c" + integrity sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g== + dependencies: + react-style-singleton "^2.2.1" + tslib "^2.0.0" + +react-remove-scroll@2.5.7: + version "2.5.7" + resolved "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz#15a1fd038e8497f65a695bf26a4a57970cac1ccb" + integrity sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA== + dependencies: + react-remove-scroll-bar "^2.3.4" + react-style-singleton "^2.2.1" + tslib "^2.1.0" + use-callback-ref "^1.3.0" + use-sidecar "^1.1.2" + +react-style-singleton@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz#f99e420492b2d8f34d38308ff660b60d0b1205b4" + integrity sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g== + dependencies: + get-nonce "^1.0.0" + invariant "^2.2.4" + tslib "^2.0.0" + +react@^18.2.0: + version "18.3.1" + resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rollup@^3.27.1: + version "3.29.4" + resolved "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" + integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== + optionalDependencies: + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== + dependencies: + loose-envify "^1.1.0" + +semver@^7.5.4: + version "7.6.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +svelte2tsx@^0.7.6: + version "0.7.13" + resolved "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.13.tgz#d9f19277dd9f74b5894c77ddebcf09ed67c9f5e9" + integrity sha512-aObZ93/kGAiLXA/I/kP+x9FriZM+GboB/ReOIGmLNbVGEd2xC+aTCppm3mk1cc9I/z60VQf7b2QDxC3jOXu3yw== + dependencies: + dedent-js "^1.0.1" + pascal-case "^3.1.1" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +ts-api-utils@^1.0.1: + version "1.3.0" + resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" + integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== + +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0: + version "2.6.3" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + +tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +typescript@^5.3.3: + version "5.5.2" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz#c26f023cb0054e657ce04f72583ea2d85f8d0507" + integrity sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +use-callback-ref@^1.3.0: + version "1.3.2" + resolved "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz#6134c7f6ff76e2be0b56c809b17a650c942b1693" + integrity sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA== + dependencies: + tslib "^2.0.0" + +use-sidecar@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz#2f43126ba2d7d7e117aa5855e5d8f0276dfe73c2" + integrity sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw== + dependencies: + detect-node-es "^1.1.0" + tslib "^2.0.0" + +use-sync-external-store@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" + integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== + +valibot@^0.25.0: + version "0.25.0" + resolved "https://registry.npmjs.org/valibot/-/valibot-0.25.0.tgz#bdbb3a6e910f983b5a65b56b2bff24dfd09064ca" + integrity sha512-cmD0ca15oyAbT75iYLNW6uU6doAeIwYfOshpXka/E1Bx4frzbkrgb7gvkI7K0YK/DVOksei4FfxWfRoBP3NFTg== + +vite@^4.4.4: + version "4.5.3" + resolved "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz#d88a4529ea58bae97294c7e2e6f0eab39a50fb1a" + integrity sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg== + dependencies: + esbuild "^0.18.10" + postcss "^8.4.27" + rollup "^3.27.1" + optionalDependencies: + fsevents "~2.3.2" + +vue-template-compiler@^2.7.14: + version "2.7.16" + resolved "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz#c81b2d47753264c77ac03b9966a46637482bb03b" + integrity sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ== + dependencies: + de-indent "^1.0.2" + he "^1.2.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zustand@^4.4.1: + version "4.5.4" + resolved "https://registry.npmjs.org/zustand/-/zustand-4.5.4.tgz#63abdd81edfb190bc61e0bbae045cc4d52158a05" + integrity sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg== + dependencies: + use-sync-external-store "1.2.0" diff --git a/mover/MagicalBridge/images/packageid.png b/mover/MagicalBridge/images/packageid.png new file mode 100644 index 000000000..8ffba410d Binary files /dev/null and b/mover/MagicalBridge/images/packageid.png differ diff --git a/mover/MagicalBridge/images/suiwallet.png b/mover/MagicalBridge/images/suiwallet.png new file mode 100644 index 000000000..cbd9b8a25 Binary files /dev/null and b/mover/MagicalBridge/images/suiwallet.png differ diff --git a/mover/MagicalBridge/notes/readme.md b/mover/MagicalBridge/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/MagicalBridge/readme.md b/mover/MagicalBridge/readme.md new file mode 100644 index 000000000..9281e08b4 --- /dev/null +++ b/mover/MagicalBridge/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x5f7178a20ba8223e479af5606f79b106160da9c06e588b4e0075028f956ad72f` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `MagicalBridge` + +## 个人简介 +- 工作经验: 7年 +- 技术栈: `Rust` `Javascript` `Solidity` +> 重要提示 请认真写自己的简介 + 7web2全栈开发经验,对Move特别感兴趣,想掌握Move语言,了解sui公链的相关开发 +- 联系方式: tg: `magicalLouis` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.27.2-homebrew +- [x] Sui钱包截图: ![Sui钱包截图](./images/suiwallet.png) +- [x] package id: 0x0bb5a46c11fdb41edb1ab792aa40d4cb357122f47520c13e1a29be010431c7c2 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/packageid.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/Maqihao01/notes/111.png b/mover/Maqihao01/notes/111.png new file mode 100644 index 000000000..fb4a7fd61 Binary files /dev/null and b/mover/Maqihao01/notes/111.png differ diff --git a/mover/Maqihao01/readme.md b/mover/Maqihao01/readme.md index 13b0db64e..49ef28a52 100644 --- a/mover/Maqihao01/readme.md +++ b/mover/Maqihao01/readme.md @@ -44,3 +44,11 @@ ## 06 SDK PTB - [x] save hash : [J3RTijmy42AudV1Af784jaoCUCSRJCxCVxqq3Zee9jNV](https://suivision.xyz/txblock/J3RTijmy42AudV1Af784jaoCUCSRJCxCVxqq3Zee9jNV) + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](notes/111.png) +- [x] flag hash : HZMEdPym4wwcboy4iqcfVHqBQHwfAPSrKXcSJU1M23U1 + +## 08 Move CTF Lets Move +- [x] proof : f5a78d2ae884ff1fd630 +- [x] flag hash : 4M4U6RVPj5rzgwkuPPykZ8DrCQm5V6CuRvFfkEnvvYUd \ No newline at end of file diff --git a/mover/Mengyantong/code/task1/hello_world/Move.lock b/mover/Mengyantong/code/task1/hello_world/Move.lock new file mode 100644 index 000000000..ed7bd6ddb --- /dev/null +++ b/mover/Mengyantong/code/task1/hello_world/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "60F2000F4D6DAD240EF371DB3BC521F7BD4C8B814BC59CA473B852B77FDBE53C" +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.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x22fc7e5fd93240d025a4ae30b88629fa39b4545f30595c82d469ab941dd1a817" +latest-published-id = "0x22fc7e5fd93240d025a4ae30b88629fa39b4545f30595c82d469ab941dd1a817" +published-version = "1" diff --git a/mover/Mengyantong/code/task1/hello_world/Move.toml b/mover/Mengyantong/code/task1/hello_world/Move.toml new file mode 100644 index 000000000..201de1731 --- /dev/null +++ b/mover/Mengyantong/code/task1/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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] +hello_world = "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/Mengyantong/code/task1/hello_world/sources/hello_world.move b/mover/Mengyantong/code/task1/hello_world/sources/hello_world.move new file mode 100644 index 000000000..692f662b1 --- /dev/null +++ b/mover/Mengyantong/code/task1/hello_world/sources/hello_world.move @@ -0,0 +1,20 @@ +module hello_world::hello_world { + + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"Mengyantong"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/Mengyantong/code/task1/hello_world/tests/hello_world_tests.move b/mover/Mengyantong/code/task1/hello_world/tests/hello_world_tests.move new file mode 100644 index 000000000..8fdf06eec --- /dev/null +++ b/mover/Mengyantong/code/task1/hello_world/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_world::hello_world_tests { + // uncomment this line to import the module + // use hello_world::hello_world; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_world() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_world::hello_world_tests::ENotImplemented)] + fun test_hello_world_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Mengyantong/code/task7/readme.md b/mover/Mengyantong/code/task7/readme.md new file mode 100644 index 000000000..f0b2db625 --- /dev/null +++ b/mover/Mengyantong/code/task7/readme.md @@ -0,0 +1,12 @@ +sui client call \ +--function get_flag \ +--module check_in \ +--package 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd \ +--args \ +'RKjIo?|8ZW`fS@lbhG3_4M0ORBYSd' \ +0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 \ +0x8 \ +--gas-budget 10000000 + + +Transaction Digest: 24v8TVbQJd55zbx8VK9uqWpjhvK8kGBoBaGfqFV7EkBF diff --git a/mover/Mengyantong/images/clicall.png b/mover/Mengyantong/images/clicall.png new file mode 100644 index 000000000..a484fd707 Binary files /dev/null and b/mover/Mengyantong/images/clicall.png differ diff --git a/mover/Mengyantong/images/scan.png b/mover/Mengyantong/images/scan.png new file mode 100644 index 000000000..491fc7f95 Binary files /dev/null and b/mover/Mengyantong/images/scan.png differ diff --git a/mover/Mengyantong/images/suiwallet.png b/mover/Mengyantong/images/suiwallet.png new file mode 100644 index 000000000..6730a294b Binary files /dev/null and b/mover/Mengyantong/images/suiwallet.png differ diff --git a/mover/Mengyantong/readme.md b/mover/Mengyantong/readme.md new file mode 100644 index 000000000..e0958b22b --- /dev/null +++ b/mover/Mengyantong/readme.md @@ -0,0 +1,53 @@ +## 基本信息 +- Sui钱包地址: `0x041e8ba639e911ed21d714882ecce553e7d700f01c1914e4f8eb38825b4d06d6` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `Mengyantong` + +## 个人简介 +- 工作经验: 3.5年 +- 技术栈: `C++` `Golang` `Python` +- Traffic engineering, 对合约开发感兴趣, 想多了解 +- 联系方式: wechat: `SimpleMiant` + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.27.1 +- [x] Sui钱包截图: ![Sui钱包截图](./images/suiwallet.png) +- [x] package id: 0x22fc7e5fd93240d025a4ae30b88629fa39b4545f30595c82d469ab941dd1a817 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/scan.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/clicall.png) +- [x] flag hash : 24v8TVbQJd55zbx8VK9uqWpjhvK8kGBoBaGfqFV7EkBF + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/Mulander-J/notes/task001.md b/mover/Mulander-J/notes/task001.md index b700ce1f7..fb4d9a782 100644 --- a/mover/Mulander-J/notes/task001.md +++ b/mover/Mulander-J/notes/task001.md @@ -249,7 +249,7 @@ sui move new hello_move # build test sui move build # publish contract -➜ hello_move git:(main) ✗ sui client publish --gas-budget 100000000 +➜ hello_move git:(main) ✗ sui client publish UPDATING GIT DEPENDENCY https://gitee.com/mystenLabs/sui.git INCLUDING DEPENDENCY Sui INCLUDING DEPENDENCY MoveStdlib diff --git a/mover/Mulander-J/notes/task002.md b/mover/Mulander-J/notes/task002.md index 16a353deb..15dd954b2 100644 --- a/mover/Mulander-J/notes/task002.md +++ b/mover/Mulander-J/notes/task002.md @@ -33,7 +33,7 @@ │ 0x2f6c8718a9f7c8438feab4e507532599c81bb2d9bfd3a4775da47026bd0b0d20 │ 100000000 │ 0.10 │ │ 0xa0b2789d0ce4ef924d3a88d233979b8b98101f0818670050a85ad8533a5a89ec │ 6970360 │ 0.00 │ ╰────────────────────────────────────────────────────────────────────┴────────────────────┴──────────────────╯ -➜ task2 git:(main) ✗ sui client publish --gas-budget 100000000 +➜ task2 git:(main) ✗ sui client publish UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git INCLUDING DEPENDENCY Sui INCLUDING DEPENDENCY MoveStdlib diff --git a/mover/Ni0duann/code/task1/hello_move.move b/mover/Ni0duann/code/task1/hello_move.move new file mode 100644 index 000000000..ec1c9edb7 --- /dev/null +++ b/mover/Ni0duann/code/task1/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"Ni0duann"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/Ni0duann/images/count.png b/mover/Ni0duann/images/count.png new file mode 100644 index 000000000..312d53071 Binary files /dev/null and b/mover/Ni0duann/images/count.png differ diff --git a/mover/Ni0duann/images/scan.png b/mover/Ni0duann/images/scan.png new file mode 100644 index 000000000..bab804e27 Binary files /dev/null and b/mover/Ni0duann/images/scan.png differ diff --git a/mover/Ni0duann/notes/readme.md b/mover/Ni0duann/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Ni0duann/readme.md b/mover/Ni0duann/readme.md new file mode 100644 index 000000000..1aa3d1cd7 --- /dev/null +++ b/mover/Ni0duann/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x83bc9e1413d75e9ac1d43dc1ae5985d513c5ce056bb0cde280fd16bbec8bfc3d` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `Ni0duann` + +## 个人简介 +- 工作经验: 2年 +- 技术栈: `JAVA` `python` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `无` + +## 任务 + +## 01 hello move +- [] Sui cli version: +- [] Sui钱包截图: ![Sui钱包截图](./images/count.png) +- [] package id: 0x6689aaf70237438fb968627ea9daac9ed9a8ca08454f50841885a4149879ccce +- [] package id 在 scan上的查看截图:![Scan截图](./images/scan.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/NoWillToBreak/notes/task5.md b/mover/NoWillToBreak/notes/task5.md index f976aa357..54ff191e8 100644 --- a/mover/NoWillToBreak/notes/task5.md +++ b/mover/NoWillToBreak/notes/task5.md @@ -231,7 +231,7 @@ Transaction Digest: 2mMRhWh3bqhZUg6fhA18et5zpg9o2Nni3ZdmrG18fNAW sui client call --package $AMMPKG \ --module liquidity \ --function generate_pool \ - --gas-budget 100000000 \ + \ --type-args $CNYA $CNYW [warn] Client/Server api version mismatch, client api version : 1.20.0, server api version : 1.20.1 Transaction Digest: EhFzTpLyMUub3dS8evm13B9hrnytQ2oK8cSiVALQQDmk @@ -347,7 +347,7 @@ Transaction Digest: EhFzTpLyMUub3dS8evm13B9hrnytQ2oK8cSiVALQQDmk sui client call --package $AMMPKG \ --module liquidity \ --function create_pocket \ - --gas-budget 100000000 + [warn] Client/Server api version mismatch, client api version : 1.20.0, server api version : 1.20.1 Transaction Digest: 7zYcSAW333rdEkKuwBaTh9YxMaN5Q2965bBXuNYhgnP4 ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ @@ -459,7 +459,7 @@ Transaction Digest: 7zYcSAW333rdEkKuwBaTh9YxMaN5Q2965bBXuNYhgnP4 sui client call --package $AMMPKG \ --module liquidity \ --function deposit_totally\ - --gas-budget 100000000 \ + \ --type-args $CNYA $CNYW\ --args $POOLID\ $FC\ @@ -671,7 +671,7 @@ Transaction Digest: DdWf6vRiaxKkqUeLsh2JbAebfVdF9KZhi5ciEmg5w2qw sui client call --package $AMMPKG \ --module liquidity \ --function swap_x_to_y \ - --gas-budget 100000000 \ + \ --type-args $CNYA $CNYW \ --args $POOLID \ '["0xff77c09009fa2cf9a4db2b3bc8769f8c460a771193aee5630dc80d0f474fd31d"]' \ diff --git a/mover/Ocrand/code/task7/image_task7.png b/mover/Ocrand/code/task7/image_task7.png new file mode 100644 index 000000000..92adef240 Binary files /dev/null and b/mover/Ocrand/code/task7/image_task7.png differ diff --git a/mover/Ocrand/code/task8/image_task8.png b/mover/Ocrand/code/task8/image_task8.png new file mode 100644 index 000000000..b9dc42f78 Binary files /dev/null and b/mover/Ocrand/code/task8/image_task8.png differ diff --git a/mover/Ocrand/readme.md b/mover/Ocrand/readme.md index 79556a410..8fda4259e 100644 --- a/mover/Ocrand/readme.md +++ b/mover/Ocrand/readme.md @@ -40,3 +40,13 @@ ## 06 SDK PTB - [x] save hash: 2Lx6tkF1oi9pSgDC65jCNUvcwrnBD3Bhqid39KRVLPSC + +## 07 Move CTF Check In + +- [x] CLI call 截图 : ![image_task7](letsmove/mover/Ocrand/code/task7/image_task7.png) +- [x] flag hash : GwtMZv2Jaq3dc5K3jsLe7KUj7bXmnADnPdCY9DLQuhnh + +## 08 Move CTF Lets Move + +- [x] proof : 03330bb7037e3f7c +- [x] flag hash : 29w8KzAittLPX5SqEypxGZKq81pztiNzSSd7N3gjMETx diff --git a/mover/PINKPIG/code/readme.md b/mover/PINKPIG/code/readme.md new file mode 100644 index 000000000..a6e16af04 --- /dev/null +++ b/mover/PINKPIG/code/readme.md @@ -0,0 +1,31 @@ +### task1 +```move + +/// Module: my_first_package +module my_first_package::hello_PINKPIG { + use sui::object::{Self, UID}; + use sui::tx_context::{Self, TxContext}; + use std::string::{Self, String}; + use sui::transfer; + + public struct Hello has key { + id: UID, + str: String, + } + + public fun say_hello(ctx: &mut TxContext) { + let word = Hello { + id: object::new(ctx), + str: string::utf8(b"Hello PINKPIG"), + }; + transfer::transfer(word, tx_context::sender(ctx)); + } +} + +``` +`package_id:` 0x47a03fd4bd836f3aec1472c76bdcbcb833f379b9dafc3ffddf1fff233efd0736 + +`sui version:`sui 1.27.0-e5f080922d56-dirty + +`sui address:`0xc9984d356bcf6455491993ebf6b875ed76d527acf44c4e413b1e7cef37dfafc0 + diff --git a/mover/PINKPIG/code/task1/Move.lock b/mover/PINKPIG/code/task1/Move.lock new file mode 100644 index 000000000..4404cfc9f --- /dev/null +++ b/mover/PINKPIG/code/task1/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "CA6C5E8D11BD7174AD16ED39CAB1CDEF8244FC4D09F00FA174E6C99B916FF79F" +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.0" +edition = "2024.beta" +flavor = "sui" diff --git a/mover/PINKPIG/code/task1/Move.toml b/mover/PINKPIG/code/task1/Move.toml new file mode 100644 index 000000000..8debb740a --- /dev/null +++ b/mover/PINKPIG/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "Hello_PinkPig" +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] +hello_pinkpig = "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/PINKPIG/code/task1/sources/hello_pinkpig.move b/mover/PINKPIG/code/task1/sources/hello_pinkpig.move new file mode 100644 index 000000000..5a38f922f --- /dev/null +++ b/mover/PINKPIG/code/task1/sources/hello_pinkpig.move @@ -0,0 +1,21 @@ + +/// Module: hello_pinkpig +module hello_pinkpig::hello_pinkpig { + use sui::object::{Self, UID}; + use sui::tx_context::{Self, TxContext}; + use std::string::{Self, String}; + use sui::transfer; + + public struct Hello has key { + id: UID, + str: String, + } + + public fun say_hello(ctx: &mut TxContext) { + let word = Hello { + id: object::new(ctx), + str: string::utf8(b"Hello PINKPIG"), + }; + transfer::transfer(word, tx_context::sender(ctx)); + } +} diff --git a/mover/PINKPIG/code/task1/tests/hello_pinkpig_tests.move b/mover/PINKPIG/code/task1/tests/hello_pinkpig_tests.move new file mode 100644 index 000000000..c927f849a --- /dev/null +++ b/mover/PINKPIG/code/task1/tests/hello_pinkpig_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_pinkpig::hello_pinkpig_tests { + // uncomment this line to import the module + // use hello_pinkpig::hello_pinkpig; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_pinkpig() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_pinkpig::hello_pinkpig_tests::ENotImplemented)] + fun test_hello_pinkpig_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/PINKPIG/code/task2/Move.lock b/mover/PINKPIG/code/task2/Move.lock new file mode 100644 index 000000000..ce649bf5f --- /dev/null +++ b/mover/PINKPIG/code/task2/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "D06BF82B4DB769E4C28CCB31367C5301118E7139A60C8266FA89BA0298043CCD" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x4d377255f5f0ee18153fe4b92c6c8aad53d2f866960608b4d819d3725ab837dd" +latest-published-id = "0x4d377255f5f0ee18153fe4b92c6c8aad53d2f866960608b4d819d3725ab837dd" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e" +latest-published-id = "0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e" +published-version = "1" diff --git a/mover/PINKPIG/code/task2/Move.toml b/mover/PINKPIG/code/task2/Move.toml new file mode 100644 index 000000000..03131800e --- /dev/null +++ b/mover/PINKPIG/code/task2/Move.toml @@ -0,0 +1,41 @@ +[package] +name = "faucetcoin" +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)"] +published-at = " 0x9b4087398f62d1740a015c553c32e28c2f5892729d48e70cdf643e66f45a252c" # testnet +#published-at = "0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e" # mainnet + +[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] +faucetcoin = "0x0" # testnet +#faucetcoin = "0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e" # mainnet + +# 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] +faucetcoin = "0x0" +# The dev-addresses section allows overwriting named addresses for the `--test` +# and `--dev` modes. +# alice = "0xB0B" + diff --git a/mover/PINKPIG/code/task2/log4mainnet.txt b/mover/PINKPIG/code/task2/log4mainnet.txt new file mode 100644 index 000000000..992f9ddce --- /dev/null +++ b/mover/PINKPIG/code/task2/log4mainnet.txt @@ -0,0 +1,157 @@ +Transaction Digest: 2MYDnZr7iRKjTkMJZHpMioX7LsQQthrcgYxjrHirjDEM +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Owner: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Budget: 20000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Version: 171662165 │ +│ │ Digest: EwjYArSDkhrjbxq55FWmK1cV2Ncee7We3WVXk8uwJHo3 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 9ay3QMWMCSCB7l9M70OuL0ag2hkLuNSHHCS8dmAbZrSElIr/THxOV7V1w7o50cDTIFto193VpsrU2JOw976pCQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 2MYDnZr7iRKjTkMJZHpMioX7LsQQthrcgYxjrHirjDEM │ +│ Status: Success │ +│ Executed Epoch: 410 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: FAuyooFjrSkMbyDrLa7EnZy9RLxdSvgg3QvDM8tNVici │ +│ └── │ +│ ┌── │ +│ │ ID: 0x1034a40b9cc60e947910dea55e8c3a68421460d105bec425328a9f64859238e0 │ +│ │ Owner: Shared │ +│ │ Version: 171662166 │ +│ │ Digest: FD7XtXdALxmWKPsKEUZgkNQaFreCBPrLT2burnTPkKCz │ +│ └── │ +│ ┌── │ +│ │ ID: 0x3426fc79ee6b43faa65e5b051bee3a5508ca4c9ee0c3ab77fafff80083753596 │ +│ │ Owner: Immutable │ +│ │ Version: 171662166 │ +│ │ Digest: ACXcaAmGjxwwiW3i1N9xPe8GsF1eyt2uPm1mE6ZvDvA │ +│ └── │ +│ ┌── │ +│ │ ID: 0x703e1314904a2730e1ae8774cbda95185e69ea58a4612a9eb63e20eb80a1ad9d │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 171662166 │ +│ │ Digest: 3Bh94wasEZgVMdDKkMSTwS2Q1Sdq7TnKshNz5sNUmwMq │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 171662166 │ +│ │ Digest: CFak3GxMWsmrS44L8NFG4F3g9sLxUN9ux9951kEDP8Ve │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 171662166 │ +│ │ Digest: CFak3GxMWsmrS44L8NFG4F3g9sLxUN9ux9951kEDP8Ve │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 15694000 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 46jXAYoWuivcpffHtTFVMCdLgUKwrSWy4dedQaDK6mjE │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x1034a40b9cc60e947910dea55e8c3a68421460d105bec425328a9f64859238e0 │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Shared │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x5f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e::faucet_coin::FAUCET_COIN> │ +│ │ Version: 171662166 │ +│ │ Digest: FD7XtXdALxmWKPsKEUZgkNQaFreCBPrLT2burnTPkKCz │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x3426fc79ee6b43faa65e5b051bee3a5508ca4c9ee0c3ab77fafff80083753596 │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x5f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e::faucet_coin::FAUCET_COIN> │ +│ │ Version: 171662166 │ +│ │ Digest: ACXcaAmGjxwwiW3i1N9xPe8GsF1eyt2uPm1mE6ZvDvA │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x703e1314904a2730e1ae8774cbda95185e69ea58a4612a9eb63e20eb80a1ad9d │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 171662166 │ +│ │ Digest: 3Bh94wasEZgVMdDKkMSTwS2Q1Sdq7TnKshNz5sNUmwMq │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 171662166 │ +│ │ Digest: CFak3GxMWsmrS44L8NFG4F3g9sLxUN9ux9951kEDP8Ve │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e │ +│ │ Version: 1 │ +│ │ Digest: FAuyooFjrSkMbyDrLa7EnZy9RLxdSvgg3QvDM8tNVici │ +│ │ Modules: faucet_coin │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -15465880 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/PINKPIG/code/task2/log4testnet.txt b/mover/PINKPIG/code/task2/log4testnet.txt new file mode 100644 index 000000000..1c34c86af --- /dev/null +++ b/mover/PINKPIG/code/task2/log4testnet.txt @@ -0,0 +1,156 @@ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Owner: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Budget: 20000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Version: 608201 │ +│ │ Digest: 3FbVatV4UtRhhDpNgmSDid7vJdoqhEBmAcnwbNc3ujq1 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ UfeD1S6gTlRyUExNXCOEiQ4HZsRtlPOYppAHUTZ0Oj06qkkY0Ifl0ePODJB4zinaAnWseOOz7/H5sY3IJxPiAw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 5HQU3uGkBPZsyjQPsuBt868cbTMLCPqAey97GoaZrogj │ +│ Status: Success │ +│ Executed Epoch: 382 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: ASQTgj8XnDh75cFVKGyqbmLV2Zee9QTuThPS45fWog4X │ +│ └── │ +│ ┌── │ +│ │ ID: 0xa5d7afc0a2ce714382cc42ccd4ab7720b8af7970b479888478b4ac3d57033add │ +│ │ Owner: Shared │ +│ │ Version: 608202 │ +│ │ Digest: 5CExHSq1iMsodrFyZgJhPVfg8ocxFpnakSzv1Ne8XCBV │ +│ └── │ +│ ┌── │ +│ │ ID: 0xc6ca77cde44166d5dfc3f489536ce88cf52b0c52406552c6c9d7128a9eb34883 │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 608202 │ +│ │ Digest: AR5op8kSV7SE7ofFF9jEwGkxJ1ff3hWa1x83HxGM1ZsU │ +│ └── │ +│ ┌── │ +│ │ ID: 0xdf9d41620091e8ef936d8d7de8c78a113eba3c245e0e821709ce2e5bdce049ad │ +│ │ Owner: Immutable │ +│ │ Version: 608202 │ +│ │ Digest: BSN8pFjtNFt1rEePrySfjKBXUramnSXEUVWbbWFUEnKt │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 608202 │ +│ │ Digest: HSdQTzPfddwRE5TbmmtT2eAGezUMJn6XDVVqd5jbr7CU │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 608202 │ +│ │ Digest: HSdQTzPfddwRE5TbmmtT2eAGezUMJn6XDVVqd5jbr7CU │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 15694000 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 4wgVygTs9NqDibRmBAwUyT5miQqSfSgxijTBYbEbnkeo │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xa5d7afc0a2ce714382cc42ccd4ab7720b8af7970b479888478b4ac3d57033add │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Shared │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x6f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069::faucet_coin::FAUCET_COIN> │ +│ │ Version: 608202 │ +│ │ Digest: 5CExHSq1iMsodrFyZgJhPVfg8ocxFpnakSzv1Ne8XCBV │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xc6ca77cde44166d5dfc3f489536ce88cf52b0c52406552c6c9d7128a9eb34883 │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 608202 │ +│ │ Digest: AR5op8kSV7SE7ofFF9jEwGkxJ1ff3hWa1x83HxGM1ZsU │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xdf9d41620091e8ef936d8d7de8c78a113eba3c245e0e821709ce2e5bdce049ad │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x6f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069::faucet_coin::FAUCET_COIN> │ +│ │ Version: 608202 │ +│ │ Digest: BSN8pFjtNFt1rEePrySfjKBXUramnSXEUVWbbWFUEnKt │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 608202 │ +│ │ Digest: HSdQTzPfddwRE5TbmmtT2eAGezUMJn6XDVVqd5jbr7CU │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069 │ +│ │ Version: 1 │ +│ │ Digest: ASQTgj8XnDh75cFVKGyqbmLV2Zee9QTuThPS45fWog4X │ +│ │ Modules: faucet_coin │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -15715880 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/PINKPIG/code/task2/run4mainnet.sh b/mover/PINKPIG/code/task2/run4mainnet.sh new file mode 100644 index 000000000..d4f2e53f8 --- /dev/null +++ b/mover/PINKPIG/code/task2/run4mainnet.sh @@ -0,0 +1,24 @@ +sui client switch --env mainnet +sui client envs + +sui client switch --address 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b +sui client addresses + +sui client call \ +--package 0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e \ +--module faucet_coin \ +--function mint \ +--args 0x1034a40b9cc60e947910dea55e8c3a68421460d105bec425328a9f64859238e0 10000000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +sui client switch --address 0x7295d0fbf1edee2d8b617a5b0d306a1e8aca84e0e94d15c912a052cf7569ff9d +sui client addresses + +sui client call \ +--package 0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e \ +--module faucet_coin \ +--function mint \ +--args 0x1034a40b9cc60e947910dea55e8c3a68421460d105bec425328a9f64859238e0 10000000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +sui client switch --address 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b +sui client addresses + diff --git a/mover/PINKPIG/code/task2/run4testnet.sh b/mover/PINKPIG/code/task2/run4testnet.sh new file mode 100644 index 000000000..b061f386d --- /dev/null +++ b/mover/PINKPIG/code/task2/run4testnet.sh @@ -0,0 +1,23 @@ +sui client switch --env testnet +sui client envs + +sui client switch --address 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b +sui client addresses + +sui client call \ +--package 0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069 \ +--module faucet_coin \ +--function mint \ +--args 0xa5d7afc0a2ce714382cc42ccd4ab7720b8af7970b479888478b4ac3d57033add 10000000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +sui client switch --address 0x7295d0fbf1edee2d8b617a5b0d306a1e8aca84e0e94d15c912a052cf7569ff9d +sui client addresses + +sui client call \ +--package 0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069 \ +--module faucet_coin \ +--function mint \ +--args 0xa5d7afc0a2ce714382cc42ccd4ab7720b8af7970b479888478b4ac3d57033add 10000000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +sui client switch --address 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b +sui client addresses diff --git a/mover/PINKPIG/code/task2/sources/faucetcoin.move b/mover/PINKPIG/code/task2/sources/faucetcoin.move new file mode 100644 index 000000000..9d898a7ac --- /dev/null +++ b/mover/PINKPIG/code/task2/sources/faucetcoin.move @@ -0,0 +1,127 @@ +#[allow(duplicate_alias, unused_use)] +/// Module: faucetcoin +module faucetcoin::faucet_coin { + use std::debug; + use std::ascii::string; + use std::option; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::new_unsafe; + + public struct FAUCET_COIN has drop {} + + #[lint_allow(self_transfer)] + #[allow(lint(share_owned))] + fun init( + witness: FAUCET_COIN, + ctx: &mut TxContext + ) { + debug::print(&string(b"init FAUCET_COIN")); + let url_obj = new_unsafe(std::ascii::string(b"https://avatars.githubusercontent.com/u/36093027?v=4")); + let (treasury, metadata) = coin::create_currency( + witness, + 8, // decimals + b"SuiFaucetRMB", // symbol + b"Sui Faucet RMB", // name + b"My faucet coin", // description + option::some(url_obj), // icon url + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury); + } + + #[lint_allow(self_transfer)] + #[allow(unused_variable)] + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + debug::print(&string(b"faucet mint")); + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } + + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + debug::print(&string(b"burn")); + coin::burn(treasury_cap, coin); + } + + + // === Tests === + #[test_only] + use sui::test_scenario as ts; + + #[test] + fun test_faucet_coin() { + let admin = @0xA; + let user1 = @0xB; + let mut scenario = ts::begin(admin); + + // init + ts::next_tx(&mut scenario, admin); + { + init(FAUCET_COIN {}, scenario.ctx()); + }; + + // admin mint 100 coin + ts::next_tx(&mut scenario, admin); + { + let mut treasurycap = ts::take_shared>(&scenario); + mint(&mut treasurycap, 100, admin, scenario.ctx()); + ts::return_shared>(treasurycap); + }; + + // query [admin] coin + ts::next_tx(&mut scenario, admin); + { + let coin = ts::take_from_sender>(&scenario); + debug::print(&coin::value(&coin)); + ts::return_to_sender>(&scenario, coin); + }; + + // user1 mint 200 coin。注意,这里和独享所有权不同,不会报错,可以mint! + ts::next_tx(&mut scenario, user1); + { + let mut treasurycap = ts::take_shared>(&scenario); + mint(&mut treasurycap, 200, user1, scenario.ctx()); + ts::return_shared>(treasurycap); + }; + + // query [user1] coin + ts::next_tx(&mut scenario, user1); + { + let coin = ts::take_from_sender>(&scenario); + debug::print(&coin::value(&coin)); + ts::return_to_sender>(&scenario, coin); + }; + + // burn [admin] coin,共享所有权,可以分别对自己的coin操作! + ts::next_tx(&mut scenario, admin); + { + let coin = ts::take_from_sender>(&scenario); + let mut treasurycap = ts::take_shared>(&scenario); + burn(&mut treasurycap, coin); + ts::return_shared>(treasurycap); + }; + + // burn [user1] coin,共享所有权,可以分别对自己的coin操作! + ts::next_tx(&mut scenario, user1); + { + let coin = ts::take_from_sender>(&scenario); + let mut treasurycap = ts::take_shared>(&scenario); + burn(&mut treasurycap, coin); + ts::return_shared>(treasurycap); + }; + + ts::end(scenario); + // pass + } +} diff --git a/mover/PINKPIG/code/task2/sources/my_coin.move b/mover/PINKPIG/code/task2/sources/my_coin.move new file mode 100644 index 000000000..15c6702bb --- /dev/null +++ b/mover/PINKPIG/code/task2/sources/my_coin.move @@ -0,0 +1,141 @@ +#[allow(duplicate_alias)] +/// Module: task_02 +module task_02::rmb_coin { + use std::debug; + use std::ascii::string; + use std::option; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::new_unsafe; + + public struct RMB_COIN has drop {} + + #[lint_allow(self_transfer)] + fun init( + witness: RMB_COIN, + ctx: &mut TxContext + ) { + debug::print(&string(b"init RMB_COIN")); + let url_obj = new_unsafe(std::ascii::string(b"https://avatars.githubusercontent.com/u/36093027?v=4")); + let (treasury, metadata) = coin::create_currency( + witness, + 8, // decimals + b"SuiRMB", // symbol + b"Sui RMB", // name + b"My first coin", // description + option::some(url_obj), // icon url + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + #[lint_allow(self_transfer)] + #[allow(unused_variable)] + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + debug::print(&string(b"mint")); + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } + + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + debug::print(&string(b"burn")); + coin::burn(treasury_cap, coin); + } + + + // === Tests === + #[test_only] + use sui::test_scenario as ts; + + #[test] + fun test_self_mint() { + let admin = @0xA; + let mut scenario = ts::begin(admin); + + // init + ts::next_tx(&mut scenario, admin); + { + init(RMB_COIN {}, scenario.ctx()); + }; + + // mint 100 coin => admin + ts::next_tx(&mut scenario, admin); + { + let mut treasurycap = ts::take_from_sender>(&scenario); + mint(&mut treasurycap, 100, admin, scenario.ctx()); + // ts::return_to_address>(admin, treasurycap); + ts::return_to_sender>(&scenario, treasurycap); + }; + + // query [admin] coin + ts::next_tx(&mut scenario, admin); + { + let coin = ts::take_from_sender>(&scenario); + debug::print(&coin::value(&coin)); + ts::return_to_sender>(&scenario, coin); + }; + + // burn + ts::next_tx(&mut scenario, admin); + { + let coin = ts::take_from_sender>(&scenario); + let mut treasurycap = ts::take_from_sender>(&scenario); + + burn(&mut treasurycap, coin); + ts::return_to_address>(admin, treasurycap); + }; + + ts::end(scenario); + // pass + } + + #[test] + fun test_another_mint() { + let admin = @0xA; + let user1 = @0xB; + let mut scenario = ts::begin(admin); + + // init,注意这里使用admin初始化,因为独享所有权,所以后面的操作都必须切换回admin + ts::next_tx(&mut scenario, admin); + { + init(RMB_COIN {}, scenario.ctx()); + }; + + // mint 100 coin => user1 + ts::next_tx(&mut scenario, admin); // if change to user1, failed! + { + let mut treasurycap = ts::take_from_sender>(&scenario); + mint(&mut treasurycap, 100, user1, scenario.ctx()); + ts::return_to_sender>(&scenario, treasurycap); + }; + + // burn [user1] coin + { + // switch to user1 + ts::next_tx(&mut scenario, user1); + let coin = ts::take_from_sender>(&scenario); + debug::print(&coin::value(&coin)); + + // switch to admin 独享所有权! + ts::next_tx(&mut scenario, admin); + let mut treasurycap = ts::take_from_sender>(&scenario); + burn(&mut treasurycap, coin); + ts::return_to_address>(admin, treasurycap); + // ts::return_to_sender>(&scenario, treasurycap); + }; + + ts::end(scenario); + // pass + } +} diff --git a/mover/PINKPIG/code/task2/tests/faucetcoin_tests.move b/mover/PINKPIG/code/task2/tests/faucetcoin_tests.move new file mode 100644 index 000000000..bbcfeb0af --- /dev/null +++ b/mover/PINKPIG/code/task2/tests/faucetcoin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module faucetcoin::faucetcoin_tests { + // uncomment this line to import the module + use faucetcoin::faucet_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_faucetcoin() { + // pass + } + + #[test, expected_failure(abort_code = ::faucetcoin::faucetcoin_tests::ENotImplemented)] + fun test_faucetcoin_fail() { + abort ENotImplemented + } +} +*/ \ No newline at end of file diff --git a/mover/PINKPIG/image-1.png b/mover/PINKPIG/image-1.png new file mode 100644 index 000000000..bd9e633c9 Binary files /dev/null and b/mover/PINKPIG/image-1.png differ diff --git a/mover/PINKPIG/image.png b/mover/PINKPIG/image.png new file mode 100644 index 000000000..2be9f50fb Binary files /dev/null and b/mover/PINKPIG/image.png differ diff --git a/mover/PINKPIG/notes/readme.md b/mover/PINKPIG/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/PINKPIG/readme.md b/mover/PINKPIG/readme.md new file mode 100644 index 000000000..bdf06fced --- /dev/null +++ b/mover/PINKPIG/readme.md @@ -0,0 +1,56 @@ +## 基本信息 +- Sui钱包地址: `0xc9984d356bcf6455491993ebf6b875ed76d527acf44c4e413b1e7cef37dfafc0` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `PINKPIG` + +## 个人简介 +- 工作经验: 1年 +- 技术栈: `Go` `Solidity` +> 重要提示 请认真写自己的简介 +- 学习move智能合约开发,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: x :`@bugmaker04` + +## 任务 + +## 01 hello move + +- [√] Sui cli version:sui 1.27.0-e5f080922d56-dirty +- [√] Sui钱包截图: ![alt text](image.png) +- [√] package id: 0x47a03fd4bd836f3aec1472c76bdcbcb833f379b9dafc3ffddf1fff233efd0736 +- [√] package id 在 scan上的查看截图:![alt text](image-1.png) + +## 02 move coin +- [√] My Coin package id : 0xb442ae8744afa0e9fef017a5a94cb49a88d4dc05ef3c43c9c1e93ef0318831b6 +- [√] Faucet package id : 0x20964ba3a00a578827b642f40d9e3a8a133fc49732e8c9c67517811d1de548ef +- [√] 转账 `My Coin` hash: FH8UFfLX481do43S5tCLAQJv7PBLJGiQehpg3HCQVfvy +- [√] `Faucet Coin` address1 mint hash:EuPvB7y8CSt5T8mfEDyyqP82hv6ULYgoXDcKNZPuQDAq +- [√] `Faucet Coin` address2 mint hash:Bsu4WTC3NziS6dGxqc7ASqN1hrFA2qg6etLXX7oMMfuQ + + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/Pdayburt/code/readme.md b/mover/Pdayburt/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Pdayburt/images/img.png b/mover/Pdayburt/images/img.png new file mode 100644 index 000000000..3ddca531c Binary files /dev/null and b/mover/Pdayburt/images/img.png differ diff --git a/mover/Pdayburt/images/img_1.png b/mover/Pdayburt/images/img_1.png new file mode 100644 index 000000000..931359fcd Binary files /dev/null and b/mover/Pdayburt/images/img_1.png differ diff --git a/mover/Pdayburt/notes/readme.md b/mover/Pdayburt/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Pdayburt/readme.md b/mover/Pdayburt/readme.md new file mode 100644 index 000000000..8e0baa1db --- /dev/null +++ b/mover/Pdayburt/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xa1690dfe739953c5a72843715f3bb61d7dace00102339d719060aee990bccd14` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `Pdayburt` + +## 个人简介 +- 工作经验: 4年 +- 技术栈: `Java` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `gadFlySR` + +## 任务 + +## 01 hello move +- [X] Sui cli version:sui 1.27.2-homebrew +- [X] Sui钱包截图: ![Sui钱包截图](./images/img.png) +- [x] package id: 0x1700e33a8bbbcfab57a211e8621d7c559ab0847141556ba4a24340b3fd3ef274 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/img_1.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/Pithos23/code/task5/docs/dev.md b/mover/Pithos23/code/task5/docs/dev.md index 68a8a4287..e60fdc4b3 100644 --- a/mover/Pithos23/code/task5/docs/dev.md +++ b/mover/Pithos23/code/task5/docs/dev.md @@ -93,7 +93,7 @@ sui client call --package 0x484015a26efba1067cccabd9f19f815c1d4dc7aba06e8a0ec58 sui client call --package 0x37069dd83e90896c26ff3df91f9a68173346b5ef758030885122c3a94b4d4529\ --module Pithos23Coin \ --function mint \ - --gas-budget 100000000 \ + \ --args 0x0eec11b3b5816174676a1ef3bb3e5b132bb9cbc2adb00cd902c8a52d76fe3090 \ 100000000 \ 0xd19dcf3419253ff759614f63b7026bee4e4cc46b823099f262d1b9a858dc5312 diff --git a/mover/Pithos23/code/task5/docs/mainnet.md b/mover/Pithos23/code/task5/docs/mainnet.md index 1fd524ddf..1762c847e 100644 --- a/mover/Pithos23/code/task5/docs/mainnet.md +++ b/mover/Pithos23/code/task5/docs/mainnet.md @@ -123,7 +123,7 @@ sui client call --package 0x41200a189e44151399fc2a74e2f90b9237c439379a0ba23ac44 sui client call --package 0x343a6612df28090372bd49824fb5225ba6d2f797380d6da749386cb90de06934\ --module Pithos23Coin \ --function mint \ - --gas-budget 100000000 \ + \ --args 0x746ffd30ee96481bf9c3dd8b3a30f61c268f045579669a8fd0814545ec82529d \ 200000000 \ 0xd19dcf3419253ff759614f63b7026bee4e4cc46b823099f262d1b9a858dc5312 @@ -131,7 +131,7 @@ sui client call --package 0x343a6612df28090372bd49824fb5225ba6d2f797380d6da7493 sui client call --package 0x343a6612df28090372bd49824fb5225ba6d2f797380d6da749386cb90de06934\ --module Pithos23Coin \ --function mint \ - --gas-budget 100000000 \ + \ --args 0x746ffd30ee96481bf9c3dd8b3a30f61c268f045579669a8fd0814545ec82529d \ 50000000 \ 0xd19dcf3419253ff759614f63b7026bee4e4cc46b823099f262d1b9a858dc5312 diff --git a/mover/Pithos23/notes/task5.md b/mover/Pithos23/notes/task5.md index 1fd524ddf..1762c847e 100644 --- a/mover/Pithos23/notes/task5.md +++ b/mover/Pithos23/notes/task5.md @@ -123,7 +123,7 @@ sui client call --package 0x41200a189e44151399fc2a74e2f90b9237c439379a0ba23ac44 sui client call --package 0x343a6612df28090372bd49824fb5225ba6d2f797380d6da749386cb90de06934\ --module Pithos23Coin \ --function mint \ - --gas-budget 100000000 \ + \ --args 0x746ffd30ee96481bf9c3dd8b3a30f61c268f045579669a8fd0814545ec82529d \ 200000000 \ 0xd19dcf3419253ff759614f63b7026bee4e4cc46b823099f262d1b9a858dc5312 @@ -131,7 +131,7 @@ sui client call --package 0x343a6612df28090372bd49824fb5225ba6d2f797380d6da7493 sui client call --package 0x343a6612df28090372bd49824fb5225ba6d2f797380d6da749386cb90de06934\ --module Pithos23Coin \ --function mint \ - --gas-budget 100000000 \ + \ --args 0x746ffd30ee96481bf9c3dd8b3a30f61c268f045579669a8fd0814545ec82529d \ 50000000 \ 0xd19dcf3419253ff759614f63b7026bee4e4cc46b823099f262d1b9a858dc5312 diff --git a/mover/Qiuyangfeng/code/readme.md b/mover/Qiuyangfeng/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Qiuyangfeng/code/task1/hello_move/Move.lock b/mover/Qiuyangfeng/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..c5ec1e799 --- /dev/null +++ b/mover/Qiuyangfeng/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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 = "0x75cb0293cd8b9914ff30c185c266acec3a57069daaa419c13db49ff3515f5bc0" +latest-published-id = "0x75cb0293cd8b9914ff30c185c266acec3a57069daaa419c13db49ff3515f5bc0" +published-version = "1" diff --git a/mover/Qiuyangfeng/code/task1/hello_move/Move.toml b/mover/Qiuyangfeng/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/Qiuyangfeng/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/Qiuyangfeng/code/task1/hello_move/publish.log b/mover/Qiuyangfeng/code/task1/hello_move/publish.log new file mode 100644 index 000000000..49d50c5c0 --- /dev/null +++ b/mover/Qiuyangfeng/code/task1/hello_move/publish.log @@ -0,0 +1,149 @@ +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING hello_move +Successfully verified dependencies on-chain against source. +Transaction Digest: 2PzKCBZ649BknUaLsdG28KgSjBgT9uKecBHFf4BSttkG +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 11028800 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50639340 │ +│ │ Digest: 2uL1th5KmY7kEXDUuaKFvoGUj8ej4VJBKNs2ReDUAQ8X │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ p8QFkSOUQWoZc0KePFuIiiD1aQ78B28FaZGTFfheMaeJYE6gMwJZTSGKlpzjJPNEuloBkCz/c5VHMXCeLKOkCw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 2PzKCBZ649BknUaLsdG28KgSjBgT9uKecBHFf4BSttkG │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x4a1e4f09dde2d95d0ce0aaa6a282388925cf3880789c39c77833e8b660f285ad │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639341 │ +│ │ Digest: AwKRiKL1zTq8dFzmy5Rmi4P62iHSLjTjiCXp6LvCNqZh │ +│ └── │ +│ ┌── │ +│ │ ID: 0x75cb0293cd8b9914ff30c185c266acec3a57069daaa419c13db49ff3515f5bc0 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: FVVPX6JAA9Z78dbDurtQEpd8zWj2ddqugNiYScSTKscy │ +│ └── │ +│ ┌── │ +│ │ ID: 0x99bf37c15c3c56ffe21eae5ec5d50f460694d2c528fa4a1f60840f658a9ee9df │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639341 │ +│ │ Digest: DhiRZN1vgv8pv6sWQusMH5f8CqrpHSSby1AEozMpeenF │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639341 │ +│ │ Digest: GjfeNCgDuKzdY9wqPGfZ3xdHBYVJP3NPXu9euGrnELpd │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639341 │ +│ │ Digest: GjfeNCgDuKzdY9wqPGfZ3xdHBYVJP3NPXu9euGrnELpd │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 9028800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 2QKkWFqBkSQarBh5w4mQfxYBkAkT3aKBZDqyazoVLmQX │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x4a1e4f09dde2d95d0ce0aaa6a282388925cf3880789c39c77833e8b660f285ad │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 50639341 │ +│ │ Digest: AwKRiKL1zTq8dFzmy5Rmi4P62iHSLjTjiCXp6LvCNqZh │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x99bf37c15c3c56ffe21eae5ec5d50f460694d2c528fa4a1f60840f658a9ee9df │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x75cb0293cd8b9914ff30c185c266acec3a57069daaa419c13db49ff3515f5bc0::hello_move::Hello │ +│ │ Version: 50639341 │ +│ │ Digest: DhiRZN1vgv8pv6sWQusMH5f8CqrpHSSby1AEozMpeenF │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50639341 │ +│ │ Digest: GjfeNCgDuKzdY9wqPGfZ3xdHBYVJP3NPXu9euGrnELpd │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x75cb0293cd8b9914ff30c185c266acec3a57069daaa419c13db49ff3515f5bc0 │ +│ │ Version: 1 │ +│ │ Digest: FVVPX6JAA9Z78dbDurtQEpd8zWj2ddqugNiYScSTKscy │ +│ │ Modules: hello_move │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -9050680 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task1/hello_move/sources/hello_move.move b/mover/Qiuyangfeng/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..feaed9822 --- /dev/null +++ b/mover/Qiuyangfeng/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,19 @@ +/// Module: hello_move +module hello_move::hello_move { + use std::ascii::{String, string}; + use sui::transfer::transfer; + use sui::tx_context::sender; + + public struct Hello has key{ + id: UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"Qiuyangfeng"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/Qiuyangfeng/code/task1/hello_move/tests/hello_move_tests.move b/mover/Qiuyangfeng/code/task1/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/Qiuyangfeng/code/task1/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Qiuyangfeng/code/task2/move_coin/Move.lock b/mover/Qiuyangfeng/code/task2/move_coin/Move.lock new file mode 100644 index 000000000..6b2cab3ce --- /dev/null +++ b/mover/Qiuyangfeng/code/task2/move_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8EB223C8F40D0F546D3CD1F4773472F9D95459A9E8E5F61FE9A5E8BE25350372" +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 = "0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b" +latest-published-id = "0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b" +published-version = "1" diff --git a/mover/Qiuyangfeng/code/task2/move_coin/Move.toml b/mover/Qiuyangfeng/code/task2/move_coin/Move.toml new file mode 100644 index 000000000..358843034 --- /dev/null +++ b/mover/Qiuyangfeng/code/task2/move_coin/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "move_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)"] +published-at = "0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b" + +[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] +#move_coin = "0x0" +move_coin = "0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b" + +# 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/Qiuyangfeng/code/task2/move_coin/mint_rmb.log b/mover/Qiuyangfeng/code/task2/move_coin/mint_rmb.log new file mode 100644 index 000000000..21e61a7bb --- /dev/null +++ b/mover/Qiuyangfeng/code/task2/move_coin/mint_rmb.log @@ -0,0 +1,134 @@ +Transaction Digest: FRToUksKcJYXBU4NNb23MPNLAoo4XeLEkMxcb5noPaKU +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50639343 │ +│ │ Digest: Gb5yWKDpnSpGQhqxJDLZJwKA3LxDgT9TiXJfSt7ACKWb │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0xd9a008d72f6b98dede41e044e4197483e94b7f23adde35ec0256491c5c48b714 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "10000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: rmb │ │ +│ │ │ Package: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ m62NPzlf2FC/8Q169wjhqA9ax/J6uI/KAT4B3RSVhzoJYRj49PNVe8dOLurCGvfznS4+6hOtBnaVGP/GdWKjAg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: FRToUksKcJYXBU4NNb23MPNLAoo4XeLEkMxcb5noPaKU │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x30b5bfbb246b10a64e75772400db74d18acff588ad82ae12ef0ce6c98e264830 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639344 │ +│ │ Digest: 9PXVzZGZ1YBS8sNX7VAqqcnSRvpvnnfWECzWfapUzpaQ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639344 │ +│ │ Digest: KAyYcorqEcgsTCQDz9cSp5y69ikAGjVF1nipAFcqnSy │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd9a008d72f6b98dede41e044e4197483e94b7f23adde35ec0256491c5c48b714 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639344 │ +│ │ Digest: DDueEhbCZ1PeVGXAoarDsY8W9rTAGExYhsuqMYutLAgd │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639344 │ +│ │ Digest: KAyYcorqEcgsTCQDz9cSp5y69ikAGjVF1nipAFcqnSy │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3982400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2648448 MIST │ +│ Non-refundable Storage Fee: 26752 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 5hDwgBDUQuBzNdsnUdZHrA6yrBwQqg6tdnD3Uf6vkbq3 │ +│ AX3P5KF5kwmTZZXhDghkVsy18C4No3EVeoBPPQzCW2AT │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x30b5bfbb246b10a64e75772400db74d18acff588ad82ae12ef0ce6c98e264830 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::rmb::RMB> │ +│ │ Version: 50639344 │ +│ │ Digest: 9PXVzZGZ1YBS8sNX7VAqqcnSRvpvnnfWECzWfapUzpaQ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50639344 │ +│ │ Digest: KAyYcorqEcgsTCQDz9cSp5y69ikAGjVF1nipAFcqnSy │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xd9a008d72f6b98dede41e044e4197483e94b7f23adde35ec0256491c5c48b714 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::rmb::RMB> │ +│ │ Version: 50639344 │ +│ │ Digest: DDueEhbCZ1PeVGXAoarDsY8W9rTAGExYhsuqMYutLAgd │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2333952 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::rmb::RMB │ +│ │ Amount: 10000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task2/move_coin/mint_usd.log b/mover/Qiuyangfeng/code/task2/move_coin/mint_usd.log new file mode 100644 index 000000000..6eb3d4c7f --- /dev/null +++ b/mover/Qiuyangfeng/code/task2/move_coin/mint_usd.log @@ -0,0 +1,282 @@ +Transaction Digest: 8xY61QaUpu7Z6ZCVLYyLCZ66DgYjZvrbaRit6Tu6wUvH +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50639344 │ +│ │ Digest: KAyYcorqEcgsTCQDz9cSp5y69ikAGjVF1nipAFcqnSy │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ │ +│ │ 1 Pure Arg: Type: u64, Value: "20000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: usd │ │ +│ │ │ Package: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ Adv+QHGVYR9cyHNUYZxtrrNhcheWq+213z80x2sFTTOqQ5f2TsCyzk0ctLlRHaMC007hYe+J5jg+SyNrWcpJAA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 8xY61QaUpu7Z6ZCVLYyLCZ66DgYjZvrbaRit6Tu6wUvH │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x3bfcdb27737d9226a44e47f88b2a5fea7be95fc7aa289271734c70dbc3d1b445 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639345 │ +│ │ Digest: GRmvzV5EywnVNsUdC58H2Yu3ABz4QGvkF5yXsLkPUTLW │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Owner: Shared( 50639342 ) │ +│ │ Version: 50639345 │ +│ │ Digest: AeWzN63z2kL6MH86c9XrUfFPzc2kfu4xVeeA8FjACjh9 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639345 │ +│ │ Digest: 8CFPzsa44jBqk5QrUnQc4JfN8gavqy8yzzPNYZFGRSQv │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Version: 50639343 │ +│ │ Digest: 8feJBbTQcg8hRmfvdCAgUr9wHma12xutToX2DWyAg1KW │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639345 │ +│ │ Digest: 8CFPzsa44jBqk5QrUnQc4JfN8gavqy8yzzPNYZFGRSQv │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3982400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2648448 MIST │ +│ Non-refundable Storage Fee: 26752 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 5hDwgBDUQuBzNdsnUdZHrA6yrBwQqg6tdnD3Uf6vkbq3 │ +│ AX3P5KF5kwmTZZXhDghkVsy18C4No3EVeoBPPQzCW2AT │ +│ FRToUksKcJYXBU4NNb23MPNLAoo4XeLEkMxcb5noPaKU │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x3bfcdb27737d9226a44e47f88b2a5fea7be95fc7aa289271734c70dbc3d1b445 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50639345 │ +│ │ Digest: GRmvzV5EywnVNsUdC58H2Yu3ABz4QGvkF5yXsLkPUTLW │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 50639342 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50639345 │ +│ │ Digest: AeWzN63z2kL6MH86c9XrUfFPzc2kfu4xVeeA8FjACjh9 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50639345 │ +│ │ Digest: 8CFPzsa44jBqk5QrUnQc4JfN8gavqy8yzzPNYZFGRSQv │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2333952 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD │ +│ │ Amount: 20000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +Transaction Digest: 6kHt82eHvjrvRXZn7tt8ooerfLuaoyvvMruH3MseTWQo +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ Gas Owner: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Version: 928655 │ +│ │ Digest: B46XKToNVB2FS6SnpD5Ck5CZX5LxmbA86mFWdpvHgqny │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ │ +│ │ 1 Pure Arg: Type: u64, Value: "20000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: usd │ │ +│ │ │ Package: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 8vReQ41MEAWHK2AZcUjVa6Aij9JbO88ckldrt5gWSMbsKDPpXZIeubJX9nxMKdhTNTLR8A4bvzR9YxaLL7ffDQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 6kHt82eHvjrvRXZn7tt8ooerfLuaoyvvMruH3MseTWQo │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x5b81df14330b84e292b796fc4869ee822b84cfd7e7ab234017241ad47d338424 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ Version: 50639346 │ +│ │ Digest: 3DUxMyot3UXc1ikQQWXnkxQhGHwxcgtmadQjqYrRSMgA │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ Version: 50639346 │ +│ │ Digest: EPvAtbyUMQEyBsAGGeHkDVYZw3aEGgKLGSDvzi5N26AN │ +│ └── │ +│ ┌── │ +│ │ ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Owner: Shared( 50639342 ) │ +│ │ Version: 50639346 │ +│ │ Digest: 7cs3Z5hbrCpHSzkFPtmiJ8dp8RPAkjitUAzwfU14GWmK │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Version: 50639345 │ +│ │ Digest: AeWzN63z2kL6MH86c9XrUfFPzc2kfu4xVeeA8FjACjh9 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ Version: 50639346 │ +│ │ Digest: EPvAtbyUMQEyBsAGGeHkDVYZw3aEGgKLGSDvzi5N26AN │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3982400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2648448 MIST │ +│ Non-refundable Storage Fee: 26752 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 8xY61QaUpu7Z6ZCVLYyLCZ66DgYjZvrbaRit6Tu6wUvH │ +│ AX3P5KF5kwmTZZXhDghkVsy18C4No3EVeoBPPQzCW2AT │ +│ CnZDSyq5F2HiCVAGmYVwSStyhqxZnW24tEkRrsYErx4X │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x5b81df14330b84e292b796fc4869ee822b84cfd7e7ab234017241ad47d338424 │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50639346 │ +│ │ Digest: 3DUxMyot3UXc1ikQQWXnkxQhGHwxcgtmadQjqYrRSMgA │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50639346 │ +│ │ Digest: EPvAtbyUMQEyBsAGGeHkDVYZw3aEGgKLGSDvzi5N26AN │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ Owner: Shared( 50639342 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50639346 │ +│ │ Digest: 7cs3Z5hbrCpHSzkFPtmiJ8dp8RPAkjitUAzwfU14GWmK │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2333952 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD │ +│ │ Amount: 20000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task2/move_coin/publish.log b/mover/Qiuyangfeng/code/task2/move_coin/publish.log new file mode 100644 index 000000000..c1fb9a072 --- /dev/null +++ b/mover/Qiuyangfeng/code/task2/move_coin/publish.log @@ -0,0 +1,192 @@ +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING move_coin +Total number of linter warnings suppressed: 1 (unique lints: 1) +Successfully verified dependencies on-chain against source. +Transaction Digest: AX3P5KF5kwmTZZXhDghkVsy18C4No3EVeoBPPQzCW2AT +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 24024800 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50639341 │ +│ │ Digest: GjfeNCgDuKzdY9wqPGfZ3xdHBYVJP3NPXu9euGrnELpd │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ KLmzR6aODW6uJR9ywOSB2LKwExJMuUqp3VWaCh+s4WNqnxgdEV/g1eF+3UKLCQvWYSiXryE/2PLiu7Aj4paOCQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: AX3P5KF5kwmTZZXhDghkVsy18C4No3EVeoBPPQzCW2AT │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Owner: Shared( 50639342 ) │ +│ │ Version: 50639342 │ +│ │ Digest: 4GiNVKEcJFVzaD7PU1eTTDDgfktbGAmoMAWTo3wP9crf │ +│ └── │ +│ ┌── │ +│ │ ID: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: Aq5DDrq93YUMckwLDLok1Kt43exswV3j2LUvLFZSQkvU │ +│ └── │ +│ ┌── │ +│ │ ID: 0x4860062cbd9b03b93b955b2965318cd3376280d80c99d53b4595c1d39db56871 │ +│ │ Owner: Immutable │ +│ │ Version: 50639342 │ +│ │ Digest: 6FMzJrnvvk7yBAkLAkmX4MUPGpeS9CT2TcLwk2FCDk3d │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd9a008d72f6b98dede41e044e4197483e94b7f23adde35ec0256491c5c48b714 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639342 │ +│ │ Digest: 2ghAaqCvaXwCgiCBf7NWzQ5XAvkQzBDZ5CCBomdjK4gK │ +│ └── │ +│ ┌── │ +│ │ ID: 0xda327943ddfb47b38c73d382565e31bbc398fc74c50f1d32d3ebac218276fd32 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639342 │ +│ │ Digest: CoVZH6CXUegx7XPetSGRXRL9nqxSM9nQFdGe1dqCXXcG │ +│ └── │ +│ ┌── │ +│ │ ID: 0xfd247191ac8e72a0f058da5c8cc675650ec15da8d1b96a776fc83c07fd72ee2c │ +│ │ Owner: Immutable │ +│ │ Version: 50639342 │ +│ │ Digest: 3VsYycGV145EyZfmemn7qiQTcwe2JTRUBeKDd6purBXT │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639342 │ +│ │ Digest: 6E6m56czceUG8X7273UwxAaFV7ynJzcUyabwx1mUe6Pr │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639342 │ +│ │ Digest: 6E6m56czceUG8X7273UwxAaFV7ynJzcUyabwx1mUe6Pr │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 22024800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 2PzKCBZ649BknUaLsdG28KgSjBgT9uKecBHFf4BSttkG │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 50639342 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50639342 │ +│ │ Digest: 4GiNVKEcJFVzaD7PU1eTTDDgfktbGAmoMAWTo3wP9crf │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x4860062cbd9b03b93b955b2965318cd3376280d80c99d53b4595c1d39db56871 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50639342 │ +│ │ Digest: 6FMzJrnvvk7yBAkLAkmX4MUPGpeS9CT2TcLwk2FCDk3d │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xd9a008d72f6b98dede41e044e4197483e94b7f23adde35ec0256491c5c48b714 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::rmb::RMB> │ +│ │ Version: 50639342 │ +│ │ Digest: 2ghAaqCvaXwCgiCBf7NWzQ5XAvkQzBDZ5CCBomdjK4gK │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xda327943ddfb47b38c73d382565e31bbc398fc74c50f1d32d3ebac218276fd32 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 50639342 │ +│ │ Digest: CoVZH6CXUegx7XPetSGRXRL9nqxSM9nQFdGe1dqCXXcG │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xfd247191ac8e72a0f058da5c8cc675650ec15da8d1b96a776fc83c07fd72ee2c │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::rmb::RMB> │ +│ │ Version: 50639342 │ +│ │ Digest: 3VsYycGV145EyZfmemn7qiQTcwe2JTRUBeKDd6purBXT │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50639342 │ +│ │ Digest: 6E6m56czceUG8X7273UwxAaFV7ynJzcUyabwx1mUe6Pr │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b │ +│ │ Version: 1 │ +│ │ Digest: Aq5DDrq93YUMckwLDLok1Kt43exswV3j2LUvLFZSQkvU │ +│ │ Modules: rmb, usd │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -22046680 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task2/move_coin/sources/move_coin.move b/mover/Qiuyangfeng/code/task2/move_coin/sources/move_coin.move new file mode 100644 index 000000000..d67f1604b --- /dev/null +++ b/mover/Qiuyangfeng/code/task2/move_coin/sources/move_coin.move @@ -0,0 +1,52 @@ +/// Module: move_coin +// rmb is my coin +module move_coin::rmb { + use sui::coin::{Self, TreasuryCap}; + + public struct RMB has drop {} + + #[allow(lint(share_owned))] + fun init(witness: RMB, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, 6, b"RMB", b"Sui RMB", b"my coin is RMB", option::none(), ctx); + transfer::public_freeze_object(metadata); + // exclusive + transfer::public_transfer(treasury, tx_context::sender(ctx)) + } + + // mint coin + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } +} + +// usd is faucet coin +module move_coin::usd { + use sui::coin::{Self, TreasuryCap}; + + public struct USD has drop {} + + #[allow(lint(share_owned))] + fun init(witness: USD, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, 6, b"USD", b"Sui USD", b"USD is faucet coin", option::none(), ctx); + transfer::public_freeze_object(metadata); + // share + transfer::public_share_object(treasury); + } + + // mint coin + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } +} diff --git a/mover/Qiuyangfeng/code/task2/move_coin/tests/move_coin_tests.move b/mover/Qiuyangfeng/code/task2/move_coin/tests/move_coin_tests.move new file mode 100644 index 000000000..9d4143976 --- /dev/null +++ b/mover/Qiuyangfeng/code/task2/move_coin/tests/move_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module move_coin::move_coin_tests { + // uncomment this line to import the module + // use move_coin::move_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_move_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::move_coin::move_coin_tests::ENotImplemented)] + fun test_move_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Qiuyangfeng/code/task3/move_nft/Move.lock b/mover/Qiuyangfeng/code/task3/move_nft/Move.lock new file mode 100644 index 000000000..6f718a6a9 --- /dev/null +++ b/mover/Qiuyangfeng/code/task3/move_nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "4540D330C6E846CAE6F9BE6749EE389FEBF0A14ECFBE748ED332A79FDCAF28EE" +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 = "0xd3d6595e73bf7307d6a97e098936af54c62e3a3f7cc4c6f07bcb553f9396ee7d" +latest-published-id = "0xd3d6595e73bf7307d6a97e098936af54c62e3a3f7cc4c6f07bcb553f9396ee7d" +published-version = "1" diff --git a/mover/Qiuyangfeng/code/task3/move_nft/Move.toml b/mover/Qiuyangfeng/code/task3/move_nft/Move.toml new file mode 100644 index 000000000..eb96b74de --- /dev/null +++ b/mover/Qiuyangfeng/code/task3/move_nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "move_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://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] +move_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/Qiuyangfeng/code/task3/move_nft/mint.log b/mover/Qiuyangfeng/code/task3/move_nft/mint.log new file mode 100644 index 000000000..27ca369d2 --- /dev/null +++ b/mover/Qiuyangfeng/code/task3/move_nft/mint.log @@ -0,0 +1,110 @@ +Transaction Digest: Dmd76ySPu6LKCpCPSigDpwCZ97EkzodVLv4NZmRiQKzi +╭─────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ Gas Owner: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Version: 50639347 │ +│ │ Digest: AkfvSNQRXeaWV5PxjJXq6ivGxb66Lo8RKcVF6J94ctCx │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: 0x1::string::String, Value: "BIRD_NFT" │ │ +│ ╰────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint_to_sender │ │ +│ │ │ Module: bird_nft │ │ +│ │ │ Package: 0xd3d6595e73bf7307d6a97e098936af54c62e3a3f7cc4c6f07bcb553f9396ee7d │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 0y53pgOu3hlf1grJhQh2Ha45tCPzF5FFQ/pMte8A0ZmDBINMuaHYIHRGDHA5bmDW4bMHcFCd4+uAgr62+paCBg== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: Dmd76ySPu6LKCpCPSigDpwCZ97EkzodVLv4NZmRiQKzi │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x5a31860aa3b715c212d962dd669014422186fcb16c9e8698597722b0f62bc054 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ Version: 50639348 │ +│ │ Digest: 58RFF5DAQALfKdJidzZoo7hKQ74M3tHHAjGkSkizWvRg │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ Version: 50639348 │ +│ │ Digest: A7SvTvGRLbbcSgu49eLkwYy1eBAHt6QJmNSkWbsBeQd8 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ Version: 50639348 │ +│ │ Digest: A7SvTvGRLbbcSgu49eLkwYy1eBAHt6QJmNSkWbsBeQd8 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2340800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 4p7nZLwsWdPLfq8K5zJ9xXsE4BcQ7MEkQWuXsHMTmyzX │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x5a31860aa3b715c212d962dd669014422186fcb16c9e8698597722b0f62bc054 │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ ObjectType: 0xd3d6595e73bf7307d6a97e098936af54c62e3a3f7cc4c6f07bcb553f9396ee7d::bird_nft::BIRD │ +│ │ Version: 50639348 │ +│ │ Digest: 58RFF5DAQALfKdJidzZoo7hKQ74M3tHHAjGkSkizWvRg │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50639348 │ +│ │ Digest: A7SvTvGRLbbcSgu49eLkwYy1eBAHt6QJmNSkWbsBeQd8 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2362680 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task3/move_nft/publish.log b/mover/Qiuyangfeng/code/task3/move_nft/publish.log new file mode 100644 index 000000000..f558a52e1 --- /dev/null +++ b/mover/Qiuyangfeng/code/task3/move_nft/publish.log @@ -0,0 +1,195 @@ +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING move_nft +Successfully verified dependencies on-chain against source. +Transaction Digest: 4p7nZLwsWdPLfq8K5zJ9xXsE4BcQ7MEkQWuXsHMTmyzX +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ Gas Owner: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ Gas Budget: 18195600 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Version: 50639346 │ +│ │ Digest: EPvAtbyUMQEyBsAGGeHkDVYZw3aEGgKLGSDvzi5N26AN │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ HhoLFnnRwlFRXj3WT1lq68gRpACvojqGEKIfWUNmtM7IVyE4HmrU52cWZ8Un8Zqkg51NMhooHAmhjIApFvtECg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 4p7nZLwsWdPLfq8K5zJ9xXsE4BcQ7MEkQWuXsHMTmyzX │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x43a59e86389deeca55ba106f83307b6658827e81e54eb0f436160405c365ac03 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ Version: 50639347 │ +│ │ Digest: D1VQRYADkebT1Sf8vFmvnXmhYKrjovWmY88mtt7iBYhF │ +│ └── │ +│ ┌── │ +│ │ ID: 0x51f8c61d40ddbec47ae840aa23114d8cbb90ef1af07426445af5e369c9fbabd6 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ Version: 50639347 │ +│ │ Digest: 9E5r71AG6prdjKDMCXwEdSiYdaeEk9S7JrorLz28pr3M │ +│ └── │ +│ ┌── │ +│ │ ID: 0x6871a8e2e75cbce8b3b91862a3a566a18ce613128031ff1af7ef25abc5ed7b3e │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ Version: 50639347 │ +│ │ Digest: 3GcKjqA5P3b6odcBGa8629EZgSYm6y8sSJPaWZfiPyG2 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd3d6595e73bf7307d6a97e098936af54c62e3a3f7cc4c6f07bcb553f9396ee7d │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 67zh17hwNdrz4DqBBkHEUpJYT57d4Fv5hPcqeCkZf1F6 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ Version: 50639347 │ +│ │ Digest: AkfvSNQRXeaWV5PxjJXq6ivGxb66Lo8RKcVF6J94ctCx │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ Version: 50639347 │ +│ │ Digest: AkfvSNQRXeaWV5PxjJXq6ivGxb66Lo8RKcVF6J94ctCx │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 16195600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ 6kHt82eHvjrvRXZn7tt8ooerfLuaoyvvMruH3MseTWQo │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 4p7nZLwsWdPLfq8K5zJ9xXsE4BcQ7MEkQWuXsHMTmyzX:0 │ +│ │ PackageID: 0xd3d6595e73bf7307d6a97e098936af54c62e3a3f7cc4c6f07bcb553f9396ee7d │ +│ │ Transaction Module: bird_nft │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ EventType: 0x2::display::DisplayCreated<0xd3d6595e73bf7307d6a97e098936af54c62e3a3f7cc4c6f07bcb553f9396ee7d::bird_nft::BIRD> │ +│ │ ParsedJSON: │ +│ │ ┌────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ id │ 0x51f8c61d40ddbec47ae840aa23114d8cbb90ef1af07426445af5e369c9fbabd6 │ │ +│ │ └────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +│ ┌── │ +│ │ EventID: 4p7nZLwsWdPLfq8K5zJ9xXsE4BcQ7MEkQWuXsHMTmyzX:1 │ +│ │ PackageID: 0xd3d6595e73bf7307d6a97e098936af54c62e3a3f7cc4c6f07bcb553f9396ee7d │ +│ │ Transaction Module: bird_nft │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ EventType: 0x2::display::VersionUpdated<0xd3d6595e73bf7307d6a97e098936af54c62e3a3f7cc4c6f07bcb553f9396ee7d::bird_nft::BIRD> │ +│ │ ParsedJSON: │ +│ │ ┌─────────┬──────────┬───────┬───────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ +│ │ │ fields │ contents │ key │ name │ │ +│ │ │ │ ├───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ │ │ │ value │ BIRD_NFT │ │ +│ │ │ │ ├───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ │ │ │ key │ image_url │ │ +│ │ │ │ ├───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ │ │ │ value │ https://avatars.githubusercontent.com/u/39985362?s=400&u=37dc69923de003499aa614ed8c2fa3ddb61907ce&v=4 │ │ +│ │ ├─────────┼──────────┴───────┴───────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ │ id │ 0x51f8c61d40ddbec47ae840aa23114d8cbb90ef1af07426445af5e369c9fbabd6 │ │ +│ │ ├─────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ │ version │ 1 │ │ +│ │ └─────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x43a59e86389deeca55ba106f83307b6658827e81e54eb0f436160405c365ac03 │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 50639347 │ +│ │ Digest: D1VQRYADkebT1Sf8vFmvnXmhYKrjovWmY88mtt7iBYhF │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x51f8c61d40ddbec47ae840aa23114d8cbb90ef1af07426445af5e369c9fbabd6 │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ ObjectType: 0x2::display::Display<0xd3d6595e73bf7307d6a97e098936af54c62e3a3f7cc4c6f07bcb553f9396ee7d::bird_nft::BIRD> │ +│ │ Version: 50639347 │ +│ │ Digest: 9E5r71AG6prdjKDMCXwEdSiYdaeEk9S7JrorLz28pr3M │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x6871a8e2e75cbce8b3b91862a3a566a18ce613128031ff1af7ef25abc5ed7b3e │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ ObjectType: 0x2::package::Publisher │ +│ │ Version: 50639347 │ +│ │ Digest: 3GcKjqA5P3b6odcBGa8629EZgSYm6y8sSJPaWZfiPyG2 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50639347 │ +│ │ Digest: AkfvSNQRXeaWV5PxjJXq6ivGxb66Lo8RKcVF6J94ctCx │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xd3d6595e73bf7307d6a97e098936af54c62e3a3f7cc4c6f07bcb553f9396ee7d │ +│ │ Version: 1 │ +│ │ Digest: 67zh17hwNdrz4DqBBkHEUpJYT57d4Fv5hPcqeCkZf1F6 │ +│ │ Modules: bird_nft │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -16217480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task3/move_nft/sources/move_nft.move b/mover/Qiuyangfeng/code/task3/move_nft/sources/move_nft.move new file mode 100644 index 000000000..8a00c6113 --- /dev/null +++ b/mover/Qiuyangfeng/code/task3/move_nft/sources/move_nft.move @@ -0,0 +1,48 @@ +/// Module: move_nft +module move_nft::bird_nft { + use std::string::{utf8, String}; + use sui::package; + use sui::display; + + //funtion some nft + public struct BIRD has key, store { + id: UID, + name: String + } + + //otw name is same as module + public struct BIRD_NFT has drop {} + + fun init(otw: BIRD_NFT, ctx: &mut TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url")]; + + let values = vector[ + utf8(b"BIRD_NFT"), + utf8(b"https://avatars.githubusercontent.com/u/39985362?s=400&u=37dc69923de003499aa614ed8c2fa3ddb61907ce&v=4")]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values, ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + // mint NFT + public entry fun mint_to_sender(name: String, ctx: &mut TxContext) { + let sender = tx_context::sender(ctx); + let nft = BIRD{ + id: object::new(ctx), + name, + }; + transfer::public_transfer(nft, sender); + } + + // transfer NFT + public entry fun transfer(nft: BIRD, recipient: address, _: &mut TxContext) { + transfer::public_transfer(nft, recipient) + } +} diff --git a/mover/Qiuyangfeng/code/task3/move_nft/tests/move_nft_tests.move b/mover/Qiuyangfeng/code/task3/move_nft/tests/move_nft_tests.move new file mode 100644 index 000000000..c1a1b24ce --- /dev/null +++ b/mover/Qiuyangfeng/code/task3/move_nft/tests/move_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module move_nft::move_nft_tests { + // uncomment this line to import the module + // use move_nft::move_nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_move_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::move_nft::move_nft_tests::ENotImplemented)] + fun test_move_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Qiuyangfeng/code/task3/move_nft/transfer.log b/mover/Qiuyangfeng/code/task3/move_nft/transfer.log new file mode 100644 index 000000000..64d24f23f --- /dev/null +++ b/mover/Qiuyangfeng/code/task3/move_nft/transfer.log @@ -0,0 +1,110 @@ +Transaction Digest: 89SHNUifottSZC8sD9FyNk9mf7XGNEQSCrMAr15KxSjt +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ Gas Owner: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Version: 50639348 │ +│ │ Digest: A7SvTvGRLbbcSgu49eLkwYy1eBAHt6QJmNSkWbsBeQd8 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x5a31860aa3b715c212d962dd669014422186fcb16c9e8698597722b0f62bc054 │ │ +│ │ 1 Pure Arg: Type: address, Value: "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: transfer │ │ +│ │ │ Module: bird_nft │ │ +│ │ │ Package: 0xd3d6595e73bf7307d6a97e098936af54c62e3a3f7cc4c6f07bcb553f9396ee7d │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ BImhVa/v/NbK+ByI+4gThWkh5YkwGP52Lq1yuoTVuMRtW0BiwVgttEiBHZU10Fh1llo92quX06UmnM1f+dooBQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 89SHNUifottSZC8sD9FyNk9mf7XGNEQSCrMAr15KxSjt │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ Version: 50639349 │ +│ │ Digest: GhauxHnUfED53aojyDmZdTdw1oLLpvpUc7yzG4nwCKNC │ +│ └── │ +│ ┌── │ +│ │ ID: 0x5a31860aa3b715c212d962dd669014422186fcb16c9e8698597722b0f62bc054 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ Version: 50639349 │ +│ │ Digest: AXXrDN9YAPQashLXnqU4jJr5oS8Gw5PKomPgy3Tdyyuj │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ Version: 50639349 │ +│ │ Digest: GhauxHnUfED53aojyDmZdTdw1oLLpvpUc7yzG4nwCKNC │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2340800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2317392 MIST │ +│ Non-refundable Storage Fee: 23408 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 4p7nZLwsWdPLfq8K5zJ9xXsE4BcQ7MEkQWuXsHMTmyzX │ +│ Dmd76ySPu6LKCpCPSigDpwCZ97EkzodVLv4NZmRiQKzi │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50639349 │ +│ │ Digest: GhauxHnUfED53aojyDmZdTdw1oLLpvpUc7yzG4nwCKNC │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x5a31860aa3b715c212d962dd669014422186fcb16c9e8698597722b0f62bc054 │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ ObjectType: 0xd3d6595e73bf7307d6a97e098936af54c62e3a3f7cc4c6f07bcb553f9396ee7d::bird_nft::BIRD │ +│ │ Version: 50639349 │ +│ │ Digest: AXXrDN9YAPQashLXnqU4jJr5oS8Gw5PKomPgy3Tdyyuj │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1023408 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task4/move_game/Move.lock b/mover/Qiuyangfeng/code/task4/move_game/Move.lock new file mode 100644 index 000000000..0a4665c1b --- /dev/null +++ b/mover/Qiuyangfeng/code/task4/move_game/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "846087375A56CABE71595E6D1DAADD2D9E71CD3F5FE69303670847D76CC401B2" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "move_coin" }, +] + +[[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.package]] +name = "move_coin" +source = { local = "../../task2/move_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.27.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859" +latest-published-id = "0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859" +published-version = "1" diff --git a/mover/Qiuyangfeng/code/task4/move_game/Move.toml b/mover/Qiuyangfeng/code/task4/move_game/Move.toml new file mode 100644 index 000000000..ae9abea91 --- /dev/null +++ b/mover/Qiuyangfeng/code/task4/move_game/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "move_game" +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" } +move_coin = {local = "../../task2/move_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] +move_game = "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/Qiuyangfeng/code/task4/move_game/deposit1.log b/mover/Qiuyangfeng/code/task4/move_game/deposit1.log new file mode 100644 index 000000000..b24789cc4 --- /dev/null +++ b/mover/Qiuyangfeng/code/task4/move_game/deposit1.log @@ -0,0 +1,158 @@ +Transaction Digest: Z6TGJi4ESuA4BM3GkpcEy9ovdBSoweyp4uC8J2vcyQq +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50639352 │ +│ │ Digest: 9eNQahCKskMi3FeeLtUeQKspnKg2pFhdGW1S2uxcFUR4 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ │ +│ │ 1 Imm/Owned Object ID: 0x67667b64f44ac46e4c6318d534ce45506932e5c5e2a2d1903ad7b3a4ead54119 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: deposit │ │ +│ │ │ Module: move_game │ │ +│ │ │ Package: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ V6BGY4WxDjx505nuR7DBCBQZ5onnqj0XJuf6mSWTE4FbBHx7RTHmBUJtZ65MHhzBBEVhKlhI/2fUV8/T/tpUDQ== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: Z6TGJi4ESuA4BM3GkpcEy9ovdBSoweyp4uC8J2vcyQq │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x469601e71637c985f619d42b49d81f4b52d7089b6982d68d636a8709bceca056 │ +│ │ Owner: Object ID: ( 0x1d4e08650b45ac8df9b99778a915f4b058ae883070f3972e34f9477b1a356cbd ) │ +│ │ Version: 50639353 │ +│ │ Digest: GC9XwDxgUgAc2SuR6s52FwtCiNLpBEuDNoimBTZE83L1 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639353 │ +│ │ Digest: 5UwQ8rEvbtNfs1ebxjD8WY3hwyKbqDabGFdpAeobYpbE │ +│ └── │ +│ ┌── │ +│ │ ID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ +│ │ Owner: Shared( 50639346 ) │ +│ │ Version: 50639353 │ +│ │ Digest: HVFpzpq2SM2KvZM2QQTQL7WstRVfToUMh11bKofrPgvg │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ +│ │ Version: 50639346 │ +│ │ Digest: AFJ8ezJv2Ejc2egutkq5wXWGRNtzxyVG35djqeA99Uj1 │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0x67667b64f44ac46e4c6318d534ce45506932e5c5e2a2d1903ad7b3a4ead54119 │ +│ │ Version: 50639353 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639353 │ +│ │ Digest: 5UwQ8rEvbtNfs1ebxjD8WY3hwyKbqDabGFdpAeobYpbE │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4909600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3588948 MIST │ +│ Non-refundable Storage Fee: 36252 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 2ew9tPGogdCEYqyG8VecqS3ioKZHSDb1xtD6jy8fDKmH │ +│ 577oXAxdiLhrNb3tN53d4UqxBxp9eqR3N685e5fAvoPU │ +│ FhT5EaD1FPcf8SLwCqAe3CFHEkMyLtTNiBGcYj3yqrjX │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: Z6TGJi4ESuA4BM3GkpcEy9ovdBSoweyp4uC8J2vcyQq:0 │ +│ │ PackageID: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859 │ +│ │ Transaction Module: move_game │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ EventType: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859::move_game::EventDeposit │ +│ │ ParsedJSON: │ +│ │ ┌────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ amount │ 10000000 │ │ +│ │ ├────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ player │ 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ │ +│ │ └────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x469601e71637c985f619d42b49d81f4b52d7089b6982d68d636a8709bceca056 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Object ID: ( 0x1d4e08650b45ac8df9b99778a915f4b058ae883070f3972e34f9477b1a356cbd ) │ +│ │ ObjectType: 0x2::dynamic_field::Field │ +│ │ Version: 50639353 │ +│ │ Digest: GC9XwDxgUgAc2SuR6s52FwtCiNLpBEuDNoimBTZE83L1 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50639353 │ +│ │ Digest: 5UwQ8rEvbtNfs1ebxjD8WY3hwyKbqDabGFdpAeobYpbE │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 50639346 ) │ +│ │ ObjectType: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859::move_game::Director │ +│ │ Version: 50639353 │ +│ │ Digest: HVFpzpq2SM2KvZM2QQTQL7WstRVfToUMh11bKofrPgvg │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2320652 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD │ +│ │ Amount: -10000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task4/move_game/deposit2.log b/mover/Qiuyangfeng/code/task4/move_game/deposit2.log new file mode 100644 index 000000000..a6bc2da28 --- /dev/null +++ b/mover/Qiuyangfeng/code/task4/move_game/deposit2.log @@ -0,0 +1,159 @@ +Transaction Digest: 3r2TFXMbo8GdrDyp4vHwDqYBVkrzYuJbm6GG3Cxqf8mH +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ Gas Owner: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Version: 50639349 │ +│ │ Digest: GhauxHnUfED53aojyDmZdTdw1oLLpvpUc7yzG4nwCKNC │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ │ +│ │ 1 Imm/Owned Object ID: 0x84017005cb5d09618fa3e115eb8561d01aad3258dd8345ca8056fe6a4a77a4d7 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: deposit │ │ +│ │ │ Module: move_game │ │ +│ │ │ Package: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ HSlER0QtTT6njZOQOSZ1gDevFu7HcOzfFxECVHVZDpen5XbEHwtQ6WNQcdUc/DVv166yrSIBcLav7xiJ8L/ZDw== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 3r2TFXMbo8GdrDyp4vHwDqYBVkrzYuJbm6GG3Cxqf8mH │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xf8ef99e33581db89a6ef897e51d5560de5c998eb121458036f763740a630b632 │ +│ │ Owner: Object ID: ( 0x1d4e08650b45ac8df9b99778a915f4b058ae883070f3972e34f9477b1a356cbd ) │ +│ │ Version: 50639354 │ +│ │ Digest: 5Uo5xUDhhfqQWjTkBs8mSfXw9xciP71qZheACxPzjcuq │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ Version: 50639354 │ +│ │ Digest: 9GTBvS9XAppaKozcqmPtByy7WFG3FQhZNTLsVRDjFiPX │ +│ └── │ +│ ┌── │ +│ │ ID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ +│ │ Owner: Shared( 50639346 ) │ +│ │ Version: 50639354 │ +│ │ Digest: 4fkcvKRZANMNdwZTLGmdsicmhsqkF29KzUUnMyirKRYk │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ +│ │ Version: 50639353 │ +│ │ Digest: HVFpzpq2SM2KvZM2QQTQL7WstRVfToUMh11bKofrPgvg │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0x84017005cb5d09618fa3e115eb8561d01aad3258dd8345ca8056fe6a4a77a4d7 │ +│ │ Version: 50639354 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ Version: 50639354 │ +│ │ Digest: 9GTBvS9XAppaKozcqmPtByy7WFG3FQhZNTLsVRDjFiPX │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 5152800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 4521924 MIST │ +│ Non-refundable Storage Fee: 45676 MIST │ +│ │ +│ Transaction Dependencies: │ +│ Z6TGJi4ESuA4BM3GkpcEy9ovdBSoweyp4uC8J2vcyQq │ +│ 577oXAxdiLhrNb3tN53d4UqxBxp9eqR3N685e5fAvoPU │ +│ 89SHNUifottSZC8sD9FyNk9mf7XGNEQSCrMAr15KxSjt │ +│ 9eKXgv5CX2oNkCVq7LivmdBFB9BkLzQoPBEpTaW5rX8W │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 3r2TFXMbo8GdrDyp4vHwDqYBVkrzYuJbm6GG3Cxqf8mH:0 │ +│ │ PackageID: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859 │ +│ │ Transaction Module: move_game │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ EventType: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859::move_game::EventDeposit │ +│ │ ParsedJSON: │ +│ │ ┌────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ amount │ 20000000 │ │ +│ │ ├────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ player │ 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ │ +│ │ └────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xf8ef99e33581db89a6ef897e51d5560de5c998eb121458036f763740a630b632 │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ Owner: Object ID: ( 0x1d4e08650b45ac8df9b99778a915f4b058ae883070f3972e34f9477b1a356cbd ) │ +│ │ ObjectType: 0x2::dynamic_field::Field │ +│ │ Version: 50639354 │ +│ │ Digest: 5Uo5xUDhhfqQWjTkBs8mSfXw9xciP71qZheACxPzjcuq │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x1c7e981a636f6cd5a6cd452374477479fcb9b00844e45178f6a849694dbedcc0 │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50639354 │ +│ │ Digest: 9GTBvS9XAppaKozcqmPtByy7WFG3FQhZNTLsVRDjFiPX │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ +│ │ Sender: 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 │ +│ │ Owner: Shared( 50639346 ) │ +│ │ ObjectType: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859::move_game::Director │ +│ │ Version: 50639354 │ +│ │ Digest: 4fkcvKRZANMNdwZTLGmdsicmhsqkF29KzUUnMyirKRYk │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1630876 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD │ +│ │ Amount: -20000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task4/move_game/deposit3.log b/mover/Qiuyangfeng/code/task4/move_game/deposit3.log new file mode 100644 index 000000000..b33f091d9 --- /dev/null +++ b/mover/Qiuyangfeng/code/task4/move_game/deposit3.log @@ -0,0 +1,159 @@ +Transaction Digest: H8b2cMg7EgPypg3oRiTbqXy3ycgjPsJzgA3zPeJpWnhv +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d │ +│ Gas Owner: 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x90496bdd9fb87ad06792d629f9a2c6cc4d323bfd411ad3918608fea93e56f542 │ +│ │ Version: 928656 │ +│ │ Digest: GpjUarShb8xMWx8woCvQT22ZiN61zNcEcF8hWwnozpVT │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ │ +│ │ 1 Imm/Owned Object ID: 0x67b57e83616e7c441c48af82babfcd605525baf71f313ce471884a4624351c53 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: deposit │ │ +│ │ │ Module: move_game │ │ +│ │ │ Package: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ XTaSXnNOMDQe0MiMbcSpvg6rzuwh5dbNVRXGpeGyDJKmwurimFdpr4Jfl71pvmix0EmHijERH6Ynnu+ZfrlpDw== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: H8b2cMg7EgPypg3oRiTbqXy3ycgjPsJzgA3zPeJpWnhv │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xa2589ec480a0d88253609509f3145b57431ac3b0137fec8d0fc1be6226027203 │ +│ │ Owner: Object ID: ( 0x1d4e08650b45ac8df9b99778a915f4b058ae883070f3972e34f9477b1a356cbd ) │ +│ │ Version: 50639355 │ +│ │ Digest: 2xxGNNX1QiAvBtbBxp2EJQHbyWtrfw1Qkmd3VG7n32ZZ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ +│ │ Owner: Shared( 50639346 ) │ +│ │ Version: 50639355 │ +│ │ Digest: 97Md7BNT4BtCxWG3eq1GsFgVz7Yh4ZXFtybYvkyq2ZCk │ +│ └── │ +│ ┌── │ +│ │ ID: 0x90496bdd9fb87ad06792d629f9a2c6cc4d323bfd411ad3918608fea93e56f542 │ +│ │ Owner: Account Address ( 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d ) │ +│ │ Version: 50639355 │ +│ │ Digest: 8gQqwvnmwSAvNq8f8VsT5cmgJN25jyCiMV1UAWeA41Ez │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ +│ │ Version: 50639354 │ +│ │ Digest: 4fkcvKRZANMNdwZTLGmdsicmhsqkF29KzUUnMyirKRYk │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0x67b57e83616e7c441c48af82babfcd605525baf71f313ce471884a4624351c53 │ +│ │ Version: 50639355 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x90496bdd9fb87ad06792d629f9a2c6cc4d323bfd411ad3918608fea93e56f542 │ +│ │ Owner: Account Address ( 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d ) │ +│ │ Version: 50639355 │ +│ │ Digest: 8gQqwvnmwSAvNq8f8VsT5cmgJN25jyCiMV1UAWeA41Ez │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 5396000 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 4762692 MIST │ +│ Non-refundable Storage Fee: 48108 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 2ew9tPGogdCEYqyG8VecqS3ioKZHSDb1xtD6jy8fDKmH │ +│ 3r2TFXMbo8GdrDyp4vHwDqYBVkrzYuJbm6GG3Cxqf8mH │ +│ 577oXAxdiLhrNb3tN53d4UqxBxp9eqR3N685e5fAvoPU │ +│ HDKk9dEFLaNBWY1vNHMaXBKqUVnKPqXipQK2SxwALKph │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: H8b2cMg7EgPypg3oRiTbqXy3ycgjPsJzgA3zPeJpWnhv:0 │ +│ │ PackageID: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859 │ +│ │ Transaction Module: move_game │ +│ │ Sender: 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d │ +│ │ EventType: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859::move_game::EventDeposit │ +│ │ ParsedJSON: │ +│ │ ┌────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ amount │ 30000000 │ │ +│ │ ├────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ player │ 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d │ │ +│ │ └────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xa2589ec480a0d88253609509f3145b57431ac3b0137fec8d0fc1be6226027203 │ +│ │ Sender: 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d │ +│ │ Owner: Object ID: ( 0x1d4e08650b45ac8df9b99778a915f4b058ae883070f3972e34f9477b1a356cbd ) │ +│ │ ObjectType: 0x2::dynamic_field::Field │ +│ │ Version: 50639355 │ +│ │ Digest: 2xxGNNX1QiAvBtbBxp2EJQHbyWtrfw1Qkmd3VG7n32ZZ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ +│ │ Sender: 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d │ +│ │ Owner: Shared( 50639346 ) │ +│ │ ObjectType: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859::move_game::Director │ +│ │ Version: 50639355 │ +│ │ Digest: 97Md7BNT4BtCxWG3eq1GsFgVz7Yh4ZXFtybYvkyq2ZCk │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x90496bdd9fb87ad06792d629f9a2c6cc4d323bfd411ad3918608fea93e56f542 │ +│ │ Sender: 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d │ +│ │ Owner: Account Address ( 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50639355 │ +│ │ Digest: 8gQqwvnmwSAvNq8f8VsT5cmgJN25jyCiMV1UAWeA41Ez │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1633308 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD │ +│ │ Amount: -30000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task4/move_game/draw.log b/mover/Qiuyangfeng/code/task4/move_game/draw.log new file mode 100644 index 000000000..e4ce2460c --- /dev/null +++ b/mover/Qiuyangfeng/code/task4/move_game/draw.log @@ -0,0 +1,231 @@ +Transaction Digest: 5AmUET9M7KbF3gvNB3WxerLscEj5js4oHJk5VBQtmZEm +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50639353 │ +│ │ Digest: 5UwQ8rEvbtNfs1ebxjD8WY3hwyKbqDabGFdpAeobYpbE │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x5d791b5e5cf64c5aa5f473c87b804abf472aceb330080eba234995e309da950f │ │ +│ │ 1 Shared Object ID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ │ +│ │ 2 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: draw │ │ +│ │ │ Module: move_game │ │ +│ │ │ Package: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 9JammamVt2YiJSYkyUmh0IqZE6v8xxTBtrry8kcjoWmYkKCXrGiZUsyjX/c53Kt2E0trIsBWN/WsW3KB5u52BA== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 5AmUET9M7KbF3gvNB3WxerLscEj5js4oHJk5VBQtmZEm │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x317a1c3114a640dcbe203720a436d28e8605514f91f680ed69ba59b92be9372a │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728922 │ +│ │ Digest: BDfcwNSApn1GK2tGKqw52uirrsVLtC9wXbz4Vrgi6UhX │ +│ └── │ +│ ┌── │ +│ │ ID: 0x4d2cf807a3234ac3558c3557880503d09b58cc665e928a0b89e20c9df162a9cf │ +│ │ Owner: Account Address ( 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d ) │ +│ │ Version: 50728922 │ +│ │ Digest: 8J1GpQBig9H24xq3pgQkbXngx7xHpcfw4TgZA6HCszNd │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728922 │ +│ │ Digest: 4bCPHib1BxCT4tEP8nKThYmvqucwybvdxoh2Uggrsm31 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x5d791b5e5cf64c5aa5f473c87b804abf472aceb330080eba234995e309da950f │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728922 │ +│ │ Digest: FFAfa5ZBDJWNY3XoR6m1hA6xruSbej3gurow7gtgJa7T │ +│ └── │ +│ ┌── │ +│ │ ID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ +│ │ Owner: Shared( 50639346 ) │ +│ │ Version: 50728922 │ +│ │ Digest: 879kr4aBzLnXHFy36EHhnncBHqVywWTwRpoeu3MHY1dY │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ +│ │ Version: 50639355 │ +│ │ Digest: 97Md7BNT4BtCxWG3eq1GsFgVz7Yh4ZXFtybYvkyq2ZCk │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ +│ │ Version: 50728921 │ +│ │ Digest: JCsLJuS2qdGhqhqDEu9U6xbvDovf8URWeoVzYxpHeddW │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728922 │ +│ │ Digest: 4bCPHib1BxCT4tEP8nKThYmvqucwybvdxoh2Uggrsm31 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 8170000 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 5018508 MIST │ +│ Non-refundable Storage Fee: 50692 MIST │ +│ │ +│ Transaction Dependencies: │ +│ Z6TGJi4ESuA4BM3GkpcEy9ovdBSoweyp4uC8J2vcyQq │ +│ 577oXAxdiLhrNb3tN53d4UqxBxp9eqR3N685e5fAvoPU │ +│ 6qRWybDDARpPGX4KGMEcpWGoDPWxSUghE9mP3txg8sn4 │ +│ H8b2cMg7EgPypg3oRiTbqXy3ycgjPsJzgA3zPeJpWnhv │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 5AmUET9M7KbF3gvNB3WxerLscEj5js4oHJk5VBQtmZEm:0 │ +│ │ PackageID: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859 │ +│ │ Transaction Module: move_game │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ EventType: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859::move_game::EventRnd │ +│ │ ParsedJSON: │ +│ │ ┌──────────────┬───┐ │ +│ │ │ total │ 3 │ │ +│ │ ├──────────────┼───┤ │ +│ │ │ winner1Index │ 2 │ │ +│ │ ├──────────────┼───┤ │ +│ │ │ winner2Index │ 0 │ │ +│ │ └──────────────┴───┘ │ +│ └── │ +│ ┌── │ +│ │ EventID: 5AmUET9M7KbF3gvNB3WxerLscEj5js4oHJk5VBQtmZEm:1 │ +│ │ PackageID: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859 │ +│ │ Transaction Module: move_game │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ EventType: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859::move_game::EventAmount │ +│ │ ParsedJSON: │ +│ │ ┌────────────────────┬──────────┐ │ +│ │ │ amount │ 60000000 │ │ +│ │ ├────────────────────┼──────────┤ │ +│ │ │ winner1PrizeAmount │ 30000000 │ │ +│ │ ├────────────────────┼──────────┤ │ +│ │ │ winner2PrizeAmount │ 30000000 │ │ +│ │ └────────────────────┴──────────┘ │ +│ └── │ +│ ┌── │ +│ │ EventID: 5AmUET9M7KbF3gvNB3WxerLscEj5js4oHJk5VBQtmZEm:2 │ +│ │ PackageID: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859 │ +│ │ Transaction Module: move_game │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ EventType: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859::move_game::EventDraw │ +│ │ ParsedJSON: │ +│ │ ┌────────────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ winner1Address │ 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d │ │ +│ │ ├────────────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ winner1Amount │ 30000000 │ │ +│ │ ├────────────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ winner1Index │ 2 │ │ +│ │ ├────────────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ winner2Address │ 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ │ +│ │ ├────────────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ winner2Amount │ 30000000 │ │ +│ │ ├────────────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ winner2Index │ 0 │ │ +│ │ └────────────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x317a1c3114a640dcbe203720a436d28e8605514f91f680ed69ba59b92be9372a │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50728922 │ +│ │ Digest: BDfcwNSApn1GK2tGKqw52uirrsVLtC9wXbz4Vrgi6UhX │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x4d2cf807a3234ac3558c3557880503d09b58cc665e928a0b89e20c9df162a9cf │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d ) │ +│ │ ObjectType: 0x2::coin::Coin<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50728922 │ +│ │ Digest: 8J1GpQBig9H24xq3pgQkbXngx7xHpcfw4TgZA6HCszNd │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50728922 │ +│ │ Digest: 4bCPHib1BxCT4tEP8nKThYmvqucwybvdxoh2Uggrsm31 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x5d791b5e5cf64c5aa5f473c87b804abf472aceb330080eba234995e309da950f │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859::move_game::AdminCap │ +│ │ Version: 50728922 │ +│ │ Digest: FFAfa5ZBDJWNY3XoR6m1hA6xruSbej3gurow7gtgJa7T │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 50639346 ) │ +│ │ ObjectType: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859::move_game::Director │ +│ │ Version: 50728922 │ +│ │ Digest: 879kr4aBzLnXHFy36EHhnncBHqVywWTwRpoeu3MHY1dY │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -4151492 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD │ +│ │ Amount: 30000000 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD │ +│ │ Amount: 30000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task4/move_game/mint1.log b/mover/Qiuyangfeng/code/task4/move_game/mint1.log new file mode 100644 index 000000000..11e1428b0 --- /dev/null +++ b/mover/Qiuyangfeng/code/task4/move_game/mint1.log @@ -0,0 +1,141 @@ +Transaction Digest: FhT5EaD1FPcf8SLwCqAe3CFHEkMyLtTNiBGcYj3yqrjX +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50639349 │ +│ │ Digest: 6ZhCPzhwUJeBADBYfcxUL1okXHkMmcpEQHhoRN5dxTSZ │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ │ +│ │ 1 Pure Arg: Type: u64, Value: "10000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: usd │ │ +│ │ │ Package: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ xhIaKoAb9SFvl4K6BsLcFXKK8bD+jLqOvODSA7ZaP9FxqT2d9b+468OYAIzl3Nhf+PSjDtpQKkNejZZij36pBA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: FhT5EaD1FPcf8SLwCqAe3CFHEkMyLtTNiBGcYj3yqrjX │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x67667b64f44ac46e4c6318d534ce45506932e5c5e2a2d1903ad7b3a4ead54119 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639350 │ +│ │ Digest: DvqoQDZ1BJeevjivsdAQgRNVc9NMMt8L1pPcz99nunHS │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Owner: Shared( 50639342 ) │ +│ │ Version: 50639350 │ +│ │ Digest: GedUMpzKRqyWNU3nbWFsuPCFhsVPdPKoxe5txeHH5qNS │ +│ └── │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639350 │ +│ │ Digest: DXhqGD7n8wwXEDg6JfPT3TqaEU6erCVeMBJhH25nvSFv │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Version: 50639346 │ +│ │ Digest: 7cs3Z5hbrCpHSzkFPtmiJ8dp8RPAkjitUAzwfU14GWmK │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639350 │ +│ │ Digest: DXhqGD7n8wwXEDg6JfPT3TqaEU6erCVeMBJhH25nvSFv │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3982400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2648448 MIST │ +│ Non-refundable Storage Fee: 26752 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 6kHt82eHvjrvRXZn7tt8ooerfLuaoyvvMruH3MseTWQo │ +│ AX3P5KF5kwmTZZXhDghkVsy18C4No3EVeoBPPQzCW2AT │ +│ GfxNmmiYFzVFDAUhHZ9dGbn5c6rFsP9yucnfkpjRyn1M │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x67667b64f44ac46e4c6318d534ce45506932e5c5e2a2d1903ad7b3a4ead54119 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50639350 │ +│ │ Digest: DvqoQDZ1BJeevjivsdAQgRNVc9NMMt8L1pPcz99nunHS │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 50639342 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50639350 │ +│ │ Digest: GedUMpzKRqyWNU3nbWFsuPCFhsVPdPKoxe5txeHH5qNS │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50639350 │ +│ │ Digest: DXhqGD7n8wwXEDg6JfPT3TqaEU6erCVeMBJhH25nvSFv │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2333952 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD │ +│ │ Amount: 10000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task4/move_game/mint2.log b/mover/Qiuyangfeng/code/task4/move_game/mint2.log new file mode 100644 index 000000000..4866efa02 --- /dev/null +++ b/mover/Qiuyangfeng/code/task4/move_game/mint2.log @@ -0,0 +1,140 @@ +Transaction Digest: 9eKXgv5CX2oNkCVq7LivmdBFB9BkLzQoPBEpTaW5rX8W +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50639350 │ +│ │ Digest: DXhqGD7n8wwXEDg6JfPT3TqaEU6erCVeMBJhH25nvSFv │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ │ +│ │ 1 Pure Arg: Type: u64, Value: "20000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: usd │ │ +│ │ │ Package: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 1V+eOA41nUtH+WX7l7WE3CmLkhP4IWHQQS/6kZEbd8YqB1Wb6Yb4X/TLYpd7tf3e4SOic7Jyf3gIFRDFnZrsCw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 9eKXgv5CX2oNkCVq7LivmdBFB9BkLzQoPBEpTaW5rX8W │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x84017005cb5d09618fa3e115eb8561d01aad3258dd8345ca8056fe6a4a77a4d7 │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ Version: 50639351 │ +│ │ Digest: 6XU9Tdx7n2QzmL8zG8WcWtrTMD2JgyYZkU8C1fxsD4Sk │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Owner: Shared( 50639342 ) │ +│ │ Version: 50639351 │ +│ │ Digest: 6WTjdHQjahxtvv8uDKcYNnhG2YwowhGCyz1exStxFij4 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639351 │ +│ │ Digest: HE36ajtAbsYwrbbouq2z3MvuGBYApMdH2WnzxagmTiUF │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Version: 50639350 │ +│ │ Digest: GedUMpzKRqyWNU3nbWFsuPCFhsVPdPKoxe5txeHH5qNS │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639351 │ +│ │ Digest: HE36ajtAbsYwrbbouq2z3MvuGBYApMdH2WnzxagmTiUF │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3982400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2648448 MIST │ +│ Non-refundable Storage Fee: 26752 MIST │ +│ │ +│ Transaction Dependencies: │ +│ AX3P5KF5kwmTZZXhDghkVsy18C4No3EVeoBPPQzCW2AT │ +│ FhT5EaD1FPcf8SLwCqAe3CFHEkMyLtTNiBGcYj3yqrjX │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x84017005cb5d09618fa3e115eb8561d01aad3258dd8345ca8056fe6a4a77a4d7 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50639351 │ +│ │ Digest: 6XU9Tdx7n2QzmL8zG8WcWtrTMD2JgyYZkU8C1fxsD4Sk │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 50639342 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50639351 │ +│ │ Digest: 6WTjdHQjahxtvv8uDKcYNnhG2YwowhGCyz1exStxFij4 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50639351 │ +│ │ Digest: HE36ajtAbsYwrbbouq2z3MvuGBYApMdH2WnzxagmTiUF │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2333952 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x69784861798889824a79d1a9d3262377a6d3f447e6948d5883d834443ba7d312 ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD │ +│ │ Amount: 20000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task4/move_game/mint3.log b/mover/Qiuyangfeng/code/task4/move_game/mint3.log new file mode 100644 index 000000000..4e7892dcb --- /dev/null +++ b/mover/Qiuyangfeng/code/task4/move_game/mint3.log @@ -0,0 +1,140 @@ +Transaction Digest: 2ew9tPGogdCEYqyG8VecqS3ioKZHSDb1xtD6jy8fDKmH +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50639351 │ +│ │ Digest: HE36ajtAbsYwrbbouq2z3MvuGBYApMdH2WnzxagmTiUF │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ │ +│ │ 1 Pure Arg: Type: u64, Value: "30000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: usd │ │ +│ │ │ Package: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ ebBfTClQ06fDTCztJRxXQE/FDVDPpzEvOBWu9Yg7VkGvqN/4NAKQ321tybTAOir1FtuJ/+pzHgkQLFMSKps0AQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 2ew9tPGogdCEYqyG8VecqS3ioKZHSDb1xtD6jy8fDKmH │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x67b57e83616e7c441c48af82babfcd605525baf71f313ce471884a4624351c53 │ +│ │ Owner: Account Address ( 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d ) │ +│ │ Version: 50639352 │ +│ │ Digest: 4tJj81amLRZsgB54sVueh67cYfyHWYZnfAHUQsxYZJaZ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Owner: Shared( 50639342 ) │ +│ │ Version: 50639352 │ +│ │ Digest: EavVXxVrgRsfgbHLK58xzTZQ4fKUs2MKqFrScQ4vmJbd │ +│ └── │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639352 │ +│ │ Digest: 9eNQahCKskMi3FeeLtUeQKspnKg2pFhdGW1S2uxcFUR4 │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Version: 50639351 │ +│ │ Digest: 6WTjdHQjahxtvv8uDKcYNnhG2YwowhGCyz1exStxFij4 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639352 │ +│ │ Digest: 9eNQahCKskMi3FeeLtUeQKspnKg2pFhdGW1S2uxcFUR4 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3982400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2648448 MIST │ +│ Non-refundable Storage Fee: 26752 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 9eKXgv5CX2oNkCVq7LivmdBFB9BkLzQoPBEpTaW5rX8W │ +│ AX3P5KF5kwmTZZXhDghkVsy18C4No3EVeoBPPQzCW2AT │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x67b57e83616e7c441c48af82babfcd605525baf71f313ce471884a4624351c53 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d ) │ +│ │ ObjectType: 0x2::coin::Coin<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50639352 │ +│ │ Digest: 4tJj81amLRZsgB54sVueh67cYfyHWYZnfAHUQsxYZJaZ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 50639342 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50639352 │ +│ │ Digest: EavVXxVrgRsfgbHLK58xzTZQ4fKUs2MKqFrScQ4vmJbd │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50639352 │ +│ │ Digest: 9eNQahCKskMi3FeeLtUeQKspnKg2pFhdGW1S2uxcFUR4 │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2333952 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x98ebab49bc35ebb8d3a15202411f9cbe5105cb831337a512267c0ad09868951d ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD │ +│ │ Amount: 30000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task4/move_game/publish.log b/mover/Qiuyangfeng/code/task4/move_game/publish.log new file mode 100644 index 000000000..7dac35453 --- /dev/null +++ b/mover/Qiuyangfeng/code/task4/move_game/publish.log @@ -0,0 +1,167 @@ +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY move_coin +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING move_game +Total number of linter warnings suppressed: 1 (unique lints: 1) +Successfully verified dependencies on-chain against source. +Transaction Digest: 577oXAxdiLhrNb3tN53d4UqxBxp9eqR3N685e5fAvoPU +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 29519600 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50639345 │ +│ │ Digest: 8CFPzsa44jBqk5QrUnQc4JfN8gavqy8yzzPNYZFGRSQv │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ │ 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ BDmygVFk+L3+ABoktmuVuG0rr2HVlng4V3hJ4AXu/swmKBLVf+OrEj72HM/nogJOGwkbggMHdQ2Jy/a1ufPODg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 577oXAxdiLhrNb3tN53d4UqxBxp9eqR3N685e5fAvoPU │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x023471a5caca2d07222a7f51b3c81ab5d245f2b5fa26a544ff8f91fc96b97283 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639346 │ +│ │ Digest: E85BT9Yg8yqi4bmRVQHS6osHLpu7F5sSrmoyixyXDxuw │ +│ └── │ +│ ┌── │ +│ │ ID: 0x5d791b5e5cf64c5aa5f473c87b804abf472aceb330080eba234995e309da950f │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639346 │ +│ │ Digest: 2Z4cLVtC94thUSzG8wWsxdP5FyZwtAriFwHbAR8hWdDx │ +│ └── │ +│ ┌── │ +│ │ ID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ +│ │ Owner: Shared( 50639346 ) │ +│ │ Version: 50639346 │ +│ │ Digest: AFJ8ezJv2Ejc2egutkq5wXWGRNtzxyVG35djqeA99Uj1 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 2iXN6aeLKmfEu3EormWY6ieY6yviD1nDG2ZfJf5wMuyD │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639346 │ +│ │ Digest: HFrXQny8nTXnaKuJJj3P4RBrTPpDDLuL9UPy7cVxHTYR │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50639346 │ +│ │ Digest: HFrXQny8nTXnaKuJJj3P4RBrTPpDDLuL9UPy7cVxHTYR │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 27519600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ 8xY61QaUpu7Z6ZCVLYyLCZ66DgYjZvrbaRit6Tu6wUvH │ +│ AX3P5KF5kwmTZZXhDghkVsy18C4No3EVeoBPPQzCW2AT │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x023471a5caca2d07222a7f51b3c81ab5d245f2b5fa26a544ff8f91fc96b97283 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 50639346 │ +│ │ Digest: E85BT9Yg8yqi4bmRVQHS6osHLpu7F5sSrmoyixyXDxuw │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x5d791b5e5cf64c5aa5f473c87b804abf472aceb330080eba234995e309da950f │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859::move_game::AdminCap │ +│ │ Version: 50639346 │ +│ │ Digest: 2Z4cLVtC94thUSzG8wWsxdP5FyZwtAriFwHbAR8hWdDx │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x73743ccf149ffb4e1bcae70f77670ecc26c571c0b024459ae817a7e63de946ae │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 50639346 ) │ +│ │ ObjectType: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859::move_game::Director │ +│ │ Version: 50639346 │ +│ │ Digest: AFJ8ezJv2Ejc2egutkq5wXWGRNtzxyVG35djqeA99Uj1 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50639346 │ +│ │ Digest: HFrXQny8nTXnaKuJJj3P4RBrTPpDDLuL9UPy7cVxHTYR │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859 │ +│ │ Version: 1 │ +│ │ Digest: 2iXN6aeLKmfEu3EormWY6ieY6yviD1nDG2ZfJf5wMuyD │ +│ │ Modules: move_game │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -27541480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task4/move_game/sources/move_game.move b/mover/Qiuyangfeng/code/task4/move_game/sources/move_game.move new file mode 100644 index 000000000..d9c69f960 --- /dev/null +++ b/mover/Qiuyangfeng/code/task4/move_game/sources/move_game.move @@ -0,0 +1,218 @@ +/// Module: move_game +module move_game::move_game { + use sui::balance; + use sui::balance::Balance; + use sui::coin; + use sui::coin::{Coin}; + use sui::event::emit; + use sui::random; + use sui::random::{Random, new_generator}; + use sui::table; + use sui::table::Table; + use sui::transfer::{transfer, share_object, public_transfer}; + use sui::tx_context::{sender}; + use move_coin::usd::USD; + + const EEmptyRound: u64 = 1; + const EPlayerCntNotEnough: u64 = 2; + const ELastRoundIsDrawed: u64 = 3; + + + public struct Director has key { + id: UID, + rounds: vector + } + + public struct AdminCap has key, store { + id: UID + } + + public struct Round has key, store { + id: UID, + balance: Balance, + players: vector
, + playersDeposit: Table, + totalDeposit: u64, + drawed: bool, + winner1: Option
, + winner2: Option
, + } + + public struct EventDeposit has copy, drop { + player: address, + amount: u64 + } + + public struct EventDraw has copy, drop { + winner1Index: u64, + winner2Index: u64, + winner1Address: address, + winner2Address: address, + winner1Amount: u64, + winner2Amount: u64 + } + + public struct EventRnd has copy, drop { + total: u8, + winner1Index: u64, + winner2Index: u64 + } + + public struct EventAmount has copy, drop { + amount: u64, + winner1PrizeAmount: u64, + winner2PrizeAmount: u64 + } + + fun init(ctx: &mut TxContext) { + let adminCap = AdminCap { + id: object::new(ctx) + }; + + let director = Director { + id: object::new(ctx), + rounds: vector::empty() + }; + + share_object(director); + + transfer(adminCap, sender(ctx)); + } + + public entry fun deposit(director: &mut Director, coin: Coin, ctx: &mut TxContext) { + if(vector::is_empty(&director.rounds)) { + vector::push_back(&mut director.rounds, Round { + id: object::new(ctx), + balance: balance::zero(), + players: vector::empty(), + playersDeposit: table::new(ctx), + totalDeposit: 0, + drawed: false, + winner1: option::none(), + winner2: option::none() + }); + }; + + let len = vector::length(&director.rounds); + let mut currentRound = vector::borrow_mut(&mut director.rounds, len - 1); + + if(currentRound.drawed){ + vector::push_back(&mut director.rounds, Round { + id: object::new(ctx), + balance: balance::zero(), + players: vector::empty(), + playersDeposit: table::new(ctx), + totalDeposit: 0, + drawed: false, + winner1: option::none(), + winner2: option::none() + }); + let len2 = vector::length(&director.rounds); + + currentRound = vector::borrow_mut(&mut director.rounds, len2 - 1); + }; + + + let depositBalance = coin::into_balance(coin); + let amount = balance::value(&depositBalance); + + currentRound.totalDeposit = currentRound.totalDeposit + amount; + + let player = sender(ctx); + + if(table::contains(¤tRound.playersDeposit, player)){ + let oldAmount = table::borrow_mut(&mut currentRound.playersDeposit, player); + *oldAmount = *oldAmount + amount; + } else { + table::add(&mut currentRound.playersDeposit, player, amount); + }; + + if (!vector::contains(¤tRound.players, &player)) { + vector::push_back(&mut currentRound.players, player); + }; + + balance::join(&mut currentRound.balance, depositBalance); + + emit(EventDeposit { + player, + amount + }); + } + + #[allow(lint(public_random))] + public entry fun draw(_: &AdminCap, director: &mut Director, r: &Random, ctx: &mut TxContext) { + assert!(vector::length(&director.rounds) > 0, EEmptyRound); + + let len = vector::length(&director.rounds); + let currentRound = vector::borrow_mut(&mut director.rounds, len - 1); + + let playerCnt = vector::length(¤tRound.players); + assert!(playerCnt > 1, EPlayerCntNotEnough); + assert!(!currentRound.drawed, ELastRoundIsDrawed); + + + let mut generator = new_generator(r, ctx); + let winner1IdxR = random::generate_u64_in_range(&mut generator, 0, 1024); + let winner2IdxR = random::generate_u64_in_range(&mut generator, 0, 1024); + let winner1Idx = winner1IdxR % playerCnt; + let winner2Idx = winner2IdxR % playerCnt; + + emit(EventRnd { + total: (playerCnt as u8), + winner1Index: winner1Idx, + winner2Index: winner2Idx + }); + + let winner1Address = vector::borrow(¤tRound.players, winner1Idx); + let winner2Address = vector::borrow(¤tRound.players, winner2Idx); + + let amount = balance::value(¤tRound.balance); + + let winner1PrizeAmount = amount / 2; + let winner2PrizeAmount = amount - winner1PrizeAmount; + + + emit(EventAmount { + amount: amount, + winner1PrizeAmount: winner1PrizeAmount, + winner2PrizeAmount: winner2PrizeAmount + }); + + + let winner1PrizeBalance = balance::split(&mut currentRound.balance, winner1PrizeAmount); + let winner2PrizeBalance = balance::split(&mut currentRound.balance, winner2PrizeAmount); + + + let winner1Coin = coin::from_balance(winner1PrizeBalance, ctx); + let winner2Coin = coin::from_balance(winner2PrizeBalance, ctx); + + public_transfer(winner1Coin, *winner1Address); + public_transfer(winner2Coin, *winner2Address); + + currentRound.winner1 = option::some(*winner1Address); + currentRound.winner2 = option::some(*winner2Address); + currentRound.drawed = true; + + emit(EventDraw { + winner1Index: winner1Idx, + winner2Index: winner2Idx, + winner1Address: *winner1Address, + winner2Address: *winner2Address, + winner1Amount: winner1PrizeAmount, + winner2Amount: winner2PrizeAmount + }) + } + + + entry fun rnd(r: &Random, ctx: &mut TxContext) { + let mut generator = new_generator(r, ctx); + let winner1Idx = random::generate_u64_in_range(&mut generator, 0, 100); + let winner2Idx = random::generate_u64_in_range(&mut generator, 0, 100); + + emit(EventRnd { + total: 3, + winner1Index: winner1Idx, + winner2Index: winner2Idx + }) + } +} diff --git a/mover/Qiuyangfeng/code/task4/move_game/tests/move_game_tests.move b/mover/Qiuyangfeng/code/task4/move_game/tests/move_game_tests.move new file mode 100644 index 000000000..bd672b7da --- /dev/null +++ b/mover/Qiuyangfeng/code/task4/move_game/tests/move_game_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module move_game::move_game_tests { + // uncomment this line to import the module + // use move_game::move_game; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_move_game() { + // pass + } + + #[test, expected_failure(abort_code = ::move_game::move_game_tests::ENotImplemented)] + fun test_move_game_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Qiuyangfeng/code/task5/move_swap/Move.lock b/mover/Qiuyangfeng/code/task5/move_swap/Move.lock new file mode 100644 index 000000000..125daff3e --- /dev/null +++ b/mover/Qiuyangfeng/code/task5/move_swap/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "4C91A61A5098023BDC2648902D5C64FC6900B327F9A5708904125991F76569AD" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "move_coin" }, +] + +[[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.package]] +name = "move_coin" +source = { local = "../../task2/move_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.27.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d" +latest-published-id = "0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d" +published-version = "1" diff --git a/mover/Qiuyangfeng/code/task5/move_swap/Move.toml b/mover/Qiuyangfeng/code/task5/move_swap/Move.toml new file mode 100644 index 000000000..0c998dea6 --- /dev/null +++ b/mover/Qiuyangfeng/code/task5/move_swap/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "move_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 (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" } +move_coin = {local = "../../task2/move_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] +move_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" + diff --git a/mover/Qiuyangfeng/code/task5/move_swap/deposit_a.log b/mover/Qiuyangfeng/code/task5/move_swap/deposit_a.log new file mode 100644 index 000000000..7c4df0348 --- /dev/null +++ b/mover/Qiuyangfeng/code/task5/move_swap/deposit_a.log @@ -0,0 +1,128 @@ +Transaction Digest: 5GXp2Ng2v3148sSakwcmoGVMCSoybB2oMehe7SXV4AQ4 +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50728925 │ +│ │ Digest: Ad7yDu78DPNnSYb6NDQ8WpeQogHUABrxMCk7BhM9a1sT │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ │ +│ │ 1 Imm/Owned Object ID: 0x737d6ddaa9970efa5350f665c860dfc11e6fcc145fdce0d06b4eafa921ebd570 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: deposit_a │ │ +│ │ │ Module: move_swap │ │ +│ │ │ Package: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ Nxb7s4iGudTxUkmQI/wj8P1cehroPNosVa7bwhxLlzRWNlgh77fttOdGC7fYojIlMbHMpqP0a+Gq8f40t+LpAQ== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 5GXp2Ng2v3148sSakwcmoGVMCSoybB2oMehe7SXV4AQ4 │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728926 │ +│ │ Digest: 74FmGfzhHaoFWLuSQgBXV1RCRSYBUHt9CZ1chnJ99uYm │ +│ └── │ +│ ┌── │ +│ │ ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Owner: Shared( 50728923 ) │ +│ │ Version: 50728926 │ +│ │ Digest: BMiKxv439ePBrvvD2Ycrok4KDPDbhQMHcjKf8zzDMRXB │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Version: 50728923 │ +│ │ Digest: HsrUqvPBmTR9siDQNwGTmiv3xV6w49RUP4RDsEGt5Nxv │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0x737d6ddaa9970efa5350f665c860dfc11e6fcc145fdce0d06b4eafa921ebd570 │ +│ │ Version: 50728926 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728926 │ +│ │ Digest: 74FmGfzhHaoFWLuSQgBXV1RCRSYBUHt9CZ1chnJ99uYm │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2401600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3671712 MIST │ +│ Non-refundable Storage Fee: 37088 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 4DPu5jE6Jug6gC2MLwDMTGXB3cSiwVKouHQrghRcKKwq │ +│ 7n7ancGYDjaYBb44wZCBSvhLKUCRakWVEFP7bQm42pYR │ +│ FeDFFueDDVg3yTdqhH9cAHy3wuv1Xcvv95A7oga8QQt4 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50728926 │ +│ │ Digest: 74FmGfzhHaoFWLuSQgBXV1RCRSYBUHt9CZ1chnJ99uYm │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 50728923 ) │ +│ │ ObjectType: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d::move_swap::Pool │ +│ │ Version: 50728926 │ +│ │ Digest: BMiKxv439ePBrvvD2Ycrok4KDPDbhQMHcjKf8zzDMRXB │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: 270112 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::rmb::RMB │ +│ │ Amount: -10000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task5/move_swap/deposit_b.log b/mover/Qiuyangfeng/code/task5/move_swap/deposit_b.log new file mode 100644 index 000000000..4cdaf5d2d --- /dev/null +++ b/mover/Qiuyangfeng/code/task5/move_swap/deposit_b.log @@ -0,0 +1,128 @@ +Transaction Digest: BkW797qaghw9BQjUEyrvdYnphNV1nBw14W5uFRRPanen +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50728926 │ +│ │ Digest: 74FmGfzhHaoFWLuSQgBXV1RCRSYBUHt9CZ1chnJ99uYm │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ │ +│ │ 1 Imm/Owned Object ID: 0x1c5d30d0af9930a082d649dd6e1422d5ef50a664bf7b6aa80f4cff86b759fa32 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: deposit_b │ │ +│ │ │ Module: move_swap │ │ +│ │ │ Package: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ SkqZ//n80NCJXRpEHHoP/yVS0P6Bt7v1rZE5UP0rsVBjgcvWSHk8metIdM2nmkkJ80udK+vAfoXs+BTZZ8rNDA== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: BkW797qaghw9BQjUEyrvdYnphNV1nBw14W5uFRRPanen │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728927 │ +│ │ Digest: 2hnszdLhCiriKQ3HhPne8qQYiWieUMVY8ekJ7wMcWr58 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Owner: Shared( 50728923 ) │ +│ │ Version: 50728927 │ +│ │ Digest: Ekmq7DTQUwgAeaBiazcidzpGsN6GU2ms2JjQyEHo65V4 │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Version: 50728926 │ +│ │ Digest: BMiKxv439ePBrvvD2Ycrok4KDPDbhQMHcjKf8zzDMRXB │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0x1c5d30d0af9930a082d649dd6e1422d5ef50a664bf7b6aa80f4cff86b759fa32 │ +│ │ Version: 50728927 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728927 │ +│ │ Digest: 2hnszdLhCiriKQ3HhPne8qQYiWieUMVY8ekJ7wMcWr58 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2401600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3671712 MIST │ +│ Non-refundable Storage Fee: 37088 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 4DPu5jE6Jug6gC2MLwDMTGXB3cSiwVKouHQrghRcKKwq │ +│ 5GXp2Ng2v3148sSakwcmoGVMCSoybB2oMehe7SXV4AQ4 │ +│ FeDFFueDDVg3yTdqhH9cAHy3wuv1Xcvv95A7oga8QQt4 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50728927 │ +│ │ Digest: 2hnszdLhCiriKQ3HhPne8qQYiWieUMVY8ekJ7wMcWr58 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 50728923 ) │ +│ │ ObjectType: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d::move_swap::Pool │ +│ │ Version: 50728927 │ +│ │ Digest: Ekmq7DTQUwgAeaBiazcidzpGsN6GU2ms2JjQyEHo65V4 │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: 270112 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD │ +│ │ Amount: -20000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task5/move_swap/mint_rmb.log b/mover/Qiuyangfeng/code/task5/move_swap/mint_rmb.log new file mode 100644 index 000000000..320228849 --- /dev/null +++ b/mover/Qiuyangfeng/code/task5/move_swap/mint_rmb.log @@ -0,0 +1,135 @@ +Transaction Digest: 7n7ancGYDjaYBb44wZCBSvhLKUCRakWVEFP7bQm42pYR +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50728923 │ +│ │ Digest: 2yy4mWkQotiH1QWWNhJ8x58F6gzfxK92jYm4KwaDifvN │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0xd9a008d72f6b98dede41e044e4197483e94b7f23adde35ec0256491c5c48b714 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "10000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: rmb │ │ +│ │ │ Package: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 3HAFGQ0+x26ChwreMtmRdqGhPJ1lfGbMs0/nszKTxmDKazpQkRl6pr8bwSNp51JJ5f8tDHQ81JHJJONeOBUNAg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 7n7ancGYDjaYBb44wZCBSvhLKUCRakWVEFP7bQm42pYR │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x737d6ddaa9970efa5350f665c860dfc11e6fcc145fdce0d06b4eafa921ebd570 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728924 │ +│ │ Digest: 2GMAZA5cq61YN8ajFMJ8c2qZ3DSr3gkXA2h5feQ8hVr1 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728924 │ +│ │ Digest: ebm9hUVSF7RrbHU4VFw7snxHNJfvfpMtVhNV2CQCe8e │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd9a008d72f6b98dede41e044e4197483e94b7f23adde35ec0256491c5c48b714 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728924 │ +│ │ Digest: 8MndfMsJQidauLjL9ZuvxwM8zPtJwEZH9JZWLLFJz18s │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728924 │ +│ │ Digest: ebm9hUVSF7RrbHU4VFw7snxHNJfvfpMtVhNV2CQCe8e │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3982400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2648448 MIST │ +│ Non-refundable Storage Fee: 26752 MIST │ +│ │ +│ Transaction Dependencies: │ +│ AX3P5KF5kwmTZZXhDghkVsy18C4No3EVeoBPPQzCW2AT │ +│ FeDFFueDDVg3yTdqhH9cAHy3wuv1Xcvv95A7oga8QQt4 │ +│ GfxNmmiYFzVFDAUhHZ9dGbn5c6rFsP9yucnfkpjRyn1M │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x737d6ddaa9970efa5350f665c860dfc11e6fcc145fdce0d06b4eafa921ebd570 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::rmb::RMB> │ +│ │ Version: 50728924 │ +│ │ Digest: 2GMAZA5cq61YN8ajFMJ8c2qZ3DSr3gkXA2h5feQ8hVr1 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50728924 │ +│ │ Digest: ebm9hUVSF7RrbHU4VFw7snxHNJfvfpMtVhNV2CQCe8e │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xd9a008d72f6b98dede41e044e4197483e94b7f23adde35ec0256491c5c48b714 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::rmb::RMB> │ +│ │ Version: 50728924 │ +│ │ Digest: 8MndfMsJQidauLjL9ZuvxwM8zPtJwEZH9JZWLLFJz18s │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2333952 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::rmb::RMB │ +│ │ Amount: 10000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task5/move_swap/mint_usd.log b/mover/Qiuyangfeng/code/task5/move_swap/mint_usd.log new file mode 100644 index 000000000..a5a99994e --- /dev/null +++ b/mover/Qiuyangfeng/code/task5/move_swap/mint_usd.log @@ -0,0 +1,141 @@ +Transaction Digest: 4DPu5jE6Jug6gC2MLwDMTGXB3cSiwVKouHQrghRcKKwq +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50728924 │ +│ │ Digest: ebm9hUVSF7RrbHU4VFw7snxHNJfvfpMtVhNV2CQCe8e │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ │ +│ │ 1 Pure Arg: Type: u64, Value: "20000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: usd │ │ +│ │ │ Package: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 1GdT9YqLduQQkQG2NgVcO9HwoFRKdN9qWDhJelqyh/PrLhTjopM8UB2lz9pNcQgt+akl7aV6qR50BDUiVhfZBQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 4DPu5jE6Jug6gC2MLwDMTGXB3cSiwVKouHQrghRcKKwq │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x1c5d30d0af9930a082d649dd6e1422d5ef50a664bf7b6aa80f4cff86b759fa32 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728925 │ +│ │ Digest: 72nhaVYqNdQ59CFtz2UcWALGvi7yfqV2EaBXJPyjHCLz │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Owner: Shared( 50639342 ) │ +│ │ Version: 50728925 │ +│ │ Digest: F4SFYM8EeMo9jv1QbXsCoAbvQ7vF2KdgyikUUvgTHvg7 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728925 │ +│ │ Digest: Ad7yDu78DPNnSYb6NDQ8WpeQogHUABrxMCk7BhM9a1sT │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Version: 50639352 │ +│ │ Digest: EavVXxVrgRsfgbHLK58xzTZQ4fKUs2MKqFrScQ4vmJbd │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728925 │ +│ │ Digest: Ad7yDu78DPNnSYb6NDQ8WpeQogHUABrxMCk7BhM9a1sT │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3982400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2648448 MIST │ +│ Non-refundable Storage Fee: 26752 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 2ew9tPGogdCEYqyG8VecqS3ioKZHSDb1xtD6jy8fDKmH │ +│ 7n7ancGYDjaYBb44wZCBSvhLKUCRakWVEFP7bQm42pYR │ +│ AX3P5KF5kwmTZZXhDghkVsy18C4No3EVeoBPPQzCW2AT │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x1c5d30d0af9930a082d649dd6e1422d5ef50a664bf7b6aa80f4cff86b759fa32 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50728925 │ +│ │ Digest: 72nhaVYqNdQ59CFtz2UcWALGvi7yfqV2EaBXJPyjHCLz │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x214422d08971e049f001ec42875e9093a9b54278bd8bc0fca67c848d5afd790e │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 50639342 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50728925 │ +│ │ Digest: F4SFYM8EeMo9jv1QbXsCoAbvQ7vF2KdgyikUUvgTHvg7 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50728925 │ +│ │ Digest: Ad7yDu78DPNnSYb6NDQ8WpeQogHUABrxMCk7BhM9a1sT │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2333952 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD │ +│ │ Amount: 20000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task5/move_swap/publish.log b/mover/Qiuyangfeng/code/task5/move_swap/publish.log new file mode 100644 index 000000000..85fbcce49 --- /dev/null +++ b/mover/Qiuyangfeng/code/task5/move_swap/publish.log @@ -0,0 +1,166 @@ +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY move_coin +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING move_swap +Successfully verified dependencies on-chain against source. +Transaction Digest: FeDFFueDDVg3yTdqhH9cAHy3wuv1Xcvv95A7oga8QQt4 +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 18188000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50728922 │ +│ │ Digest: 4bCPHib1BxCT4tEP8nKThYmvqucwybvdxoh2Uggrsm31 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ │ 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ TXK4NaiiOU2vXfvN7yZoFjWshvHtQ1UEGf+lRu+sSkaoKjy2h8PYHaqdUl0zyNKcvY8zjyBGkYEz1BE0x8reCQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: FeDFFueDDVg3yTdqhH9cAHy3wuv1Xcvv95A7oga8QQt4 │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x47b85cd23f1334b027646d782200ff7392c25ac8ad14eb72295d40d9c02d4fcc │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728923 │ +│ │ Digest: Fgxft8CWyxx76QZcvx1YVDppUWZY6G1WTtQs9X153MrV │ +│ └── │ +│ ┌── │ +│ │ ID: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 2cucnWuX2pCHRpoLzuXirYn7YznsvKv3a5JjNwZzHMwT │ +│ └── │ +│ ┌── │ +│ │ ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Owner: Shared( 50728923 ) │ +│ │ Version: 50728923 │ +│ │ Digest: HsrUqvPBmTR9siDQNwGTmiv3xV6w49RUP4RDsEGt5Nxv │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd6ae9dc13438fba810fff3d613cb0487a52bbe5186e02779d3fddc43407d40c4 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728923 │ +│ │ Digest: APaYptBYPuYx4bxL4mJASZySpsAm5o278uqYywF381DJ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728923 │ +│ │ Digest: 2yy4mWkQotiH1QWWNhJ8x58F6gzfxK92jYm4KwaDifvN │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728923 │ +│ │ Digest: 2yy4mWkQotiH1QWWNhJ8x58F6gzfxK92jYm4KwaDifvN │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 16188000 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 5AmUET9M7KbF3gvNB3WxerLscEj5js4oHJk5VBQtmZEm │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ AX3P5KF5kwmTZZXhDghkVsy18C4No3EVeoBPPQzCW2AT │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x47b85cd23f1334b027646d782200ff7392c25ac8ad14eb72295d40d9c02d4fcc │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d::move_swap::AdminCap │ +│ │ Version: 50728923 │ +│ │ Digest: Fgxft8CWyxx76QZcvx1YVDppUWZY6G1WTtQs9X153MrV │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 50728923 ) │ +│ │ ObjectType: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d::move_swap::Pool │ +│ │ Version: 50728923 │ +│ │ Digest: HsrUqvPBmTR9siDQNwGTmiv3xV6w49RUP4RDsEGt5Nxv │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xd6ae9dc13438fba810fff3d613cb0487a52bbe5186e02779d3fddc43407d40c4 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 50728923 │ +│ │ Digest: APaYptBYPuYx4bxL4mJASZySpsAm5o278uqYywF381DJ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50728923 │ +│ │ Digest: 2yy4mWkQotiH1QWWNhJ8x58F6gzfxK92jYm4KwaDifvN │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d │ +│ │ Version: 1 │ +│ │ Digest: 2cucnWuX2pCHRpoLzuXirYn7YznsvKv3a5JjNwZzHMwT │ +│ │ Modules: move_swap │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -16209880 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task5/move_swap/sources/move_swap.move b/mover/Qiuyangfeng/code/task5/move_swap/sources/move_swap.move new file mode 100644 index 000000000..74a2128be --- /dev/null +++ b/mover/Qiuyangfeng/code/task5/move_swap/sources/move_swap.move @@ -0,0 +1,81 @@ +/// Module: move_swap +module move_swap::move_swap { + use sui::balance; + use sui::balance::Balance; + use sui::coin; + use sui::coin::Coin; + use sui::transfer::{public_transfer, share_object}; + use sui::tx_context::sender; + use move_coin::rmb::RMB; + use move_coin::usd::USD; + + public struct AdminCap has key { + id: UID + } + + public struct Pool has key { + id: UID, + balanceA: Balance, + balanceB: Balance, + } + + fun init(ctx: &mut TxContext) { + let pool = Pool{ + id: object::new(ctx), + balanceA: balance::zero(), + balanceB: balance::zero() + }; + + share_object(pool); + + let adminCap = AdminCap { + id: object::new(ctx) + }; + + transfer::transfer(adminCap, sender(ctx)); + } + + public entry fun deposit_a(pool: &mut Pool, coin: Coin, _: &mut TxContext) { + balance::join(&mut pool.balanceA, coin::into_balance(coin)); + } + + public entry fun deposit_b(pool: &mut Pool, coin: Coin, _: &mut TxContext) { + balance::join(&mut pool.balanceB, coin::into_balance(coin)); + } + + public entry fun withdraw_a(_: &AdminCap, pool: &mut Pool, amount: u64, ctx: &mut TxContext) { + let withdrawBalance = balance::split(&mut pool.balanceA, amount); + let coin = coin::from_balance(withdrawBalance, ctx); + public_transfer(coin, sender(ctx)); + } + public entry fun withdraw_b(_: &AdminCap, pool: &mut Pool, amount: u64, ctx: &mut TxContext) { + let withdrawBalance = balance::split(&mut pool.balanceB, amount); + let coin = coin::from_balance(withdrawBalance, ctx); + public_transfer(coin, sender(ctx)); + } + + // 1a swap 2b + public entry fun swap_a_2_b(pool: &mut Pool, coin: Coin, ctx: &mut TxContext) { + let amtA = coin::value(&coin); + let amtB = amtA * 20000 / 10000; + + balance::join(&mut pool.balanceA, coin::into_balance(coin)); + + let balanceB = balance::split(&mut pool.balanceB, amtB); + let coinB = coin::from_balance(balanceB, ctx); + public_transfer(coinB, sender(ctx)); + } + + // 2b swap 1a + public entry fun swap_b_2_a(pool: &mut Pool, coin: Coin, ctx: &mut TxContext) { + let amtB = coin::value(&coin); + let amtA = amtB * 10000 / 20000; + + balance::join(&mut pool.balanceB, coin::into_balance(coin)); + + let balanceA = balance::split(&mut pool.balanceA, amtA); + let coinA = coin::from_balance(balanceA, ctx); + public_transfer(coinA, sender(ctx)); + } + +} diff --git a/mover/Qiuyangfeng/code/task5/move_swap/swap_rmb_usd.log b/mover/Qiuyangfeng/code/task5/move_swap/swap_rmb_usd.log new file mode 100644 index 000000000..9ac93c93d --- /dev/null +++ b/mover/Qiuyangfeng/code/task5/move_swap/swap_rmb_usd.log @@ -0,0 +1,150 @@ +Transaction Digest: 5TtCSxp4mejMDsg7rrfuGUPBGZYUqhcqNb26mc8yMK7Z +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50728929 │ +│ │ Digest: DhvMtmHWuUnbZhESY5EUVrVHT2LvMqNtQqWSCjbPGaRm │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ │ +│ │ 1 Imm/Owned Object ID: 0xdef0e445be62ba2b1db08510a3464e2c7fd334d64aaf814ed137c7a01c1ab4cb │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: swap_a_2_b │ │ +│ │ │ Module: move_swap │ │ +│ │ │ Package: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ oLFtN9YEF0kMmK4FFBGWnSCBeok/5Tlzc/oWgmxYIc2c0u5IjSAN/4A4esdlKsVpNnPTXWMH6gddhpZI1zEkAg== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 5TtCSxp4mejMDsg7rrfuGUPBGZYUqhcqNb26mc8yMK7Z │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x3d724e2cc46a2bece401925be9fafb3f0dd88bdc2b5d7dbcdf766d6ffbaf3e13 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728930 │ +│ │ Digest: ABehyngR2fJHefc4h5LDsfpn8PMUzUJdnV64Q9KgUPaH │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728930 │ +│ │ Digest: E5P6FFbFARyohMjey8fpDtczwS88PfdLHNdeZSWbDozA │ +│ └── │ +│ ┌── │ +│ │ ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Owner: Shared( 50728923 ) │ +│ │ Version: 50728930 │ +│ │ Digest: By1rhkuT76VXwvoWjuvDVWGsL8MpEMSQF7L3m8PjNiK2 │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Version: 50728929 │ +│ │ Digest: HHP5Cd8DpdtQjSJRXQsuWJFhHBABXMgE2ojAf8yLCJkG │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0xdef0e445be62ba2b1db08510a3464e2c7fd334d64aaf814ed137c7a01c1ab4cb │ +│ │ Version: 50728930 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728930 │ +│ │ Digest: E5P6FFbFARyohMjey8fpDtczwS88PfdLHNdeZSWbDozA │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3708800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3671712 MIST │ +│ Non-refundable Storage Fee: 37088 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 14BY8HFFCv2a7qYTyk8pEbpe8n3UdbiVb4fpUMBX2fe3 │ +│ CsgMdFShFoBwk54KAg2bH7NexM7CNov6pH2y5UNhe6E1 │ +│ FeDFFueDDVg3yTdqhH9cAHy3wuv1Xcvv95A7oga8QQt4 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x3d724e2cc46a2bece401925be9fafb3f0dd88bdc2b5d7dbcdf766d6ffbaf3e13 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50728930 │ +│ │ Digest: ABehyngR2fJHefc4h5LDsfpn8PMUzUJdnV64Q9KgUPaH │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50728930 │ +│ │ Digest: E5P6FFbFARyohMjey8fpDtczwS88PfdLHNdeZSWbDozA │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 50728923 ) │ +│ │ ObjectType: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d::move_swap::Pool │ +│ │ Version: 50728930 │ +│ │ Digest: By1rhkuT76VXwvoWjuvDVWGsL8MpEMSQF7L3m8PjNiK2 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1037088 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::rmb::RMB │ +│ │ Amount: -1000000 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD │ +│ │ Amount: 2000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task5/move_swap/swap_usd_rmb.log b/mover/Qiuyangfeng/code/task5/move_swap/swap_usd_rmb.log new file mode 100644 index 000000000..a9151fca6 --- /dev/null +++ b/mover/Qiuyangfeng/code/task5/move_swap/swap_usd_rmb.log @@ -0,0 +1,150 @@ +Transaction Digest: EaeiWWMo9sN8zhn3cTXDpSygzwUnPMqeCfSRbCm18V6N +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50728930 │ +│ │ Digest: E5P6FFbFARyohMjey8fpDtczwS88PfdLHNdeZSWbDozA │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ │ +│ │ 1 Imm/Owned Object ID: 0xed989adccd87b190e0cdd9b520b76d8aa5b7b59d95a5402326d70f79cc2272b9 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: swap_b_2_a │ │ +│ │ │ Module: move_swap │ │ +│ │ │ Package: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ SEZ73PFLtrCKTYKYwpKmh6/92TG1W81cv66ShUQLxJF9QJ4hLfOU/Hw4WpImvWZQ7kDVW8kILfU+SVCFcIFsBw== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: EaeiWWMo9sN8zhn3cTXDpSygzwUnPMqeCfSRbCm18V6N │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xee3a84b6e58707aa7b513626f7aadf98d1da40d1b137d0c7fe7e366d8c6d2ea8 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728931 │ +│ │ Digest: JAP3NfksoFHhmvkYhidaXhHGZANeFkHACGDnEzRvxbjz │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728931 │ +│ │ Digest: 6zpghdcD7gQGL7S3cvyi6QhEfCMnxWcnj6XPcZbWGVLn │ +│ └── │ +│ ┌── │ +│ │ ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Owner: Shared( 50728923 ) │ +│ │ Version: 50728931 │ +│ │ Digest: J9VCMfD7rEy5JsKhEjx2HSRYfUPNYK6fARMXoQy4gTCB │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Version: 50728930 │ +│ │ Digest: By1rhkuT76VXwvoWjuvDVWGsL8MpEMSQF7L3m8PjNiK2 │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0xed989adccd87b190e0cdd9b520b76d8aa5b7b59d95a5402326d70f79cc2272b9 │ +│ │ Version: 50728931 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728931 │ +│ │ Digest: 6zpghdcD7gQGL7S3cvyi6QhEfCMnxWcnj6XPcZbWGVLn │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3708800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3671712 MIST │ +│ Non-refundable Storage Fee: 37088 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 14BY8HFFCv2a7qYTyk8pEbpe8n3UdbiVb4fpUMBX2fe3 │ +│ 5TtCSxp4mejMDsg7rrfuGUPBGZYUqhcqNb26mc8yMK7Z │ +│ FeDFFueDDVg3yTdqhH9cAHy3wuv1Xcvv95A7oga8QQt4 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xee3a84b6e58707aa7b513626f7aadf98d1da40d1b137d0c7fe7e366d8c6d2ea8 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::rmb::RMB> │ +│ │ Version: 50728931 │ +│ │ Digest: JAP3NfksoFHhmvkYhidaXhHGZANeFkHACGDnEzRvxbjz │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50728931 │ +│ │ Digest: 6zpghdcD7gQGL7S3cvyi6QhEfCMnxWcnj6XPcZbWGVLn │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 50728923 ) │ +│ │ ObjectType: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d::move_swap::Pool │ +│ │ Version: 50728931 │ +│ │ Digest: J9VCMfD7rEy5JsKhEjx2HSRYfUPNYK6fARMXoQy4gTCB │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1037088 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::rmb::RMB │ +│ │ Amount: 1000000 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD │ +│ │ Amount: -2000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task5/move_swap/tests/move_swap_tests.move b/mover/Qiuyangfeng/code/task5/move_swap/tests/move_swap_tests.move new file mode 100644 index 000000000..0afc2856e --- /dev/null +++ b/mover/Qiuyangfeng/code/task5/move_swap/tests/move_swap_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module move_swap::move_swap_tests { + // uncomment this line to import the module + // use move_swap::move_swap; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_move_swap() { + // pass + } + + #[test, expected_failure(abort_code = ::move_swap::move_swap_tests::ENotImplemented)] + fun test_move_swap_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Qiuyangfeng/code/task5/move_swap/withdraw_rmb.log b/mover/Qiuyangfeng/code/task5/move_swap/withdraw_rmb.log new file mode 100644 index 000000000..ae45a8fad --- /dev/null +++ b/mover/Qiuyangfeng/code/task5/move_swap/withdraw_rmb.log @@ -0,0 +1,154 @@ +Transaction Digest: CsgMdFShFoBwk54KAg2bH7NexM7CNov6pH2y5UNhe6E1 +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50728927 │ +│ │ Digest: 2hnszdLhCiriKQ3HhPne8qQYiWieUMVY8ekJ7wMcWr58 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x47b85cd23f1334b027646d782200ff7392c25ac8ad14eb72295d40d9c02d4fcc │ │ +│ │ 1 Shared Object ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ │ +│ │ 2 Pure Arg: Type: u64, Value: "1000000" │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: withdraw_a │ │ +│ │ │ Module: move_swap │ │ +│ │ │ Package: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ lQdhR/lT/Hm9ya5hxalM+7tDVowod469+mhNxcRZuyjeAnx1twjkFbFNTJAxzoAgHKg7twKhxRe76c0qQWd1Cw== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: CsgMdFShFoBwk54KAg2bH7NexM7CNov6pH2y5UNhe6E1 │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xdef0e445be62ba2b1db08510a3464e2c7fd334d64aaf814ed137c7a01c1ab4cb │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728928 │ +│ │ Digest: BpKb7QZch6q1UZafYiKkuYo9eh3X63WGwXc1fGu3uN5E │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728928 │ +│ │ Digest: AfRW3rrERHpmY5PZS8FQ1u4Fu2MpSaLnXVG9yuWq2VGe │ +│ └── │ +│ ┌── │ +│ │ ID: 0x47b85cd23f1334b027646d782200ff7392c25ac8ad14eb72295d40d9c02d4fcc │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728928 │ +│ │ Digest: BEUQdEy1Y3wYx1KYC5CFxVbSfRLqxbByP6mVtviFenNF │ +│ └── │ +│ ┌── │ +│ │ ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Owner: Shared( 50728923 ) │ +│ │ Version: 50728928 │ +│ │ Digest: 7EAeJ2iwFNMh4JSYoZSZDC8ba9GF9oeyht9UDMdYGtNa │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Version: 50728927 │ +│ │ Digest: Ekmq7DTQUwgAeaBiazcidzpGsN6GU2ms2JjQyEHo65V4 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728928 │ +│ │ Digest: AfRW3rrERHpmY5PZS8FQ1u4Fu2MpSaLnXVG9yuWq2VGe │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 5031200 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3686760 MIST │ +│ Non-refundable Storage Fee: 37240 MIST │ +│ │ +│ Transaction Dependencies: │ +│ BkW797qaghw9BQjUEyrvdYnphNV1nBw14W5uFRRPanen │ +│ FeDFFueDDVg3yTdqhH9cAHy3wuv1Xcvv95A7oga8QQt4 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xdef0e445be62ba2b1db08510a3464e2c7fd334d64aaf814ed137c7a01c1ab4cb │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::rmb::RMB> │ +│ │ Version: 50728928 │ +│ │ Digest: BpKb7QZch6q1UZafYiKkuYo9eh3X63WGwXc1fGu3uN5E │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50728928 │ +│ │ Digest: AfRW3rrERHpmY5PZS8FQ1u4Fu2MpSaLnXVG9yuWq2VGe │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x47b85cd23f1334b027646d782200ff7392c25ac8ad14eb72295d40d9c02d4fcc │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d::move_swap::AdminCap │ +│ │ Version: 50728928 │ +│ │ Digest: BEUQdEy1Y3wYx1KYC5CFxVbSfRLqxbByP6mVtviFenNF │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 50728923 ) │ +│ │ ObjectType: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d::move_swap::Pool │ +│ │ Version: 50728928 │ +│ │ Digest: 7EAeJ2iwFNMh4JSYoZSZDC8ba9GF9oeyht9UDMdYGtNa │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2344440 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::rmb::RMB │ +│ │ Amount: 1000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task5/move_swap/withdraw_usd.log b/mover/Qiuyangfeng/code/task5/move_swap/withdraw_usd.log new file mode 100644 index 000000000..ab723d8c5 --- /dev/null +++ b/mover/Qiuyangfeng/code/task5/move_swap/withdraw_usd.log @@ -0,0 +1,154 @@ +Transaction Digest: 14BY8HFFCv2a7qYTyk8pEbpe8n3UdbiVb4fpUMBX2fe3 +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 50728928 │ +│ │ Digest: AfRW3rrERHpmY5PZS8FQ1u4Fu2MpSaLnXVG9yuWq2VGe │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x47b85cd23f1334b027646d782200ff7392c25ac8ad14eb72295d40d9c02d4fcc │ │ +│ │ 1 Shared Object ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ │ +│ │ 2 Pure Arg: Type: u64, Value: "2000000" │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: withdraw_b │ │ +│ │ │ Module: move_swap │ │ +│ │ │ Package: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ BsMCQPsP4ke11Wau8jqHVEj1GzNLWp/gLfqL14YjiluzYOn1Kvzd6dYqwd4WCQxbO6dcUcJyPP7erYrkamuCBw== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 14BY8HFFCv2a7qYTyk8pEbpe8n3UdbiVb4fpUMBX2fe3 │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xed989adccd87b190e0cdd9b520b76d8aa5b7b59d95a5402326d70f79cc2272b9 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728929 │ +│ │ Digest: Bq68LdYWHqFDs84Tjaf7Ga6tarBxssDqQ4169F6mEwzG │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728929 │ +│ │ Digest: DhvMtmHWuUnbZhESY5EUVrVHT2LvMqNtQqWSCjbPGaRm │ +│ └── │ +│ ┌── │ +│ │ ID: 0x47b85cd23f1334b027646d782200ff7392c25ac8ad14eb72295d40d9c02d4fcc │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728929 │ +│ │ Digest: GBE7wL6exD3Z5iYw6zLS6oWWGaujEcwHbvKF9GWfRiFa │ +│ └── │ +│ ┌── │ +│ │ ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Owner: Shared( 50728923 ) │ +│ │ Version: 50728929 │ +│ │ Digest: HHP5Cd8DpdtQjSJRXQsuWJFhHBABXMgE2ojAf8yLCJkG │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Version: 50728928 │ +│ │ Digest: 7EAeJ2iwFNMh4JSYoZSZDC8ba9GF9oeyht9UDMdYGtNa │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 50728929 │ +│ │ Digest: DhvMtmHWuUnbZhESY5EUVrVHT2LvMqNtQqWSCjbPGaRm │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 5031200 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3686760 MIST │ +│ Non-refundable Storage Fee: 37240 MIST │ +│ │ +│ Transaction Dependencies: │ +│ CsgMdFShFoBwk54KAg2bH7NexM7CNov6pH2y5UNhe6E1 │ +│ FeDFFueDDVg3yTdqhH9cAHy3wuv1Xcvv95A7oga8QQt4 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xed989adccd87b190e0cdd9b520b76d8aa5b7b59d95a5402326d70f79cc2272b9 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD> │ +│ │ Version: 50728929 │ +│ │ Digest: Bq68LdYWHqFDs84Tjaf7Ga6tarBxssDqQ4169F6mEwzG │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 50728929 │ +│ │ Digest: DhvMtmHWuUnbZhESY5EUVrVHT2LvMqNtQqWSCjbPGaRm │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x47b85cd23f1334b027646d782200ff7392c25ac8ad14eb72295d40d9c02d4fcc │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d::move_swap::AdminCap │ +│ │ Version: 50728929 │ +│ │ Digest: GBE7wL6exD3Z5iYw6zLS6oWWGaujEcwHbvKF9GWfRiFa │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x99ce2b727806aa332a13ff196ebcc61e90fa9a3d51f61bc629dbeadac4238d81 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 50728923 ) │ +│ │ ObjectType: 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d::move_swap::Pool │ +│ │ Version: 50728929 │ +│ │ Digest: HHP5Cd8DpdtQjSJRXQsuWJFhHBABXMgE2ojAf8yLCJkG │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2344440 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b::usd::USD │ +│ │ Amount: 2000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/code/task6/navi.log b/mover/Qiuyangfeng/code/task6/navi.log new file mode 100644 index 000000000..fc1cb72a7 --- /dev/null +++ b/mover/Qiuyangfeng/code/task6/navi.log @@ -0,0 +1,155 @@ +Network Type: mainnet +AccountManager { + client: SuiClient { transport: SuiHTTPTransport {} }, + address: '0x91d24c7cb44b22d0bab6f0084de7436b218b03afe16037daa6e65b9eef9ae4db', + keypair: Ed25519Keypair { + keypair: { publicKey: [Uint8Array], secretKey: [Uint8Array] } + } +} +{ + digest: '9mukr9yxpRudhkXTVv8rNisPQvCeE7nCjE6NJRZAGR4m', + effects: { + messageVersion: 'v1', + status: { status: 'success' }, + executedEpoch: '446', + gasUsed: { + computationCost: '4542000', + storageCost: '632814000', + storageRebate: '401480640', + nonRefundableStorageFee: '4055360' + }, + modifiedAtVersions: [ + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object] + ], + sharedObjects: [ [Object], [Object], [Object], [Object], [Object] ], + transactionDigest: '9mukr9yxpRudhkXTVv8rNisPQvCeE7nCjE6NJRZAGR4m', + created: [ + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + ... 24 more items + ], + mutated: [ + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object] + ], + gasObject: { owner: [Object], reference: [Object] }, + eventsDigest: '4Ej1EgcKrF3boDnuKFyfkn93qzqsqQtXceUx6vUnM3GW', + dependencies: [ + '9nsiX38asbcrak8ZHCHmJ9frX15BW3Tc569brW6i2SPd', + 'AUEqc2KkAZU5RCG2DsSux6WxDsXsdD7yQMJ3SVhHg1Le', + 'BBir5QSG441hd5BfGTRSP7bx9sXif6hFLxji2pSBAmGb', + 'BSKPzTkPjaTAYGBSjYDxgdwRzPnPLr2VbonurstZyWUg', + 'EY8ZaDkjhyBXX8iu9HXPQWznBp4QUcpAaTuwXSheDVuq', + 'FZ39HpruRrBZdqTdiTRFng1siBsykiYVuqaVJSsAoWnW', + 'Gagtv78gKNUo4PSqSu7xFsh9d5LwHsKgEU9Yt1hzirtr' + ] + }, + confirmedLocalExecution: true +} +{ + digest: '5QMQXWoayh37JnQWGxbcymYqTh6ezJdHFTTpRenVaDux', + effects: { + messageVersion: 'v1', + status: { status: 'success' }, + executedEpoch: '446', + gasUsed: { + computationCost: '12112000', + storageCost: '633794400', + storageRebate: '626485860', + nonRefundableStorageFee: '6328140' + }, + modifiedAtVersions: [ + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + ... 78 more items + ], + sharedObjects: [ [Object], [Object], [Object], [Object], [Object], [Object] ], + transactionDigest: '5QMQXWoayh37JnQWGxbcymYqTh6ezJdHFTTpRenVaDux', + created: [ [Object] ], + mutated: [ + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + ... 78 more items + ], + gasObject: { owner: [Object], reference: [Object] }, + eventsDigest: 'D9uCy99ATJNUQbT3wow7i6MMU4Me5zYg74Ufr6uLtCR8', + dependencies: [ + '7jUaatRZGo1qazpB3zm8jPmmCfB7uwcpT7Xb5eVBkdWT', + '9mukr9yxpRudhkXTVv8rNisPQvCeE7nCjE6NJRZAGR4m', + 'BBir5QSG441hd5BfGTRSP7bx9sXif6hFLxji2pSBAmGb', + 'ES3LBBfxfyArUyobtkHefPvLLzY7p5xam5Vxb9KhsDua', + 'EY8ZaDkjhyBXX8iu9HXPQWznBp4QUcpAaTuwXSheDVuq' + ] + }, + confirmedLocalExecution: true +} diff --git a/mover/Qiuyangfeng/code/task6/package.json b/mover/Qiuyangfeng/code/task6/package.json new file mode 100644 index 000000000..6c10ddfc3 --- /dev/null +++ b/mover/Qiuyangfeng/code/task6/package.json @@ -0,0 +1,16 @@ +{ + "name": "sdk.js", + "version": "1.0.0", + "description": "", + "main": "sdk.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "navi-sdk": "^1.1.23" + }, + "type": "module" +} diff --git a/mover/Qiuyangfeng/code/task6/sdk.js b/mover/Qiuyangfeng/code/task6/sdk.js new file mode 100644 index 000000000..434849e1b --- /dev/null +++ b/mover/Qiuyangfeng/code/task6/sdk.js @@ -0,0 +1,15 @@ +import { NAVISDKClient } from 'navi-sdk' +import { Sui } from 'navi-sdk/dist/address.js' + +const mnemonic = 'aaa bbb ccc ddd' +const client = new NAVISDKClient({ mnemonic, networkType: "mainnet", numberOfAccounts: 1 }) +const account = client.accounts[0] +console.log(account) +async function main() { + let result = await account.depositToNavi(Sui, 1) + console.log(result) + result = await account.withdraw(Sui, 1) + console.log(result) +} + +main() diff --git a/mover/Qiuyangfeng/code/task7/flag.log b/mover/Qiuyangfeng/code/task7/flag.log new file mode 100644 index 000000000..cf34f665c --- /dev/null +++ b/mover/Qiuyangfeng/code/task7/flag.log @@ -0,0 +1,150 @@ +sui client call --function get_flag --module check_in \ +> --package 0x914099b4d1b4f5513acc8aaa4fdc1f67578522b81d818f61bae527d590c6d87d \ +> --args [94,18,49,194,242,107,79,72,199,236,122,225,234,129,11,106,213,35,98,135,121,75,164,243,185,54,228,152,136,144,8,114] \ +> Qiuyangfeng 0xc8dcd54baa7724177593a9f70598a09ae6a4286f996542e058f248209db08147 0x8 +[warn] Client/Server api version mismatch, client api version : 1.27.2, server api version : 1.28.2 +Transaction Digest: 2FcbWmsmBbZ4vGwrnWMRdpYGN6tbzHCm9XnpYPN3xX5d +?──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────? +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 3040820 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 68549762 │ +│ │ Digest: 8PPrfPEQqHxwcSt7nngfhbLcSYsi1ADtkLCuAz1uX68v │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ?──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────? │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: [94,18,49,194,242,107,79,72,199,236,122,225,234,129,11,106,213,35,98,135,121,75,164,243,185,54,228,152,136,144,8,114] │ │ +│ │ 1 Pure Arg: Type: 0x1::ascii::String, Value: "Qiuyangfeng" │ │ +│ │ 2 Shared Object ID: 0xc8dcd54baa7724177593a9f70598a09ae6a4286f996542e058f248209db08147 │ │ +│ │ 3 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ?──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────? │ +│ ?──────────────────────────────────────────────────────────────────────────────────? │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: get_flag │ │ +│ │ │ Module: check_in │ │ +│ │ │ Package: 0x914099b4d1b4f5513acc8aaa4fdc1f67578522b81d818f61bae527d590c6d87d │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ │ Input 3 │ │ +│ │ └ │ │ +│ ?──────────────────────────────────────────────────────────────────────────────────? │ +│ │ +│ Signatures: │ +│ gl0BAsFKIMJ10XiInNEjQZMo6IxsvGpoFAq+ECuWDEWeIRrTb8wgf4VPa2UBs+jKoTzvP24GEJKi+BuNmE5rCw== │ +│ │ +?──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────? +?───────────────────────────────────────────────────────────────────────────────────────────────────? +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 2FcbWmsmBbZ4vGwrnWMRdpYGN6tbzHCm9XnpYPN3xX5d │ +│ Status: Success │ +│ Executed Epoch: 420 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 68549763 │ +│ │ Digest: BP8kKgfATALXMABuiUuZMYHRpZUm4zRZFNMnmwcVv8Bn │ +│ └── │ +│ ┌── │ +│ │ ID: 0xc8dcd54baa7724177593a9f70598a09ae6a4286f996542e058f248209db08147 │ +│ │ Owner: Shared( 48002541 ) │ +│ │ Version: 68549763 │ +│ │ Digest: 6M5wc4gwkSci72tpc4bq5Pk4LbY9fbe1pj9y1jJLCc3S │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xc8dcd54baa7724177593a9f70598a09ae6a4286f996542e058f248209db08147 │ +│ │ Version: 59320796 │ +│ │ Digest: GKmcPgzZsG5ptwAqmetveppLYxC5TMGhZZqYGpN4Z1yT │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ +│ │ Version: 52999937 │ +│ │ Digest: EeJiZtPWDaejFdRMN3qe9WXF2YBih5RuuKheMvQLsz9D │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 68549763 │ +│ │ Digest: BP8kKgfATALXMABuiUuZMYHRpZUm4zRZFNMnmwcVv8Bn │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2576400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2445300 MIST │ +│ Non-refundable Storage Fee: 24700 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 6RmjdGKbNxPzAVtcmp6wxwp7MRWzWVYe7VgePXFvQaWe │ +│ BEammR4qBTMdpvKmRTdV59FJyodr7WDFEDe7mAV7pikF │ +│ D1tAF8ZSUjzcPkdMX7SAsUWaRijXy1d5RSyQy6yMenfT │ +│ EBuM53DPc2S5GS6GyVkyQdqduQAkn5a5uXGHfAp7iv8C │ +?───────────────────────────────────────────────────────────────────────────────────────────────────? +?──────────────────────────────────────────────────────────────────────────────────────────────────? +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 2FcbWmsmBbZ4vGwrnWMRdpYGN6tbzHCm9XnpYPN3xX5d:0 │ +│ │ PackageID: 0x914099b4d1b4f5513acc8aaa4fdc1f67578522b81d818f61bae527d590c6d87d │ +│ │ Transaction Module: check_in │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ EventType: 0x914099b4d1b4f5513acc8aaa4fdc1f67578522b81d818f61bae527d590c6d87d::check_in::Flag │ +│ │ ParsedJSON: │ +│ │ ┌───────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ flag │ true │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ github_id │ Qiuyangfeng │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ sender │ 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ ture_num │ 15 │ │ +│ │ └───────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +?──────────────────────────────────────────────────────────────────────────────────────────────────? +?──────────────────────────────────────────────────────────────────────────────────────────────────────────? +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 68549763 │ +│ │ Digest: BP8kKgfATALXMABuiUuZMYHRpZUm4zRZFNMnmwcVv8Bn │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xc8dcd54baa7724177593a9f70598a09ae6a4286f996542e058f248209db08147 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 48002541 ) │ +│ │ ObjectType: 0x914099b4d1b4f5513acc8aaa4fdc1f67578522b81d818f61bae527d590c6d87d::check_in::FlagString │ +│ │ Version: 68549763 │ +│ │ Digest: 6M5wc4gwkSci72tpc4bq5Pk4LbY9fbe1pj9y1jJLCc3S │ +│ └── │ +?──────────────────────────────────────────────────────────────────────────────────────────────────────────? +?───────────────────────────────────────────────────────────────────────────────────────────────────? +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1131100 │ +│ └── │ +?───────────────────────────────────────────────────────────────────────────────────────────────────? + diff --git a/mover/Qiuyangfeng/code/task8/get_flag.log b/mover/Qiuyangfeng/code/task8/get_flag.log new file mode 100644 index 000000000..badd45283 --- /dev/null +++ b/mover/Qiuyangfeng/code/task8/get_flag.log @@ -0,0 +1,144 @@ +Transaction Digest: 5VjXJpFNSyvmAMDNrk5uW4B5fYaAe954gTDmNdGKXSNH +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Owner: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ Gas Budget: 3078896 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Version: 68549763 │ +│ │ Digest: BP8kKgfATALXMABuiUuZMYHRpZUm4zRZFNMnmwcVv8Bn │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: [69,140,39] │ │ +│ │ 1 Pure Arg: Type: 0x1::ascii::String, Value: "Qiuyangfeng" │ │ +│ │ 2 Shared Object ID: 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 │ │ +│ │ 3 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: get_flag │ │ +│ │ │ Module: lets_move │ │ +│ │ │ Package: 0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ │ Input 3 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ bEbGCeHp+qoJKFDNnW7+QBQlEwoRb0ZtO9vByS8T4pGYJbW8CZ+AbmrG8PbFBGPnMo2BlURh7064uLmb1bO9DA== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 5VjXJpFNSyvmAMDNrk5uW4B5fYaAe954gTDmNdGKXSNH │ +│ Status: Success │ +│ Executed Epoch: 425 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 │ +│ │ Owner: Shared( 48002539 ) │ +│ │ Version: 68550711 │ +│ │ Digest: D6dBH6ZjGTtkYpXU2Xcw1VJMQG6fpSKVGVwZaXVHic8Q │ +│ └── │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 68550711 │ +│ │ Digest: 4DVj9Eu2baFRSV6qqFdAepGDUBKeeX3VuQZFzZZ8pdJJ │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 │ +│ │ Version: 68550710 │ +│ │ Digest: 3dMTRZrx1F9tBV7JZAvQin8ZDzVkmU1kNWZD3hBkRMk2 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ +│ │ Version: 54691149 │ +│ │ Digest: 2n5GvB9nZDUUk7cWavywx3XSFy4qCAPuhmq5uzpFDPYc │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ Version: 68550711 │ +│ │ Digest: 4DVj9Eu2baFRSV6qqFdAepGDUBKeeX3VuQZFzZZ8pdJJ │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2614400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2452824 MIST │ +│ Non-refundable Storage Fee: 24776 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 2FcbWmsmBbZ4vGwrnWMRdpYGN6tbzHCm9XnpYPN3xX5d │ +│ 42wmqLuEBW8fKyDDZXvw1kiUpVFqMU8wi1gTkzzU9no1 │ +│ 9BXdyzLLYhHh8uQwNiputcByFoYpJ1vtn2QJrSeAjeGb │ +│ AcQ1yY1g7Rg2ShBNmDX9UatPwk17a9QDfbEQGPegMP8G │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 5VjXJpFNSyvmAMDNrk5uW4B5fYaAe954gTDmNdGKXSNH:0 │ +│ │ PackageID: 0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f │ +│ │ Transaction Module: lets_move │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ EventType: 0x97a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f::lets_move::Flag │ +│ │ ParsedJSON: │ +│ │ ┌───────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ flag │ true │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ github_id │ Qiuyangfeng │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ sender │ 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ ture_num │ 37 │ │ +│ │ └───────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Shared( 48002539 ) │ +│ │ ObjectType: 0x97a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f::lets_move::Challenge │ +│ │ Version: 68550711 │ +│ │ Digest: D6dBH6ZjGTtkYpXU2Xcw1VJMQG6fpSKVGVwZaXVHic8Q │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x23d243fa87b1744f5fa2db0a6c533cb5b2d265bb64ecb1424c9729692c37de78 │ +│ │ Sender: 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 68550711 │ +│ │ Digest: 4DVj9Eu2baFRSV6qqFdAepGDUBKeeX3VuQZFzZZ8pdJJ │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0b41c802f6fcbe6c1b051c6b93dfd62fa3b7b439094d50c82ca55f79bb28910e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1161576 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/Qiuyangfeng/images/flag.png b/mover/Qiuyangfeng/images/flag.png new file mode 100644 index 000000000..4f3fe3e9b Binary files /dev/null and b/mover/Qiuyangfeng/images/flag.png differ diff --git a/mover/Qiuyangfeng/images/hellomove.png b/mover/Qiuyangfeng/images/hellomove.png new file mode 100644 index 000000000..001b2f7b4 Binary files /dev/null and b/mover/Qiuyangfeng/images/hellomove.png differ diff --git a/mover/Qiuyangfeng/images/movenft.png b/mover/Qiuyangfeng/images/movenft.png new file mode 100644 index 000000000..3d293e656 Binary files /dev/null and b/mover/Qiuyangfeng/images/movenft.png differ diff --git a/mover/Qiuyangfeng/images/suiwallet.png b/mover/Qiuyangfeng/images/suiwallet.png new file mode 100644 index 000000000..6bcb679a7 Binary files /dev/null and b/mover/Qiuyangfeng/images/suiwallet.png differ diff --git a/mover/Qiuyangfeng/notes/readme.md b/mover/Qiuyangfeng/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Qiuyangfeng/readme.md b/mover/Qiuyangfeng/readme.md new file mode 100644 index 000000000..268277f35 --- /dev/null +++ b/mover/Qiuyangfeng/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x91d24c7cb44b22d0bab6f0084de7436b218b03afe16037daa6e65b9eef9ae4db` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `Qiuyangfeng` + +## 个人简介 +- 工作经验: 4年 +- 技术栈: `Liunux` `Kubernetes` `Docker` `Python` `Shell` +> 重要提示 请认真写自己的简介 +- 多年老运维,闲暇时接触到web3,玩sol和evm比较多,希望通过完成这个task来更好的认识sui +- 联系方式: tg: `@Flybird1970` + +## 任务 + +## 01 hello move +- [] Sui cli version: 1.27.2-9e2be6ad4185 +- [] Sui钱包截图: ![Sui钱包截图](./images/suiwallet.png) +- [] package id: 0x75cb0293cd8b9914ff30c185c266acec3a57069daaa419c13db49ff3515f5bc0 +- [] package id 在 scan上的查看截图:![Scan截图](./images/hellomove.png) + +## 02 move coin +- [] My Coin package id : 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b +- [] Faucet package id : 0x47e96c5b5043ce5f0852251bed1b923178919c66717ad5dd2666e6d416975b1b +- [] 转账 `My Coin` hash: FRToUksKcJYXBU4NNb23MPNLAoo4XeLEkMxcb5noPaKU +- [] `Faucet Coin` address1 mint hash: 8xY61QaUpu7Z6ZCVLYyLCZ66DgYjZvrbaRit6Tu6wUvH +- [] `Faucet Coin` address2 mint hash: 6kHt82eHvjrvRXZn7tt8ooerfLuaoyvvMruH3MseTWQo + +## 03 move NFT +- [] nft package id : 0xd3d6595e73bf7307d6a97e098936af54c62e3a3f7cc4c6f07bcb553f9396ee7d +- [] nft object id : 0x5a31860aa3b715c212d962dd669014422186fcb16c9e8698597722b0f62bc054 +- [] 转账 nft hash: 89SHNUifottSZC8sD9FyNk9mf7XGNEQSCrMAr15KxSjt +- [] scan上的NFT截图:![Scan截图](./images/movenft.png) + +## 04 Move Game +- [] game package id : 0x98edba8a40bb3f4b0f1fcd2a55f56e22b3b7021f43d1c6bea57161a2a8669859 +- [] deposit Coin hash: FhT5EaD1FPcf8SLwCqAe3CFHEkMyLtTNiBGcYj3yqrjX +- [] withdraw `Coin` hash: Z6TGJi4ESuA4BM3GkpcEy9ovdBSoweyp4uC8J2vcyQq +- [] play game hash: 5AmUET9M7KbF3gvNB3WxerLscEj5js4oHJk5VBQtmZEm + +## 05 Move Swap +- [] swap package id : 0x5d6177c7fe73c10cb50e3cefabc9dbbf1f126715ad2b0df7cae46de9138b2d2d +- [] call swap CoinA-> CoinB hash : 5TtCSxp4mejMDsg7rrfuGUPBGZYUqhcqNb26mc8yMK7Z +- [] call swap CoinB-> CoinA hash : EaeiWWMo9sN8zhn3cTXDpSygzwUnPMqeCfSRbCm18V6N + +## 06 Dapp-kit SDK PTB +- [] save hash : 9mukr9yxpRudhkXTVv8rNisPQvCeE7nCjE6NJRZAGR4m + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/flag.png) +- [] flag hash : 2FcbWmsmBbZ4vGwrnWMRdpYGN6tbzHCm9XnpYPN3xX5d + +## 08 Move CTF Lets Move +- [] proof : [69, 140, 39] +- [] flag hash : 5VjXJpFNSyvmAMDNrk5uW4B5fYaAe954gTDmNdGKXSNH diff --git a/mover/RobbieChen/code/task2/sources/shell.txt b/mover/RobbieChen/code/task2/sources/shell.txt index 8fea1a349..88e4c2bf1 100644 --- a/mover/RobbieChen/code/task2/sources/shell.txt +++ b/mover/RobbieChen/code/task2/sources/shell.txt @@ -1,3 +1,3 @@ -sui client call --gas-budget 100000000 --package 0x2 --module coin --function mint_and_transfer +sui client call --package 0x2 --module coin --function mint_and_transfer diff --git a/mover/RobbieChen/code/task3/sources/call.sh b/mover/RobbieChen/code/task3/sources/call.sh index 6aa2083d2..32db3651e 100644 --- a/mover/RobbieChen/code/task3/sources/call.sh +++ b/mover/RobbieChen/code/task3/sources/call.sh @@ -1,4 +1,4 @@ -sui client call --gas-budget 100000000\ +sui client call \ --package 0xb6c2ff2ca71c67384a666b0a06af03253c738fa39124fa606c5693c219eea412 \ --module nft \ --function transferNFT \ diff --git a/mover/RobbieChen/code/task5/Move.lock b/mover/RobbieChen/code/task5/Move.lock new file mode 100644 index 000000000..5c42fa00f --- /dev/null +++ b/mover/RobbieChen/code/task5/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "A984337DD6E34F649065CE8FA3A698212DB375E8BDDF95427CDE904E06B02177" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.24.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978" +latest-published-id = "0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978" +published-version = "1" diff --git a/mover/RobbieChen/code/task5/Move.toml b/mover/RobbieChen/code/task5/Move.toml new file mode 100644 index 000000000..042048645 --- /dev/null +++ b/mover/RobbieChen/code/task5/Move.toml @@ -0,0 +1,37 @@ +[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 (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/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] +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" + diff --git a/mover/RobbieChen/code/task5/sources/CoinA.move b/mover/RobbieChen/code/task5/sources/CoinA.move new file mode 100644 index 000000000..8025570a2 --- /dev/null +++ b/mover/RobbieChen/code/task5/sources/CoinA.move @@ -0,0 +1,23 @@ +module task5::coin_a { + use sui::coin::{Self, TreasuryCap}; + + public struct COIN_A has drop {} + + fun init(otw: COIN_A, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + otw, + 9, + b"coin_jerry", + b"Jerry", + b"Coin Jerry to study simple swap", + option::none(), + ctx, + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + } + + entry fun mint(treasury_cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } +} \ No newline at end of file diff --git a/mover/RobbieChen/code/task5/sources/call.sh b/mover/RobbieChen/code/task5/sources/call.sh new file mode 100644 index 000000000..05a7fc080 --- /dev/null +++ b/mover/RobbieChen/code/task5/sources/call.sh @@ -0,0 +1,26 @@ + +// mint coin_a +sui client call --package 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978 --module coin_a --function mint --args 0x5d223e85919a64d56a0ac572067e90e41164403379dfe098b6326c37a776bd9d 10000 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 + +//mint coin_b +sui client call --package 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978 --module coin_b --function mint --args 0xd667bd04e45aa21cebfe3e25dc108b88b2e6354d360ce32bdbf5306445b50731 10000 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 + +// create pool +sui client call --package 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978 --module robbiechen_swap --function create_pool --type-args 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978::coin_a::COIN_A 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978::coin_b::COIN_B + +// add_liquidity +sui client call \ + \ + --package 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978 \ + --module robbiechen_swap \ + --function add_liquidity \ + --type-args 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978::coin_a::COIN_A 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978::coin_b::COIN_B \ + --args 0x76fe408904475e4da12bf2d039b843e78408cd4f8b633e27040224d807abd605 0x4c72db9b6a576e267605d3c0a343d6df658024ee4cb5299fd1c6342ade60582a 0xf9994ddb85155d2649f573ecee9998bbd1a7dab3f8bfb0d1347b5f9c1932370b + +sui client call --package 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978 --module robbiechen_swap --function add_liquidity --type-args 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978::coin_a::COIN_A 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978::coin_b::COIN_B --args 0x76fe408904475e4da12bf2d039b843e78408cd4f8b633e27040224d807abd605 0xe7df5d465f69f5317fed59a922368efd4c0c9115a8b925b5a3c3240c293dc12a 0xb27e1ba57f803c9dea5a67a947447a6cef74c485df54304d61e863d9f6f4aa8f 0xf16a1114355f498a50627915323d08202298f01d8ca8595cac3ddf85e11ed453 + +// coina to coin_b +sui client call --package 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978 --module robbiechen_swap --function tom_swap_jerry --type-args 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978::coin_a::COIN_A 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978::coin_b::COIN_B --args 0x76fe408904475e4da12bf2d039b843e78408cd4f8b633e27040224d807abd605 0xbe2180186322161d29e28ca3fe2b1a0ec425ca67d8ee6e32686fd169beb221ad + +// coinb to coin a +sui client call --package 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978 --module robbiechen_swap --function jerry_swap_tom --type-args 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978::coin_a::COIN_A 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978::coin_b::COIN_B --args 0x76fe408904475e4da12bf2d039b843e78408cd4f8b633e27040224d807abd605 0xd47cf5067907231ed411f7d00dde48a0653b3db7f94b12e4f276d211140d4bd2 \ No newline at end of file diff --git a/mover/RobbieChen/code/task5/sources/coinb.move b/mover/RobbieChen/code/task5/sources/coinb.move new file mode 100644 index 000000000..5e1ed6652 --- /dev/null +++ b/mover/RobbieChen/code/task5/sources/coinb.move @@ -0,0 +1,23 @@ +module task5::coin_b { + use sui::coin::{Self, TreasuryCap}; + + public struct COIN_B has drop {} + + fun init(otw: COIN_B, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + otw, + 9, + b"coin_jerry", + b"Jerry", + b"Coin Jerry to study simple swap", + option::none(), + ctx, + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + } + + entry fun mint(treasury_cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } +} \ No newline at end of file diff --git a/mover/RobbieChen/code/task5/sources/log.txt b/mover/RobbieChen/code/task5/sources/log.txt new file mode 100644 index 000000000..8841fc918 --- /dev/null +++ b/mover/RobbieChen/code/task5/sources/log.txt @@ -0,0 +1,358 @@ +coina:treasurycap 0x5d223e85919a64d56a0ac572067e90e41164403379dfe098b6326c37a776bd9d +coinb:treasurycap 0xd667bd04e45aa21cebfe3e25dc108b88b2e6354d360ce32bdbf5306445b50731 +packageID: 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978 +sender:0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 + +poolID: 0x76fe408904475e4da12bf2d039b843e78408cd4f8b633e27040224d807abd605 +coin_a_ID_1: 0x118241c52cda037d1026844ad102550136cf92aee9b5463c9d22a2b710dca23e +coin_b_ID_1: 0xf9994ddb85155d2649f573ecee9998bbd1a7dab3f8bfb0d1347b5f9c1932370b +pocket_ID:0xf16a1114355f498a50627915323d08202298f01d8ca8595cac3ddf85e11ed453 + +coin_a_ID_2: 0xbe2180186322161d29e28ca3fe2b1a0ec425ca67d8ee6e32686fd169beb221ad +coin_b_ID_2: 0x23b5b55ff7b8c375984a589b60cecf2d54bd4033517ccdab340d8dacfb28ba60 +0xfb9a54e7f6802f0936d2bc68bf098bab8e9ab3ce47d37eadfeadddfeee033624 + +coin_a_ID_3: 0x4c72db9b6a576e267605d3c0a343d6df658024ee4cb5299fd1c6342ade60582a +coin_b_ID_3: 0xfb9a54e7f6802f0936d2bc68bf098bab8e9ab3ce47d37eadfeadddfeee033624 + + +Transaction Digest: FaVsRi1nHq8FsjESwMfXHreSzxmwzpFtXh1VEXu4o7Lj +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ Gas Owner: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x72fd9308351294b1c639e30ed1850e942faaef8b497ab75206350aed4349eaca │ +│ │ Version: 966378 │ +│ │ Digest: GMkCZ6Yb6xEjXogup3eVKJUAaWvTN2Fqi4BjKcPp1JfR │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ s7xZysoDSWf8wZgR9KCtXx4M87EelWv6X7gxKqGR6MaRt1TdvEQ4fiTf+VlYZH99zsZZpcxUxMkBIhE5HNJsCg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: FaVsRi1nHq8FsjESwMfXHreSzxmwzpFtXh1VEXu4o7Lj │ +│ Status: Success │ +│ Executed Epoch: 386 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x6a858d260b3737d0db9e1861ba31d54e05a9167cc620f4f7e64fe4db684ae289 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 8grFE8ksCkVuAUxPhhAS7Dr1pPhzgEMq5wPRcsDGfBK3 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xa9ee80421b746cb6d6dfb15725c499591da7b6fb712132320291a652d2ff354e │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ Version: 966379 │ +│ │ Digest: 3bzFCPhDyjP2HU9u8Tu1m3JNMAaAu3hRsTscT7Fbqkwm │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x72fd9308351294b1c639e30ed1850e942faaef8b497ab75206350aed4349eaca │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ Version: 966379 │ +│ │ Digest: 66nkMGgjWHxtghmdzcErFoktdCPumqYkubidsgXyPzg3 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x72fd9308351294b1c639e30ed1850e942faaef8b497ab75206350aed4349eaca │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ Version: 966379 │ +│ │ Digest: 66nkMGgjWHxtghmdzcErFoktdCPumqYkubidsgXyPzg3 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 21986800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ 7Wep3ZHuHCs7EPafohPv86H47bwsxh9BfUm295LZtR89 │ +│ 9au69QfQwHHNVKsoW4QinXXmXxzSZMzJHepyoJPdsr9o │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xa9ee80421b746cb6d6dfb15725c499591da7b6fb712132320291a652d2ff354e │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 966379 │ +│ │ Digest: 3bzFCPhDyjP2HU9u8Tu1m3JNMAaAu3hRsTscT7Fbqkwm │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x72fd9308351294b1c639e30ed1850e942faaef8b497ab75206350aed4349eaca │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 966379 │ +│ │ Digest: 66nkMGgjWHxtghmdzcErFoktdCPumqYkubidsgXyPzg3 │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x6a858d260b3737d0db9e1861ba31d54e05a9167cc620f4f7e64fe4db684ae289 │ +│ │ Version: 1 │ +│ │ Digest: 8grFE8ksCkVuAUxPhhAS7Dr1pPhzgEMq5wPRcsDGfBK3 │ +│ │ Modules: robbiechen_swap │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -22008680 │ +│ └── │ +╰────────────────────────────────────────────────────────────sui client publish --skip-fetch-latest-git-deps --skip-dependency-verificationS E:\code\move\tintin-bootcamp\mover\RobbieChen\code\task5> +[warn] Client/Server api version mismatch, client api version : 1.24.1, server api version : 1.26.0 +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING task5 +Skipping dependency verification +Transaction Digest: DakR6YbCJc28zKT136aRC37kgoJmLn9FFURh1PfEnS8a +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ Gas Owner: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x72fd9308351294b1c639e30ed1850e942faaef8b497ab75206350aed4349eaca │ +│ │ Version: 966379 │ +│ │ Digest: 66nkMGgjWHxtghmdzcErFoktdCPumqYkubidsgXyPzg3 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ Ewk2Qd+xk478hIOY+7fUZbC23EM2QRKxKpluU/Bt65L2w95DiZeceLVsnb9ay0K5an9SMCOaXZlvv7nENRNJCw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: DakR6YbCJc28zKT136aRC37kgoJmLn9FFURh1PfEnS8a │ +│ Status: Success │ +│ Executed Epoch: 386 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 8p397cvP5ChNhNBBaMaeYxyY3CNxKwvdRfCagardQ8aV │ +│ └── │ +│ ┌── │ +│ │ ID: 0x4c91b371241bd254e132a1cba30c61ea34d80604a17c5e8368ac64e8becd69fe │ +│ │ Owner: Immutable │ +│ │ Version: 966380 │ +│ │ Digest: 4fDWpNci6Eht2cnjpGAkfABFcDP2zxKqGgCKRNTHKbem │ +│ └── │ +│ ┌── │ +│ │ ID: 0x4d682d6ba52a92762f75ed7028793d98b96940b36d0e345e825f6006484b669d │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ Version: 966380 │ +│ │ Digest: 87dv1qr4qcAquYi6yjpfSsdiu67c4vbXKh2oxpHr9Czh │ +│ └── │ +│ ┌── │ +│ │ ID: 0x5d223e85919a64d56a0ac572067e90e41164403379dfe098b6326c37a776bd9d │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ Version: 966380 │ +│ │ Digest: 5DGLtJXUgbo8Y7MzAoyXWWk8nqDM1AWdppp1ZLNgosRt │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd667bd04e45aa21cebfe3e25dc108b88b2e6354d360ce32bdbf5306445b50731 │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ Version: 966380 │ +│ │ Digest: EYi76NXtC31tUijti7k1ASdXyvMcYAPTcy2LFVkgm581 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf16a1114355f498a50627915323d08202298f01d8ca8595cac3ddf85e11ed453 │ +│ │ Owner: Shared │ +│ │ Version: 966380 │ +│ │ Digest: 8Y2e1bGF2hZuzmCnFGPx1TXd5c9jj5HsPwg4cVbfAioq │ +│ └── │ +│ ┌── │ +│ │ ID: 0xfee48eb43289fc84c33397bf5fe5b990ec788ceeb80ce38f4063ef40cfa5b6d0 │ +│ │ Owner: Immutable │ +│ │ Version: 966380 │ +│ │ Digest: 5DDmTAXQzMqXKFjKMgmpQ5MB3sHLQj2DAf2uZjRZzzcL │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x72fd9308351294b1c639e30ed1850e942faaef8b497ab75206350aed4349eaca │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ Version: 966380 │ +│ │ Digest: 2gV5z1RF5dR8yeMuzqu7N6myVSEZqxzc5CVeHx9m441A │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x72fd9308351294b1c639e30ed1850e942faaef8b497ab75206350aed4349eaca │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ Version: 966380 │ +│ │ Digest: 2gV5z1RF5dR8yeMuzqu7N6myVSEZqxzc5CVeHx9m441A │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 38463600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ 9au69QfQwHHNVKsoW4QinXXmXxzSZMzJHepyoJPdsr9o │ +│ FaVsRi1nHq8FsjESwMfXHreSzxmwzpFtXh1VEXu4o7Lj │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x4c91b371241bd254e132a1cba30c61ea34d80604a17c5e8368ac64e8becd69fe │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978::coin_a::COIN_A> │ +│ │ Version: 966380 │ +│ │ Digest: 4fDWpNci6Eht2cnjpGAkfABFcDP2zxKqGgCKRNTHKbem │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x4d682d6ba52a92762f75ed7028793d98b96940b36d0e345e825f6006484b669d │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 966380 │ +│ │ Digest: 87dv1qr4qcAquYi6yjpfSsdiu67c4vbXKh2oxpHr9Czh │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x5d223e85919a64d56a0ac572067e90e41164403379dfe098b6326c37a776bd9d │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978::coin_a::COIN_A> │ +│ │ Version: 966380 │ +│ │ Digest: 5DGLtJXUgbo8Y7MzAoyXWWk8nqDM1AWdppp1ZLNgosRt │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xd667bd04e45aa21cebfe3e25dc108b88b2e6354d360ce32bdbf5306445b50731 │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978::coin_b::COIN_B> │ +│ │ Version: 966380 │ +│ │ Digest: EYi76NXtC31tUijti7k1ASdXyvMcYAPTcy2LFVkgm581 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xf16a1114355f498a50627915323d08202298f01d8ca8595cac3ddf85e11ed453 │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Shared │ +│ │ ObjectType: 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978::robbiechen_swap::Pocket │ +│ │ Version: 966380 │ +│ │ Digest: 8Y2e1bGF2hZuzmCnFGPx1TXd5c9jj5HsPwg4cVbfAioq │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xfee48eb43289fc84c33397bf5fe5b990ec788ceeb80ce38f4063ef40cfa5b6d0 │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978::coin_b::COIN_B> │ +│ │ Version: 966380 │ +│ │ Digest: 5DDmTAXQzMqXKFjKMgmpQ5MB3sHLQj2DAf2uZjRZzzcL │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x72fd9308351294b1c639e30ed1850e942faaef8b497ab75206350aed4349eaca │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 966380 │ +│ │ Digest: 2gV5z1RF5dR8yeMuzqu7N6myVSEZqxzc5CVeHx9m441A │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x1e74adb0c5f560a2042eb9a61bbbe93577ebef2a58ab461521b8ed2d1f6a1978 │ +│ │ Version: 1 │ +│ │ Digest: 8p397cvP5ChNhNBBaMaeYxyY3CNxKwvdRfCagardQ8aV │ +│ │ Modules: coin_a, coin_b, robbiechen_swap │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -38485480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/RobbieChen/code/task5/sources/robbiechen_newswap.move b/mover/RobbieChen/code/task5/sources/robbiechen_newswap.move new file mode 100644 index 000000000..186a8506c --- /dev/null +++ b/mover/RobbieChen/code/task5/sources/robbiechen_newswap.move @@ -0,0 +1,90 @@ +module task5::robbiechen_swap { + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Balance, Supply}; + use sui::table::{Self, Table}; + + const ErrNotContainLP: u64 = 0; + const ErrNotEnoughBalance: u64 = 1; + + public struct LP has drop {} + + public struct Pool has key { + id: UID, + balance_a: Balance, + balance_b: Balance, + lp_supply: Supply>, + } + + public struct Pocket has key { + id: UID, + id_to_vec: Table>, + } + + fun init(ctx: &mut TxContext) { + transfer::share_object(Pocket { + id: object::new(ctx), + id_to_vec: table::new>(ctx), + }); + } + + entry fun create_pool(ctx: &mut TxContext) { + let pool = Pool { + id: object::new(ctx), + balance_a: balance::zero(), + balance_b: balance::zero(), + lp_supply: balance::create_supply>(LP {}), + }; + transfer::share_object(pool); + } + + entry fun add_liquidity(pool: &mut Pool, coin_tom: Coin, coin_jerry: Coin, pocket: &mut Pocket, ctx: &mut TxContext) { + let coin_tom_amount = coin_tom.value(); + let coin_jerry_amount = coin_jerry.value(); + + pool.balance_a.join(coin_tom.into_balance()); + pool.balance_b.join(coin_jerry.into_balance()); + + let lp_balance = pool.lp_supply.increase_supply(coin_tom_amount + coin_jerry_amount); + let lp_coin = coin::from_balance(lp_balance, ctx); + let lp_id = object::id(&lp_coin); + + let mut vec = vector::empty(); + vec.push_back(coin_tom_amount); + vec.push_back(coin_jerry_amount); + + pocket.id_to_vec.add(lp_id, vec); + transfer::public_transfer(lp_coin, tx_context::sender(ctx)); + } + + entry fun remove_liquidity(pool: &mut Pool, lp: Coin>, pocket: &mut Pocket, ctx: &mut TxContext) { + let lp_id = object::id(&lp); + assert!(pocket.id_to_vec.contains(lp_id), ErrNotContainLP); + + let vec = pocket.id_to_vec.remove(lp_id); + let coin_tom_amount = vec[0]; + let coin_jerry_amount = vec[1]; + assert!(coin_tom_amount <= pool.balance_a.value() && coin_jerry_amount <= pool.balance_b.value(), ErrNotEnoughBalance); + + pool.lp_supply.decrease_supply(lp.into_balance()); + + let sender = tx_context::sender(ctx); + transfer::public_transfer(coin::take(&mut pool.balance_a, coin_tom_amount, ctx), sender); + transfer::public_transfer(coin::take(&mut pool.balance_b, coin_jerry_amount, ctx), sender); + } + + entry fun tom_swap_jerry(pool: &mut Pool, coin_tom: Coin, ctx: &mut TxContext) { + let amount = coin_tom.value(); + assert!(amount <= pool.balance_b.value(), ErrNotEnoughBalance); + + pool.balance_a.join(coin_tom.into_balance()); + transfer::public_transfer(coin::take(&mut pool.balance_b, amount, ctx), tx_context::sender(ctx)); + } + + entry fun jerry_swap_tom(pool: &mut Pool, coin_jerry: Coin, ctx: &mut TxContext) { + let amount = coin_jerry.value(); + assert!(amount <= pool.balance_a.value(), ErrNotEnoughBalance); + + pool.balance_b.join(coin_jerry.into_balance()); + transfer::public_transfer(coin::take(&mut pool.balance_a, amount, ctx), tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/RobbieChen/code/task5/tests/task5_tests.move b/mover/RobbieChen/code/task5/tests/task5_tests.move new file mode 100644 index 000000000..b0c4ac8b4 --- /dev/null +++ b/mover/RobbieChen/code/task5/tests/task5_tests.move @@ -0,0 +1,19 @@ +/* +#[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 + } +} +*/ diff --git a/mover/RobbieChen/code/task7/Move.lock b/mover/RobbieChen/code/task7/Move.lock new file mode 100644 index 000000000..b73df3922 --- /dev/null +++ b/mover/RobbieChen/code/task7/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "73E64E4777F9B0E99C5F1AF1E04E4277EBE5262AD7519E0C9F59B2A252B1F5CE" +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.24.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xfbbec7d47a179328651ad2607158b21ecbc5e8b17dcb36c06d845bb9c8e8e2dd" +latest-published-id = "0xfbbec7d47a179328651ad2607158b21ecbc5e8b17dcb36c06d845bb9c8e8e2dd" +published-version = "1" diff --git a/mover/RobbieChen/code/task7/Move.toml b/mover/RobbieChen/code/task7/Move.toml new file mode 100644 index 000000000..f6b8b616a --- /dev/null +++ b/mover/RobbieChen/code/task7/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task7" +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] +task7 = "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/RobbieChen/code/task7/sources/log.txt b/mover/RobbieChen/code/task7/sources/log.txt new file mode 100644 index 000000000..7a9b2e8b4 --- /dev/null +++ b/mover/RobbieChen/code/task7/sources/log.txt @@ -0,0 +1,152 @@ + +sui client call --function get_flag --module check_in --package 0xfbbec7d47a179328651ad2607158b21ecbc5e8b17dcb36c06d845bb9c8e8e2dd --args 'dfdfdaggetebdagab' 'Robbiechen' 0xe8794333b722d5ae618b20119df9b793f8e503af1630f6eab521791bc1db9895 0x8 --skip-fetch-latest-git-deps --skip-dependency-verification + +sui client call --package 0x60695ee31f93add1f79909c884a55dff7e5f140bbd2e495819966bd2f7971d42 --module check_in --function get_flag --args ']2XnpF=nb`Me^7TR"RF^T/OFte' 'RobbieChen' 0x011f9404e6f167e549b617a53eea058029167a2beac26c624cbc3550e04b5ad2 0x8 + +sui client call --package 0xfbbec7d47a179328651ad2607158b21ecbc5e8b17dcb36c06d845bb9c8e8e2dd --module check_in --function get_flag --args 'LetsMoveCTF' 'RobbieChen' 0xe8794333b722d5ae618b20119df9b793f8e503af1630f6eab521791bc1db9895 0x8 + + + +Transaction Digest: BxVcyWJMSbAujtjkUCpMU6RgN8WbfauYQsuoAy9oHjzs +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ Gas Owner: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x72fd9308351294b1c639e30ed1850e942faaef8b497ab75206350aed4349eaca │ +│ │ Version: 966406 │ +│ │ Digest: 4jFdkdJ9kWWCLV4PtVmasmko7UMhjZQS3J4AHcZejMug │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 6L7m0S5ZQSaisgEZO8GoZ65xbfkadAB0vPxFN+U+BCCsCcM3qiE9qUvuVxYwmSmNlSYeYZ4QzsfAAZ8nDXOvDA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: BxVcyWJMSbAujtjkUCpMU6RgN8WbfauYQsuoAy9oHjzs │ +│ Status: Success │ +│ Executed Epoch: 405 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x3ab36dc6a347e98de01d13d9cfc6ad69ef3cdfcf7a27c63f71bea33d849f897e │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ Version: 966407 │ +│ │ Digest: 5GrnzQnPe75fB6y8wPtHS1YS7mGnjdi1rWQnqaZYuP2w │ +│ └── │ +│ ┌── │ +│ │ ID: 0xe8794333b722d5ae618b20119df9b793f8e503af1630f6eab521791bc1db9895 │ +│ │ Owner: Shared │ +│ │ Version: 966407 │ +│ │ Digest: GnMxEaxxDLQgmy7SixCTVCPf1mpGWuNc1vcKar3xzzYB │ +│ └── │ +│ ┌── │ +│ │ ID: 0xfbbec7d47a179328651ad2607158b21ecbc5e8b17dcb36c06d845bb9c8e8e2dd │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 7UvK4PW7QZVgE18Hn4MYawMWimD6ZvSfYbRpDJoQkAnv │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x72fd9308351294b1c639e30ed1850e942faaef8b497ab75206350aed4349eaca │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ Version: 966407 │ +│ │ Digest: CkXhZK4AkQhsiLkskxZRAmAQZZk2yDY9kdTooth2Ke5R │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x72fd9308351294b1c639e30ed1850e942faaef8b497ab75206350aed4349eaca │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ Version: 966407 │ +│ │ Digest: CkXhZK4AkQhsiLkskxZRAmAQZZk2yDY9kdTooth2Ke5R │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 12646400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ HfoFxDd9hWjqpDWrJLFW6nKg9xzhoom7F6JSBrA1ejTs │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x3ab36dc6a347e98de01d13d9cfc6ad69ef3cdfcf7a27c63f71bea33d849f897e │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 966407 │ +│ │ Digest: 5GrnzQnPe75fB6y8wPtHS1YS7mGnjdi1rWQnqaZYuP2w │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xe8794333b722d5ae618b20119df9b793f8e503af1630f6eab521791bc1db9895 │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Shared │ +│ │ ObjectType: 0xfbbec7d47a179328651ad2607158b21ecbc5e8b17dcb36c06d845bb9c8e8e2dd::check_in::FlagString │ +│ │ Version: 966407 │ +│ │ Digest: GnMxEaxxDLQgmy7SixCTVCPf1mpGWuNc1vcKar3xzzYB │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x72fd9308351294b1c639e30ed1850e942faaef8b497ab75206350aed4349eaca │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 966407 │ +│ │ Digest: CkXhZK4AkQhsiLkskxZRAmAQZZk2yDY9kdTooth2Ke5R │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xfbbec7d47a179328651ad2607158b21ecbc5e8b17dcb36c06d845bb9c8e8e2dd │ +│ │ Version: 1 │ +│ │ Digest: 7UvK4PW7QZVgE18Hn4MYawMWimD6ZvSfYbRpDJoQkAnv │ +│ │ Modules: check_in │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -12668280 │ +│ └── │ diff --git a/mover/RobbieChen/code/task7/sources/task7.move b/mover/RobbieChen/code/task7/sources/task7.move new file mode 100644 index 000000000..c178332c4 --- /dev/null +++ b/mover/RobbieChen/code/task7/sources/task7.move @@ -0,0 +1,73 @@ +module task7::check_in { + use std::ascii::{String, string}; + // use std::string; + // use std::vector; + use sui::event; + // use sui::object; + use sui::random; + use sui::random::Random; + use sui::transfer::share_object; + // use sui::tx_context::{Self, TxContext}; + + const ESTRING: u64 = 0; + + public struct Flag has copy, drop { + sender: address, + flag: bool, + ture_num: u64, + github_id: String + } + + public struct FlagString has key { + id: UID, + str: String, + ture_num: u64 + } + + fun init(ctx: &mut TxContext) { + let flag_str = FlagString { + id: object::new(ctx), + str: string(b"LetsMoveCTF"), + ture_num: 0 + }; + share_object(flag_str); + } + + + entry fun get_flag( + string: String, + github_id: String, + flag_str: &mut FlagString, + rand: &Random, + ctx: &mut TxContext + ) { + assert!(string == flag_str.str, ESTRING); + + flag_str.str = getRandomString(rand, ctx); + + flag_str.ture_num = flag_str.ture_num + 1; + + event::emit(Flag { + sender: tx_context::sender(ctx), + flag: true, + ture_num: flag_str.ture_num, + github_id + }); + } + + + fun getRandomString(rand: &Random, ctx: &mut TxContext): String { + let mut gen = random::new_generator(rand, ctx); + + let mut str_len = random::generate_u8_in_range(&mut gen, 4, 30); + + let mut rand: vector = b""; + while (str_len != 0) { + let rand_num = random::generate_u8_in_range(&mut gen, 34, 126); + vector::push_back(&mut rand, rand_num); + str_len = str_len - 1; + }; + + string(rand) + } +} diff --git a/mover/RobbieChen/code/task7/tests/task7_tests.move b/mover/RobbieChen/code/task7/tests/task7_tests.move new file mode 100644 index 000000000..7eabc3090 --- /dev/null +++ b/mover/RobbieChen/code/task7/tests/task7_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task7::task7_tests { + // uncomment this line to import the module + // use task7::task7; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task7() { + // pass + } + + #[test, expected_failure(abort_code = ::task7::task7_tests::ENotImplemented)] + fun test_task7_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/RobbieChen/code/task8/Move.lock b/mover/RobbieChen/code/task8/Move.lock new file mode 100644 index 000000000..369da220a --- /dev/null +++ b/mover/RobbieChen/code/task8/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E23ADF92BBE53D68499FF0E3F63BD9402CF13CFE355E6EA1EF92B3D873907C18" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x8125974709cbfac9cb1593075ec0e28a1024c4b9e8e6120dcc6075ff37e72409" +latest-published-id = "0x8125974709cbfac9cb1593075ec0e28a1024c4b9e8e6120dcc6075ff37e72409" +published-version = "1" diff --git a/mover/RobbieChen/code/task8/Move.toml b/mover/RobbieChen/code/task8/Move.toml new file mode 100644 index 000000000..dc1475384 --- /dev/null +++ b/mover/RobbieChen/code/task8/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task8" +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] +task8 = "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/RobbieChen/code/task8/sources/log.txt b/mover/RobbieChen/code/task8/sources/log.txt new file mode 100644 index 000000000..8f04bfb3e --- /dev/null +++ b/mover/RobbieChen/code/task8/sources/log.txt @@ -0,0 +1,156 @@ + + +sui client call --package 0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f --module lets_move --function get_flag --args [66,52,238] 'RobbieChen' 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 0x8 + + + + +sui client call --package 0x6200cf8a76d9e98e8ecc48b7241934cc2125a81ad935c37ff67b93134f2262f2 --module lets_move --function get_flag --args 1234567899999 'RobbieChen' 0x4bca68e2a537006c561a3a3ba97d05faff701f4eabcce51bab05f101f6bbde44 0x8 + +sui client call --package 0xfca21b9adca3ff3a52fffb090df4170cd598eb23fd12904a72e603132eb49996 --module lets_move --function get_flag --args 123445 'dd' 0xd7c09f00664d292fb02751822f12dd20e077dea60277728da27b0f413eef4354 0x8 + + +Transaction Digest: HK8TmbbuZTQq7YPsm79ZtZw2iy7o5Pr8QYspsoB9hJdw +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ Gas Owner: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x72fd9308351294b1c639e30ed1850e942faaef8b497ab75206350aed4349eaca │ +│ │ Version: 48303527 │ +│ │ Digest: 3HiVhtezY3xxiRFswYv6AdDcpcgojCtPPVrFzVhmtrs8 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ XpEtIXFKd3o3mmhvMLLPGrEV++dVI/2+KyRE6Oh2vgp+L3btKBIDZDS5pHH7EqwM1jOB2l6w2HFMNG7BszJiAg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: HK8TmbbuZTQq7YPsm79ZtZw2iy7o5Pr8QYspsoB9hJdw │ +│ Status: Success │ +│ Executed Epoch: 406 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x68122a6d044c7e230c558dd8ca16b574bfe7bf47cd119555a6589bd32b5dd7bf │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ Version: 48303528 │ +│ │ Digest: 5Dox2m8sMTJPaYnokkvmJ7TLLmoJJQuC2XAbaMT2fbrt │ +│ └── │ +│ ┌── │ +│ │ ID: 0xcd4e3b15188aeb2147b92d84c0b0a22c19e3a1aeb0261f4520b111e384f2ae8e │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 8H8UpLLD4kQS4uxY2eWRmjXuyKbbGeTW89qQmDpuAfmr │ +│ └── │ +│ ┌── │ +│ │ ID: 0xfea4571d2799e4bdfd69079c4a7bab654b876a2cd68f3dcffaaa57f72d2de0f6 │ +│ │ Owner: Shared( 48303528 ) │ +│ │ Version: 48303528 │ +│ │ Digest: 6bHoLTzhAZYahZR3wbooREs3chzwG6HugVVg4hQYmbyZ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x72fd9308351294b1c639e30ed1850e942faaef8b497ab75206350aed4349eaca │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ Version: 48303528 │ +│ │ Digest: GJwNvaPUJL3LDqrmK8nxo5QjcHJTtZSp3xJyGpfui4mg │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x72fd9308351294b1c639e30ed1850e942faaef8b497ab75206350aed4349eaca │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ Version: 48303528 │ +│ │ Digest: GJwNvaPUJL3LDqrmK8nxo5QjcHJTtZSp3xJyGpfui4mg │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 14478000 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ 8wYkaCd8iCrWrt8nFbirUXJRx43Emssnhcoppu3AU4Ec │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x68122a6d044c7e230c558dd8ca16b574bfe7bf47cd119555a6589bd32b5dd7bf │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 48303528 │ +│ │ Digest: 5Dox2m8sMTJPaYnokkvmJ7TLLmoJJQuC2XAbaMT2fbrt │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xfea4571d2799e4bdfd69079c4a7bab654b876a2cd68f3dcffaaa57f72d2de0f6 │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Shared( 48303528 ) │ +│ │ ObjectType: 0xcd4e3b15188aeb2147b92d84c0b0a22c19e3a1aeb0261f4520b111e384f2ae8e::lets_move::Challenge │ +│ │ Version: 48303528 │ +│ │ Digest: 6bHoLTzhAZYahZR3wbooREs3chzwG6HugVVg4hQYmbyZ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x72fd9308351294b1c639e30ed1850e942faaef8b497ab75206350aed4349eaca │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 48303528 │ +│ │ Digest: GJwNvaPUJL3LDqrmK8nxo5QjcHJTtZSp3xJyGpfui4mg │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xcd4e3b15188aeb2147b92d84c0b0a22c19e3a1aeb0261f4520b111e384f2ae8e │ +│ │ Version: 1 │ +│ │ Digest: 8H8UpLLD4kQS4uxY2eWRmjXuyKbbGeTW89qQmDpuAfmr │ +│ │ Modules: lets_move │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -14499880 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/RobbieChen/code/task8/sources/new_log.txt b/mover/RobbieChen/code/task8/sources/new_log.txt new file mode 100644 index 000000000..5c362f993 --- /dev/null +++ b/mover/RobbieChen/code/task8/sources/new_log.txt @@ -0,0 +1 @@ +sui client call --package 0x7379135dfab135deac26c7c4f5f24a604f48f84455c17401df34a4854788f8f7 --module lets_move --function generate_random_vector diff --git a/mover/RobbieChen/code/task8/sources/success.txt b/mover/RobbieChen/code/task8/sources/success.txt new file mode 100644 index 000000000..6c6424905 --- /dev/null +++ b/mover/RobbieChen/code/task8/sources/success.txt @@ -0,0 +1,146 @@ +PS E:\code\move\tintin-bootcamp\mover\RobbieChen\code\task8> sui client call --package 0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f --module lets_move --function get_flag --args [66,52,238] 'RobbieChen' 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 0x8 +[warn] Client/Server api version mismatch, client api version : 1.27.0, server api version : 1.27.2 +Transaction Digest: 8EkanwWmrn4r3piVp8Y5pj2UJsfZzwwWMCmgvbbuz5r2 +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ Gas Owner: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x003afafd8e5cdda881b6643b036cb2c12a010a058aa6f14814b8c31f08929ef2 │ +│ │ Version: 1078982 │ +│ │ Digest: Eaj2EGbU486qDV4R2RdvB54Wrq9y4KxRVSkZV1LiZ16N │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: [66,52,238] │ │ +│ │ 1 Pure Arg: Type: 0x1::ascii::String, Value: "RobbieChen" │ │ +│ │ 2 Shared Object ID: 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 │ │ +│ │ 3 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: get_flag │ │ +│ │ │ Module: lets_move │ │ +│ │ │ Package: 0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ │ Input 3 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ ydN0oXirVM5pXr1nbTUxcI1dqwGPMDdkaF71GvmboxP3ZbQHYwooe1YJbmow/D8Z4vxCT0wVMQL+/h4tfkmDBg== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 8EkanwWmrn4r3piVp8Y5pj2UJsfZzwwWMCmgvbbuz5r2 │ +│ Status: Success │ +│ Executed Epoch: 410 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x003afafd8e5cdda881b6643b036cb2c12a010a058aa6f14814b8c31f08929ef2 │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ Version: 49707456 │ +│ │ Digest: HmZsQJNUuHVai18Si3sjbUPoCVSgwrxw5392Vf9AQ5Hr │ +│ └── │ +│ ┌── │ +│ │ ID: 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 │ +│ │ Owner: Shared( 48002539 ) │ +│ │ Version: 49707456 │ +│ │ Digest: 8ia7cWz3TyWkMXmGA6zzP5vjSSXJG8sjLhdZ4VKtyy9X │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 │ +│ │ Version: 49156869 │ +│ │ Digest: GVypZ7tmK1hMwYjsKWgT8VE9m2U2vjS1Cn33GMpBiGuY │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ +│ │ Version: 49707455 │ +│ │ Digest: 5n8mQYMwBoGVryzAdKGFUjSTtXmMDcxJJedDopRB5YB6 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x003afafd8e5cdda881b6643b036cb2c12a010a058aa6f14814b8c31f08929ef2 │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ Version: 49707456 │ +│ │ Digest: HmZsQJNUuHVai18Si3sjbUPoCVSgwrxw5392Vf9AQ5Hr │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2629600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2595780 MIST │ +│ Non-refundable Storage Fee: 26220 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 29w8KzAittLPX5SqEypxGZKq81pztiNzSSd7N3gjMETx │ +│ 2HWnxPMUdXeLJV8uVuhBkH3zCgffpe6waaHtgR8swboa │ +│ 42wmqLuEBW8fKyDDZXvw1kiUpVFqMU8wi1gTkzzU9no1 │ +│ E7xS4DHL9y6oBtd9SzPNF76EW7sBsPxGcyFCsZFAuhAq │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 8EkanwWmrn4r3piVp8Y5pj2UJsfZzwwWMCmgvbbuz5r2:0 │ +│ │ PackageID: 0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f │ +│ │ Transaction Module: lets_move │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ EventType: 0x97a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f::lets_move::Flag │ +│ │ ParsedJSON: │ +│ │ ┌───────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ flag │ true │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ github_id │ RobbieChen │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ sender │ 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ ture_num │ 26 │ │ +│ │ └───────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x003afafd8e5cdda881b6643b036cb2c12a010a058aa6f14814b8c31f08929ef2 │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 49707456 │ +│ │ Digest: HmZsQJNUuHVai18Si3sjbUPoCVSgwrxw5392Vf9AQ5Hr │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 │ +│ │ Sender: 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 │ +│ │ Owner: Shared( 48002539 ) │ +│ │ ObjectType: 0x97a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f::lets_move::Challenge │ +│ │ Version: 49707456 │ +│ │ Digest: 8ia7cWz3TyWkMXmGA6zzP5vjSSXJG8sjLhdZ4VKtyy9X │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1033820 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/RobbieChen/code/task8/sources/task8.move b/mover/RobbieChen/code/task8/sources/task8.move new file mode 100644 index 000000000..1d2dbceff --- /dev/null +++ b/mover/RobbieChen/code/task8/sources/task8.move @@ -0,0 +1,186 @@ +module task8::lets_move { + use std::ascii::{String, string}; + use std::hash; + use sui::event; + use sui::bcs; + use sui::random; + use sui::random::Random; + use sui::transfer::share_object; + + const EPROOF: u64 = 0; + + public struct Flag has copy, drop { + sender: address, + flag: bool, + ture_num: u64, + github_id: String + } + + public struct EmitE has copy, drop{ + a:vector + } + + public struct EmitE2 has copy, drop{ + a:Challenge + } + + public struct Challenge has key { + id: UID, + str: String, + difficulity: u64, + ture_num: u64 + } + + + + fun init(ctx: &mut TxContext) { + let flag_str = Challenge { + id: object::new(ctx), + str: string(b"kV\":O5o%Y1+~&\\{hS//B3Jf"), + difficulity: 3, + ture_num: 0, + }; + share_object(flag_str); + } + + public fun test( + challenge:&mut Challenge, + rand:&Random, + ctx:&mut TxContext + ){ + let mut seed = 10; + + loop{ + let mut proof = generate_random_vector(seed); + let mut full_proof: vector = vector::empty(); + vector::append(&mut full_proof, proof); + vector::append(&mut full_proof, tx_context::sender(ctx).to_bytes()); + vector::append(&mut full_proof, bcs::to_bytes(challenge)); + + let hash: vector = hash::sha3_256(full_proof); + + let mut prefix_sum: u32 = 0; + let mut i: u64 = 0; + while (i < challenge.difficulity) { + prefix_sum = prefix_sum + (*vector::borrow(&hash, i) as u32); + i = i + 1; + }; + + if (prefix_sum==0){ + event::emit(EmitE{ + a:proof + }); + + + break + }; + seed = seed+1; + } + + + } + + public fun generate_random_vector(seed: u64): vector { + let mut random_vector = vector::empty(); + let mut current_value = seed; + let length = 10; + + // 模拟生成随机数 + let mut i = 0; + + while (i < length) { + // 简单的随机数生成逻辑:将当前值模256 + let random_value = (current_value % 256) as u8; + // 将生成的随机值加入向量 + vector::push_back(&mut random_vector, random_value); + // 更新当前值,只需加一个常数,这里是简单加2 + current_value = current_value + 2; + // 自增索引 + i = i + 1; + }; + + event::emit(EmitE{ + a:random_vector + }); + + random_vector + + } + + entry fun get_flag1( + // proof: vector, + github_id: String, + challenge: &mut Challenge, + rand: &Random, + ctx: &mut TxContext + ) { + let mut full_proof: vector = vector::empty(); + // vector::append(&mut full_proof, proof); + vector::append(&mut full_proof, tx_context::sender(ctx).to_bytes()); + vector::append(&mut full_proof, bcs::to_bytes(challenge)); + // vector::append(&mut full_proof, bcs::to_bytes(&challenge.str)); + // vector::append(&mut full_proof, bcs::to_bytes(&challenge.difficulity)); + // vector::append(&mut full_proof, bcs::to_bytes(&challenge.ture_num)); + // let struct_byt = bcs::to_bytes(challenge); + + let hash: vector = hash::sha3_256(full_proof); + + event::emit(EmitE2{ + a:challenge + }); + + } + + entry fun get_flag( + proof: vector, + github_id: String, + challenge: &mut Challenge, + rand: &Random, + ctx: &mut TxContext + ) { + let mut full_proof: vector = vector::empty(); + vector::append(&mut full_proof, proof); + vector::append(&mut full_proof, tx_context::sender(ctx).to_bytes()); + vector::append(&mut full_proof, bcs::to_bytes(challenge)); + // let struct_byt = bcs::to_bytes(challenge); + + let hash: vector = hash::sha3_256(full_proof); + + let mut prefix_sum: u32 = 0; + let mut i: u64 = 0; + while (i < challenge.difficulity) { + prefix_sum = prefix_sum + (*vector::borrow(&hash, i) as u32); + i = i + 1; + }; + + assert!(prefix_sum == 0, EPROOF); + + challenge.str = getRandomString(rand, ctx); + challenge.ture_num = challenge.ture_num + 1; + + + + event::emit(Flag { + sender: tx_context::sender(ctx), + flag: true, + ture_num: challenge.ture_num, + github_id + }); + } + + + fun getRandomString(rand: &Random, ctx: &mut TxContext): String { + let mut gen = random::new_generator(rand, ctx); + + let mut str_len = random::generate_u8_in_range(&mut gen, 4, 30); + + let mut rand: vector = b""; + while (str_len != 0) { + let rand_num = random::generate_u8_in_range(&mut gen, 34, 126); + vector::push_back(&mut rand, rand_num); + str_len = str_len - 1; + }; + + string(rand) + } +} \ No newline at end of file diff --git a/mover/RobbieChen/code/task8/sources/test1.py b/mover/RobbieChen/code/task8/sources/test1.py new file mode 100644 index 000000000..e0b177908 --- /dev/null +++ b/mover/RobbieChen/code/task8/sources/test1.py @@ -0,0 +1,53 @@ +import hashlib + + +def generate_proof(challenge_bytes, sender_address, difficulty): + # Define constants + EPROOF = 0 + + # Convert sender address to bytes array + sender_bytes = bytes.fromhex(sender_address[2:]) # Skip '0x' + + # Define the `proof` byte array (you need to find correct proof bytes) + proof = bytearray([0] * difficulty) # Initialize a dummy proof with zeros + + for i in range(256 ** difficulty): # Iterate through all possible proof values + # Convert `i` into bytes and set as proof + for j in range(difficulty): + proof[j] = (i >> (8 * j)) & 0xFF + + # Combine proof, sender_bytes, and challenge_bytes + full_proof = proof + sender_bytes + challenge_bytes + + # Calculate SHA-3 256 hash + hash_bytes = hashlib.sha3_256(full_proof).digest() + + # Calculate prefix sum + prefix_sum = sum(hash_bytes[:difficulty]) + + if prefix_sum == EPROOF: + return list(proof) + + return None + + +# Given challenge bytes +challenge_bytes = [ + 25, 231, 108, 165, 4, 197, 165, 250, 94, 33, 74, 69, 252, 166, 192, 88, + 23, 27, 163, 51, 246, 218, 137, 123, 130, 115, 16, 148, 80, 77, 90, 185, + 23, 107, 86, 34, 58, 79, 53, 111, 37, 89, 49, 43, 126, 38, 92, 123, 104, + 83, 47, 47, 66, 51, 74, 102, 3, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, + 0, 0 +] + +# Given sender address +sender_address = '0x23128b49c05b475e6459e8f37a122f3aa19681e397e1bc333d14f2014c7b2a64' + +# Given difficulty +difficulty = 3 + +# Generate proof +proof = generate_proof(bytearray(challenge_bytes), sender_address, difficulty) + +# Output the proof +print("Proof:", proof) \ No newline at end of file diff --git a/mover/RobbieChen/code/task8/tests/task8_tests.move b/mover/RobbieChen/code/task8/tests/task8_tests.move new file mode 100644 index 000000000..31cdf2c24 --- /dev/null +++ b/mover/RobbieChen/code/task8/tests/task8_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task8::task8_tests { + // uncomment this line to import the module + // use task8::task8; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task8() { + // pass + } + + #[test, expected_failure(abort_code = ::task8::task8_tests::ENotImplemented)] + fun test_task8_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/RobbieChen/code/task8/tests/test.move b/mover/RobbieChen/code/task8/tests/test.move new file mode 100644 index 000000000..55a024bab --- /dev/null +++ b/mover/RobbieChen/code/task8/tests/test.move @@ -0,0 +1,42 @@ +module task8::test{ + use sui::bcs; + use sui::event; + use std::ascii::{String, string}; + + + public struct Challenge has key { + id: UID, + str: String, + difficulity: u64, + ture_num: u64 + } + + public struct Flag2 has copy, drop { + bsc_struct: vector + } + + // let challenge = Challenge{ + // "difficulity":"3", + // "id":{"id":"0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9"}, + // "str":b"1jpJ8]7S + + + + + + Sui dApp Starter + + + + +
+ + + diff --git a/mover/Serlight/code/task6/package-lock.json b/mover/Serlight/code/task6/package-lock.json new file mode 100644 index 000000000..cfb5d169f --- /dev/null +++ b/mover/Serlight/code/task6/package-lock.json @@ -0,0 +1,9997 @@ +{ + "name": "navi", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "navi", + "version": "0.0.0", + "dependencies": { + "@mysten/dapp-kit": "0.12.8", + "@mysten/sui.js": "0.51.2", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@suiet/wallet-kit": "0.2.23", + "@tanstack/react-query": "^5.0.0", + "navi-sdk": "^1.1.23", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } + }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, + "node_modules/@0no-co/graphqlsp": { + "version": "1.12.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@0no-co/graphqlsp/-/graphqlsp-1.12.5.tgz", + "integrity": "sha512-YS9s8sf3XLaVdBt33u1mbUdfUSLiarQW1SFd3ITh2CLWz1nVnVTN0oCrpepuFHUJ7rt+b6Gk14sgjP4ONdeZfQ==", + "dependencies": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/code-frame/-/code-frame-7.24.6.tgz", + "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", + "dependencies": { + "@babel/highlight": "^7.24.6", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/compat-data/-/compat-data-7.24.6.tgz", + "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/core/-/core-7.24.6.tgz", + "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helpers": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/traverse": "^7.24.6", + "@babel/types": "^7.24.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/generator/-/generator-7.24.6.tgz", + "integrity": "sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==", + "dependencies": { + "@babel/types": "^7.24.6", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz", + "integrity": "sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.6.tgz", + "integrity": "sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", + "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", + "dependencies": { + "@babel/compat-data": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.6.tgz", + "integrity": "sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-member-expression-to-functions": "^7.24.6", + "@babel/helper-optimise-call-expression": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.6.tgz", + "integrity": "sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz", + "integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz", + "integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==", + "dependencies": { + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz", + "integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.6.tgz", + "integrity": "sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz", + "integrity": "sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", + "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.6.tgz", + "integrity": "sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz", + "integrity": "sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.6.tgz", + "integrity": "sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-wrap-function": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-replace-supers/-/helper-replace-supers-7.24.6.tgz", + "integrity": "sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-member-expression-to-functions": "^7.24.6", + "@babel/helper-optimise-call-expression": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", + "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.6.tgz", + "integrity": "sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz", + "integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz", + "integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", + "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz", + "integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-wrap-function/-/helper-wrap-function-7.24.6.tgz", + "integrity": "sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==", + "dependencies": { + "@babel/helper-function-name": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helpers/-/helpers-7.24.6.tgz", + "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", + "dependencies": { + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/highlight/-/highlight-7.24.6.tgz", + "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.6", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz", + "integrity": "sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6.tgz", + "integrity": "sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6.tgz", + "integrity": "sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/plugin-transform-optional-chaining": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6.tgz", + "integrity": "sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.6.tgz", + "integrity": "sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.6.tgz", + "integrity": "sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.6.tgz", + "integrity": "sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.6.tgz", + "integrity": "sha512-TzCtxGgVTEJWWwcYwQhCIQ6WaKlo80/B+Onsk4RRCcYqpYGFcG9etPW94VToGte5AAcxRrhjPUFvUS3Y2qKi4A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.6.tgz", + "integrity": "sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.6.tgz", + "integrity": "sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-remap-async-to-generator": "^7.24.6", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.6.tgz", + "integrity": "sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==", + "dependencies": { + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-remap-async-to-generator": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.6.tgz", + "integrity": "sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.6.tgz", + "integrity": "sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.6.tgz", + "integrity": "sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.6.tgz", + "integrity": "sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.6.tgz", + "integrity": "sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.6.tgz", + "integrity": "sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/template": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.6.tgz", + "integrity": "sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.6.tgz", + "integrity": "sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.6.tgz", + "integrity": "sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.6.tgz", + "integrity": "sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.6.tgz", + "integrity": "sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.6.tgz", + "integrity": "sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.6.tgz", + "integrity": "sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.6.tgz", + "integrity": "sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.6.tgz", + "integrity": "sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.6.tgz", + "integrity": "sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.6.tgz", + "integrity": "sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.6.tgz", + "integrity": "sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.6.tgz", + "integrity": "sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.6.tgz", + "integrity": "sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.6.tgz", + "integrity": "sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.6.tgz", + "integrity": "sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.6.tgz", + "integrity": "sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.6.tgz", + "integrity": "sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.6.tgz", + "integrity": "sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.6.tgz", + "integrity": "sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.6.tgz", + "integrity": "sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.6.tgz", + "integrity": "sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.6.tgz", + "integrity": "sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.6.tgz", + "integrity": "sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.6.tgz", + "integrity": "sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.6.tgz", + "integrity": "sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.6.tgz", + "integrity": "sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.6.tgz", + "integrity": "sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.6.tgz", + "integrity": "sha512-vQfyXRtG/kNIcTYRd/49uJnwvMig9X3R4XsTVXRml2RFupZFY+2RDuK+/ymb+MfX2WuIHAgUZc2xEvQrnI7QCg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.6.tgz", + "integrity": "sha512-/3iiEEHDsJuj9QU09gbyWGSUxDboFcD7Nj6dnHIlboWSodxXAoaY/zlNMHeYAC0WsERMqgO9a7UaM77CsYgWcg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.6.tgz", + "integrity": "sha512-pCtPHhpRZHfwdA5G1Gpk5mIzMA99hv0R8S/Ket50Rw+S+8hkt3wBWqdqHaPw0CuUYxdshUgsPiLQ5fAs4ASMhw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-jsx": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.6.tgz", + "integrity": "sha512-F7EsNp5StNDouSSdYyDSxh4J+xvj/JqG+Cb6s2fA+jCyHOzigG5vTwgH8tU2U8Voyiu5zCG9bAK49wTr/wPH0w==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.6.tgz", + "integrity": "sha512-0HoDQlFJJkXRyV2N+xOpUETbKHcouSwijRQbKWVtxsPoq5bbB30qZag9/pSc5xcWVYjTHlLsBsY+hZDnzQTPNw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.6.tgz", + "integrity": "sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.6.tgz", + "integrity": "sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.6.tgz", + "integrity": "sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.6.tgz", + "integrity": "sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.6.tgz", + "integrity": "sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.6.tgz", + "integrity": "sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.6.tgz", + "integrity": "sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.6.tgz", + "integrity": "sha512-H0i+hDLmaYYSt6KU9cZE0gb3Cbssa/oxWis7PX4ofQzbvsfix9Lbh8SRk7LCPDlLWJHUiFeHU0qRRpF/4Zv7mQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-typescript": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.6.tgz", + "integrity": "sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.6.tgz", + "integrity": "sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.6.tgz", + "integrity": "sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.6.tgz", + "integrity": "sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/preset-env/-/preset-env-7.24.6.tgz", + "integrity": "sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==", + "dependencies": { + "@babel/compat-data": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.6", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.6", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.6", + "@babel/plugin-syntax-import-attributes": "^7.24.6", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.6", + "@babel/plugin-transform-async-generator-functions": "^7.24.6", + "@babel/plugin-transform-async-to-generator": "^7.24.6", + "@babel/plugin-transform-block-scoped-functions": "^7.24.6", + "@babel/plugin-transform-block-scoping": "^7.24.6", + "@babel/plugin-transform-class-properties": "^7.24.6", + "@babel/plugin-transform-class-static-block": "^7.24.6", + "@babel/plugin-transform-classes": "^7.24.6", + "@babel/plugin-transform-computed-properties": "^7.24.6", + "@babel/plugin-transform-destructuring": "^7.24.6", + "@babel/plugin-transform-dotall-regex": "^7.24.6", + "@babel/plugin-transform-duplicate-keys": "^7.24.6", + "@babel/plugin-transform-dynamic-import": "^7.24.6", + "@babel/plugin-transform-exponentiation-operator": "^7.24.6", + "@babel/plugin-transform-export-namespace-from": "^7.24.6", + "@babel/plugin-transform-for-of": "^7.24.6", + "@babel/plugin-transform-function-name": "^7.24.6", + "@babel/plugin-transform-json-strings": "^7.24.6", + "@babel/plugin-transform-literals": "^7.24.6", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.6", + "@babel/plugin-transform-member-expression-literals": "^7.24.6", + "@babel/plugin-transform-modules-amd": "^7.24.6", + "@babel/plugin-transform-modules-commonjs": "^7.24.6", + "@babel/plugin-transform-modules-systemjs": "^7.24.6", + "@babel/plugin-transform-modules-umd": "^7.24.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.6", + "@babel/plugin-transform-new-target": "^7.24.6", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.6", + "@babel/plugin-transform-numeric-separator": "^7.24.6", + "@babel/plugin-transform-object-rest-spread": "^7.24.6", + "@babel/plugin-transform-object-super": "^7.24.6", + "@babel/plugin-transform-optional-catch-binding": "^7.24.6", + "@babel/plugin-transform-optional-chaining": "^7.24.6", + "@babel/plugin-transform-parameters": "^7.24.6", + "@babel/plugin-transform-private-methods": "^7.24.6", + "@babel/plugin-transform-private-property-in-object": "^7.24.6", + "@babel/plugin-transform-property-literals": "^7.24.6", + "@babel/plugin-transform-regenerator": "^7.24.6", + "@babel/plugin-transform-reserved-words": "^7.24.6", + "@babel/plugin-transform-shorthand-properties": "^7.24.6", + "@babel/plugin-transform-spread": "^7.24.6", + "@babel/plugin-transform-sticky-regex": "^7.24.6", + "@babel/plugin-transform-template-literals": "^7.24.6", + "@babel/plugin-transform-typeof-symbol": "^7.24.6", + "@babel/plugin-transform-unicode-escapes": "^7.24.6", + "@babel/plugin-transform-unicode-property-regex": "^7.24.6", + "@babel/plugin-transform-unicode-regex": "^7.24.6", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.6", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/preset-react/-/preset-react-7.24.6.tgz", + "integrity": "sha512-8mpzh1bWvmINmwM3xpz6ahu57mNaWavMm+wBNjQ4AFu1nghKBiIRET7l/Wmj4drXany/BBGjJZngICcD98F1iw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-transform-react-display-name": "^7.24.6", + "@babel/plugin-transform-react-jsx": "^7.24.6", + "@babel/plugin-transform-react-jsx-development": "^7.24.6", + "@babel/plugin-transform-react-pure-annotations": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/preset-typescript/-/preset-typescript-7.24.6.tgz", + "integrity": "sha512-U10aHPDnokCFRXgyT/MaIRTivUu2K/mu0vJlwRS9LxJmJet+PFQNKpggPyFCUtC6zWSBPjvxjnpNkAn3Uw2m5w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-syntax-jsx": "^7.24.6", + "@babel/plugin-transform-modules-commonjs": "^7.24.6", + "@babel/plugin-transform-typescript": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, + "node_modules/@babel/runtime": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/runtime/-/runtime-7.24.6.tgz", + "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/template/-/template-7.24.6.tgz", + "integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==", + "dependencies": { + "@babel/code-frame": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/traverse/-/traverse-7.24.6.tgz", + "integrity": "sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==", + "dependencies": { + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/types/-/types-7.24.6.tgz", + "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==", + "dependencies": { + "@babel/helper-string-parser": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@digitak/grubber": { + "version": "3.1.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@digitak/grubber/-/grubber-3.1.4.tgz", + "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==" + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://mirrors.cloud.tencent.com/npm/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@floating-ui/core/-/core-1.6.2.tgz", + "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==", + "dependencies": { + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@floating-ui/dom/-/dom-1.6.5.tgz", + "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@floating-ui/react-dom/-/react-dom-2.1.0.tgz", + "integrity": "sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@floating-ui/utils/-/utils-0.2.2.tgz", + "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" + }, + "node_modules/@gql.tada/cli-utils": { + "version": "1.3.9", + "resolved": "https://mirrors.cloud.tencent.com/npm/@gql.tada/cli-utils/-/cli-utils-1.3.9.tgz", + "integrity": "sha512-oRb7SG/+csx9CiypSJTI21KaLfulOUnhX1vxg4FXi2snub9XShkGR2XnnlJVTAOZXY9Vcxti1NutAElxdDkycA==", + "dependencies": { + "@0no-co/graphqlsp": "^1.12.1", + "@gql.tada/internal": "1.0.0", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@gql.tada/internal": { + "version": "1.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@gql.tada/internal/-/internal-1.0.0.tgz", + "integrity": "sha512-B55aIYyZn5ewdgMqoJciPAwF5DKYX6HBabTU+ap/dpNH3EgJrLomc8Y8w+MCxCyOx+dXL9OduT6eWnVr7J7Eyg==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://mirrors.cloud.tencent.com/npm/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://mirrors.cloud.tencent.com/npm/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://mirrors.cloud.tencent.com/npm/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://mirrors.cloud.tencent.com/npm/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/dapp-kit": { + "version": "0.12.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mysten/dapp-kit/-/dapp-kit-0.12.8.tgz", + "integrity": "sha512-ai53xLq3rVbRejQI/Y45CY4nDjUx2y9qz/rkJ9HtavZQdDarVPu0OFsEFD5Z6npiJcfcaXVZwikVE4b0bS/aRA==", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@mysten/wallet-standard": "0.11.2", + "@mysten/zksend": "0.4.2", + "@radix-ui/react-dialog": "^1.0.4", + "@radix-ui/react-dropdown-menu": "^2.0.5", + "@radix-ui/react-slot": "^1.0.2", + "@vanilla-extract/css": "^1.13.0", + "@vanilla-extract/dynamic": "^2.0.3", + "@vanilla-extract/recipes": "^0.5.0", + "clsx": "^2.0.0", + "zustand": "^4.4.1" + }, + "peerDependencies": { + "@tanstack/react-query": "^5.0.0", + "react": "*" + } + }, + "node_modules/@mysten/sui.js": { + "version": "0.51.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mysten/sui.js/-/sui.js-0.51.2.tgz", + "integrity": "sha512-RRG/VHhVvkQlWqodFZagRxVDo3SbXh4e3xTBplhPNNyybugbWj/V+wGrNv5/KtxfVxHBw6jTCoB798ijqPBq7g==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.4.1", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@mysten/wallet-standard": { + "version": "0.11.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mysten/wallet-standard/-/wallet-standard-0.11.2.tgz", + "integrity": "sha512-wDuXHwmdYS+9ewH6w4Fg67QwDpYN6JTKPWC/fuEWRuHy4uS77DfrIG6KHtU0tReMGapevXovKpw6WoSHJHDDHg==", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@wallet-standard/core": "1.0.3" + } + }, + "node_modules/@mysten/zksend": { + "version": "0.4.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mysten/zksend/-/zksend-0.4.2.tgz", + "integrity": "sha512-kEJ6bHtc1pBSk9aSY4HeQWcoJ9xWzwr1AoFlC/urOYdSWxgknLPhx3RjjReiVclI8olMFkrqUa2y+PWelMC05g==", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@mysten/wallet-standard": "0.11.2", + "mitt": "^3.0.1", + "nanostores": "^0.9.3", + "valibot": "^0.25.0" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@radix-ui/colors": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/colors/-/colors-3.0.0.tgz", + "integrity": "sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==" + }, + "node_modules/@radix-ui/number": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/number/-/number-1.0.1.tgz", + "integrity": "sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/react-accessible-icon": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.0.3.tgz", + "integrity": "sha512-duVGKeWPSUILr/MdlPxV+GeULTc2rS1aihGdQ3N2qCUPMgxYLxvAsHJM3mCVLF8d5eK+ympmB22mb1F3a5biNw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-visually-hidden": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-alert-dialog": { + "version": "1.0.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.0.5.tgz", + "integrity": "sha512-OrVIOcZL0tl6xibeuGt5/+UxoT2N27KCFOPjFyfXMnchxSHZ/OW7cCX2nGlIYJrbHK/fczPcFzAwvNBB6XBNMA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dialog": "1.0.5", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz", + "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-aspect-ratio": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.0.3.tgz", + "integrity": "sha512-fXR5kbMan9oQqMuacfzlGG/SQMcmMlZ4wrvpckv8SgUulD0MMpspxJrxg/Gp/ISV3JfV1AeSWTYK9GvxA4ySwA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-avatar/-/react-avatar-1.0.4.tgz", + "integrity": "sha512-kVK2K7ZD3wwj3qhle0ElXhOjbezIgyl2hVvgwfIdexL3rN6zJmy5AqqIf+D31lxVppdzV8CjAfZ6PklkmInZLw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox": { + "version": "1.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-checkbox/-/react-checkbox-1.0.4.tgz", + "integrity": "sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-use-previous": "1.0.1", + "@radix-ui/react-use-size": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-collection/-/react-collection-1.0.3.tgz", + "integrity": "sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context-menu": { + "version": "2.1.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-context-menu/-/react-context-menu-2.1.5.tgz", + "integrity": "sha512-R5XaDj06Xul1KGb+WP8qiOh7tKJNz2durpLBXAGZjSVtctcRFCuEvy2gtMwRJGePwQQE5nV77gs4FwRi8T+r2g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-menu": "2.0.6", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.0.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz", + "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-direction/-/react-direction-1.0.1.tgz", + "integrity": "sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.0.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", + "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-escape-keydown": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.0.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.0.6.tgz", + "integrity": "sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-menu": "2.0.6", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", + "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", + "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form": { + "version": "0.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-form/-/react-form-0.0.3.tgz", + "integrity": "sha512-kgE+Z/haV6fxE5WqIXj05KkaXa3OkZASoTDy25yX2EIp/x0c54rOH/vFr5nOZTg7n7T1z8bSyXmiVIFP9bbhPQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-label": "2.0.2", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-hover-card": { + "version": "1.0.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-hover-card/-/react-hover-card-1.0.7.tgz", + "integrity": "sha512-OcUN2FU0YpmajD/qkph3XzMcK/NmSk9hGWnjV68p6QiZMgILugusgQwnLSDs3oFSJYGKf3Y49zgFedhGh04k9A==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-icons": { + "version": "1.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-icons/-/react-icons-1.3.0.tgz", + "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==", + "peerDependencies": { + "react": "^16.x || ^17.x || ^18.x" + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-label/-/react-label-2.0.2.tgz", + "integrity": "sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.0.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-menu/-/react-menu-2.0.6.tgz", + "integrity": "sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-collection": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-roving-focus": "1.0.4", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-callback-ref": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.0.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-popover/-/react-popover-1.0.7.tgz", + "integrity": "sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-popper/-/react-popper-1.1.3.tgz", + "integrity": "sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1", + "@radix-ui/react-use-rect": "1.0.1", + "@radix-ui/react-use-size": "1.0.1", + "@radix-ui/rect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", + "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", + "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-radio-group": { + "version": "1.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-radio-group/-/react-radio-group-1.1.3.tgz", + "integrity": "sha512-x+yELayyefNeKeTx4fjK6j99Fs6c4qKm3aY38G3swQVTN6xMpsrbigC0uHs2L//g8q4qR7qOcww8430jJmi2ag==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-roving-focus": "1.0.4", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-use-previous": "1.0.1", + "@radix-ui/react-use-size": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz", + "integrity": "sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-collection": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.0.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-scroll-area/-/react-scroll-area-1.0.5.tgz", + "integrity": "sha512-b6PAgH4GQf9QEn8zbT2XUHpW5z8BzqEc7Kl11TwDrvuTrxlkcjTD5qa/bxgKr+nmuXKu4L/W5UZ4mlP/VG/5Gw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/number": "1.0.1", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-select/-/react-select-2.0.0.tgz", + "integrity": "sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/number": "1.0.1", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-collection": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1", + "@radix-ui/react-use-previous": "1.0.1", + "@radix-ui/react-visually-hidden": "1.0.3", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-separator/-/react-separator-1.0.3.tgz", + "integrity": "sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slider": { + "version": "1.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-slider/-/react-slider-1.1.2.tgz", + "integrity": "sha512-NKs15MJylfzVsCagVSWKhGGLNR1W9qWs+HtgbmjjVUB3B9+lb3PYoXxVju3kOrpf0VKyVCtZp+iTwVoqpa1Chw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/number": "1.0.1", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-collection": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1", + "@radix-ui/react-use-previous": "1.0.1", + "@radix-ui/react-use-size": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-switch/-/react-switch-1.0.3.tgz", + "integrity": "sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-use-previous": "1.0.1", + "@radix-ui/react-use-size": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-tabs/-/react-tabs-1.0.4.tgz", + "integrity": "sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-roving-focus": "1.0.4", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.0.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-tooltip/-/react-tooltip-1.0.7.tgz", + "integrity": "sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-visually-hidden": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", + "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", + "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-use-previous/-/react-use-previous-1.0.1.tgz", + "integrity": "sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz", + "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/rect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz", + "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz", + "integrity": "sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/rect/-/rect-1.0.1.tgz", + "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/themes": { + "version": "2.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@radix-ui/themes/-/themes-2.0.3.tgz", + "integrity": "sha512-yaXQ8aWT2P1CQ0Xe6YCRD9HXsfMTvKkrIYkrc4aitCzhGTLS0sjtTqKmrxIWMVA+3DIbEuG9K/8aAMRJBhep8g==", + "dependencies": { + "@radix-ui/colors": "^3.0.0", + "@radix-ui/primitive": "^1.0.1", + "@radix-ui/react-accessible-icon": "^1.0.3", + "@radix-ui/react-alert-dialog": "^1.0.5", + "@radix-ui/react-aspect-ratio": "^1.0.3", + "@radix-ui/react-avatar": "^1.0.4", + "@radix-ui/react-checkbox": "^1.0.4", + "@radix-ui/react-context-menu": "^2.1.5", + "@radix-ui/react-dialog": "^1.0.5", + "@radix-ui/react-direction": "^1.0.1", + "@radix-ui/react-dropdown-menu": "^2.0.6", + "@radix-ui/react-form": "^0.0.3", + "@radix-ui/react-hover-card": "^1.0.7", + "@radix-ui/react-popover": "^1.0.7", + "@radix-ui/react-portal": "^1.0.4", + "@radix-ui/react-radio-group": "^1.1.3", + "@radix-ui/react-scroll-area": "^1.0.5", + "@radix-ui/react-select": "^2.0.0", + "@radix-ui/react-separator": "^1.0.3", + "@radix-ui/react-slider": "^1.1.2", + "@radix-ui/react-slot": "^1.0.2", + "@radix-ui/react-switch": "^1.0.3", + "@radix-ui/react-tabs": "^1.0.4", + "@radix-ui/react-tooltip": "^1.0.7", + "@radix-ui/react-use-callback-ref": "^1.0.1", + "@radix-ui/react-visually-hidden": "^1.0.3", + "classnames": "^2.3.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@scure/base": { + "version": "1.1.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/@scure/base/-/base-1.1.6.tgz", + "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "node_modules/@suiet/wallet-kit": { + "version": "0.2.23", + "resolved": "https://mirrors.cloud.tencent.com/npm/@suiet/wallet-kit/-/wallet-kit-0.2.23.tgz", + "integrity": "sha512-aFKSru7k8J9CoD+HiIFyCizqVnoncKAbpiuupwnNxwukkWfGJcPqMXU3/+kjF5A9gjx/vMicazBvCwjV2MpHgg==", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@mysten/wallet-standard": "0.11.2", + "@radix-ui/react-dialog": "^1.0.2", + "@suiet/wallet-sdk": "0.2.20", + "@svgr/rollup": "^6.5.1", + "@wallet-standard/core": "1.0.3", + "buffer": "^6.0.3", + "classnames": "^2.3.2", + "lodash-es": "^4.17.21", + "mitt": "^3.0.0", + "react-query": "^3.39.2" + }, + "peerDependencies": { + "@mysten/sui.js": "0.51.2", + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@suiet/wallet-sdk": { + "version": "0.2.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@suiet/wallet-sdk/-/wallet-sdk-0.2.20.tgz", + "integrity": "sha512-2VisygA8I8ldb/rcQDkOVbib8ZxjDuoqhqjZ8HfPTkLNzzAV1WwCdJ8L9982EIBfNHDM3vfE4SeXR6kwsEXmQA==", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@mysten/wallet-standard": "0.11.2", + "@noble/hashes": "^1.3.0", + "buffer": "^6.0.3", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "peerDependencies": { + "@mysten/sui.js": "0.51.2" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "6.5.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", + "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "6.5.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", + "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "6.5.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", + "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "6.5.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", + "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "6.5.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", + "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "6.5.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", + "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "6.5.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", + "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", + "@svgr/babel-plugin-remove-jsx-attribute": "*", + "@svgr/babel-plugin-remove-jsx-empty-expression": "*", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", + "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", + "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", + "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", + "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "6.5.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@svgr/core/-/core-6.5.1.tgz", + "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "6.5.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", + "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "dependencies": { + "@babel/types": "^7.20.0", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "6.5.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", + "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/hast-util-to-babel-ast": "^6.5.1", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "^6.0.0" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "6.5.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", + "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "dependencies": { + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "svgo": "^2.8.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/rollup": { + "version": "6.5.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@svgr/rollup/-/rollup-6.5.1.tgz", + "integrity": "sha512-GeUfq0grJfpcn2jRWRaZ4npn27nnWK21vUj6MqDqknuJnEqGADcZZjO9wrUAaPLr3InAnQi0Z7nwiNUdzkaj6A==", + "dependencies": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-constant-elements": "^7.18.12", + "@babel/preset-env": "^7.19.4", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@rollup/pluginutils": "^4.2.1", + "@svgr/core": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "@svgr/plugin-svgo": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@swc/core": { + "version": "1.5.24", + "resolved": "https://mirrors.cloud.tencent.com/npm/@swc/core/-/core-1.5.24.tgz", + "integrity": "sha512-Eph9zvO4xvqWZGVzTdtdEJ0Vqf0VIML/o/e4Qd2RLOqtfgnlRi7avmMu5C0oqciJ0tk+hqdUKVUZ4JPoPaiGvQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.7" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.5.24", + "@swc/core-darwin-x64": "1.5.24", + "@swc/core-linux-arm-gnueabihf": "1.5.24", + "@swc/core-linux-arm64-gnu": "1.5.24", + "@swc/core-linux-arm64-musl": "1.5.24", + "@swc/core-linux-x64-gnu": "1.5.24", + "@swc/core-linux-x64-musl": "1.5.24", + "@swc/core-win32-arm64-msvc": "1.5.24", + "@swc/core-win32-ia32-msvc": "1.5.24", + "@swc/core-win32-x64-msvc": "1.5.24" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.5.24", + "resolved": "https://mirrors.cloud.tencent.com/npm/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.24.tgz", + "integrity": "sha512-M7oLOcC0sw+UTyAuL/9uyB9GeO4ZpaBbH76JSH6g1m0/yg7LYJZGRmplhDmwVSDAR5Fq4Sjoi1CksmmGkgihGA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.5.24", + "resolved": "https://mirrors.cloud.tencent.com/npm/@swc/core-darwin-x64/-/core-darwin-x64-1.5.24.tgz", + "integrity": "sha512-MfcFjGGYognpSBSos2pYUNYJSmqEhuw5ceGr6qAdME7ddbjGXliza4W6FggsM+JnWwpqa31+e7/R+GetW4WkaQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.5.24", + "resolved": "https://mirrors.cloud.tencent.com/npm/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.24.tgz", + "integrity": "sha512-amI2pwtcWV3E/m/nf+AQtn1LWDzKLZyjCmWd3ms7QjEueWYrY8cU1Y4Wp7wNNsxIoPOi8zek1Uj2wwFD/pttNQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.5.24", + "resolved": "https://mirrors.cloud.tencent.com/npm/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.24.tgz", + "integrity": "sha512-sTSvmqMmgT1ynH/nP75Pc51s+iT4crZagHBiDOf5cq+kudUYjda9lWMs7xkXB/TUKFHPCRK0HGunl8bkwiIbuw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.5.24", + "resolved": "https://mirrors.cloud.tencent.com/npm/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.24.tgz", + "integrity": "sha512-vd2/hfOBGbrX21FxsFdXCUaffjkHvlZkeE2UMRajdXifwv79jqOHIJg3jXG1F3ZrhCghCzirFts4tAZgcG8XWg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.5.24", + "resolved": "https://mirrors.cloud.tencent.com/npm/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.24.tgz", + "integrity": "sha512-Zrdzi7NqzQxm2BvAG5KyOSBEggQ7ayrxh599AqqevJmsUXJ8o2nMiWQOBvgCGp7ye+Biz3pvZn1EnRzAp+TpUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.5.24", + "resolved": "https://mirrors.cloud.tencent.com/npm/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.24.tgz", + "integrity": "sha512-1F8z9NRi52jdZQCGc5sflwYSctL6omxiVmIFVp8TC9nngjQKc00TtX/JC2Eo2HwvgupkFVl5YQJidAck9YtmJw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.5.24", + "resolved": "https://mirrors.cloud.tencent.com/npm/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.24.tgz", + "integrity": "sha512-cKpP7KvS6Xr0jFSTBXY53HZX/YfomK5EMQYpCVDOvfsZeYHN20sQSKXfpVLvA/q2igVt1zzy1XJcOhpJcgiKLg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.5.24", + "resolved": "https://mirrors.cloud.tencent.com/npm/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.24.tgz", + "integrity": "sha512-IoPWfi0iwqjZuf7gE223+B97/ZwkKbu7qL5KzGP7g3hJrGSKAvv7eC5Y9r2iKKtLKyv5R/T6Ho0kFR/usi7rHw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.5.24", + "resolved": "https://mirrors.cloud.tencent.com/npm/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.24.tgz", + "integrity": "sha512-zHgF2k1uVJL8KIW+PnVz1To4a3Cz9THbh2z2lbehaF/gKHugH4c3djBozU4das1v35KOqf5jWIEviBLql2wDLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true + }, + "node_modules/@swc/types": { + "version": "0.1.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/@swc/types/-/types-0.1.7.tgz", + "integrity": "sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ==", + "dev": true, + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.40.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@tanstack/query-core/-/query-core-5.40.0.tgz", + "integrity": "sha512-eD8K8jsOIq0Z5u/QbvOmfvKKE/XC39jA7yv4hgpl/1SRiU+J8QCIwgM/mEHuunQsL87dcvnHqSVLmf9pD4CiaA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.40.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@tanstack/react-query/-/react-query-5.40.0.tgz", + "integrity": "sha512-iv/W0Axc4aXhFzkrByToE1JQqayxTPNotCoSCnarR/A1vDIHaoKpg7FTIfP3Ev2mbKn1yrxq0ZKYUdLEJxs6Tg==", + "dependencies": { + "@tanstack/query-core": "5.40.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "devOptional": true + }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "devOptional": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "devOptional": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vanilla-extract/css": { + "version": "1.15.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vanilla-extract/css/-/css-1.15.2.tgz", + "integrity": "sha512-Bi61iCAtojCuqvV+FYaF5i69vBjuMQJpHPdpgKYyQvx+e2Hp79V0ELglyYOdcyg9Wh0k0MFwgCDipVd7EloTXQ==", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@vanilla-extract/private": "^1.0.5", + "css-what": "^6.1.0", + "cssesc": "^3.0.0", + "csstype": "^3.0.7", + "dedent": "^1.5.3", + "deep-object-diff": "^1.1.9", + "deepmerge": "^4.2.2", + "media-query-parser": "^2.0.2", + "modern-ahocorasick": "^1.0.0", + "picocolors": "^1.0.0" + } + }, + "node_modules/@vanilla-extract/dynamic": { + "version": "2.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vanilla-extract/dynamic/-/dynamic-2.1.1.tgz", + "integrity": "sha512-iqf736036ujEIKsIq28UsBEMaLC2vR2DhwKyrG3NDb/fRy9qL9FKl1TqTtBV4daU30Uh3saeik4vRzN8bzQMbw==", + "dependencies": { + "@vanilla-extract/private": "^1.0.5" + } + }, + "node_modules/@vanilla-extract/private": { + "version": "1.0.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vanilla-extract/private/-/private-1.0.5.tgz", + "integrity": "sha512-6YXeOEKYTA3UV+RC8DeAjFk+/okoNz/h88R+McnzA2zpaVqTR/Ep+vszkWYlGBcMNO7vEkqbq5nT/JMMvhi+tw==" + }, + "node_modules/@vanilla-extract/recipes": { + "version": "0.5.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vanilla-extract/recipes/-/recipes-0.5.3.tgz", + "integrity": "sha512-SPREq1NmaoKuvJeOV0pppOkwy3pWZUoDufsyQ6iHrbkHhAU7XQqG9o0iZSmg5JoVgDLIiOr9djQb0x9wuxig7A==", + "peerDependencies": { + "@vanilla-extract/css": "^1.0.0" + } + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.7.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.0.tgz", + "integrity": "sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==", + "dev": true, + "dependencies": { + "@swc/core": "^1.5.7" + }, + "peerDependencies": { + "vite": "^4 || ^5" + } + }, + "node_modules/@vitest/expect": { + "version": "1.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "dependencies": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.2.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@volar/language-core/-/language-core-2.2.5.tgz", + "integrity": "sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==", + "dependencies": { + "@volar/source-map": "2.2.5" + } + }, + "node_modules/@volar/source-map": { + "version": "2.2.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@volar/source-map/-/source-map-2.2.5.tgz", + "integrity": "sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==", + "dependencies": { + "muggle-string": "^0.4.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dependencies": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/language-core/-/language-core-2.0.19.tgz", + "integrity": "sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==", + "dependencies": { + "@volar/language-core": "~2.2.4", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/@wallet-standard/app": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@wallet-standard/app/-/app-1.0.1.tgz", + "integrity": "sha512-LnLYq2Vy2guTZ8GQKKSXQK3+FRGPil75XEdkZqE6fiLixJhZJoJa5hT7lXxwe0ykVTt9LEThdTbOpT7KadS26Q==", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/base": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@wallet-standard/base/-/base-1.0.1.tgz", + "integrity": "sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w==", + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/core": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@wallet-standard/core/-/core-1.0.3.tgz", + "integrity": "sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==", + "dependencies": { + "@wallet-standard/app": "^1.0.1", + "@wallet-standard/base": "^1.0.1", + "@wallet-standard/features": "^1.0.3", + "@wallet-standard/wallet": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/features": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@wallet-standard/features/-/features-1.0.3.tgz", + "integrity": "sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/wallet": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@wallet-standard/wallet/-/wallet-1.0.1.tgz", + "integrity": "sha512-qkhJeuQU2afQTZ02yMZE5SFc91Fo3hyFjFkpQglHudENNyiSG0oUKcIjky8X32xVSaumgTZSQUAzpXnCTWHzKQ==", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://mirrors.cloud.tencent.com/npm/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://mirrors.cloud.tencent.com/npm/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/broadcast-channel": { + "version": "3.7.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/broadcast-channel/-/broadcast-channel-3.7.0.tgz", + "integrity": "sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "detect-node": "^2.1.0", + "js-sha3": "0.8.0", + "microseconds": "0.2.0", + "nano-time": "1.0.0", + "oblivious-set": "1.0.0", + "rimraf": "3.0.2", + "unload": "2.2.0" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://mirrors.cloud.tencent.com/npm/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001625", + "resolved": "https://mirrors.cloud.tencent.com/npm/caniuse-lite/-/caniuse-lite-1.0.30001625.tgz", + "integrity": "sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/code-red/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/core-js-compat": { + "version": "3.37.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "peer": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://mirrors.cloud.tencent.com/npm/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==" + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deep-object-diff": { + "version": "1.1.9", + "resolved": "https://mirrors.cloud.tencent.com/npm/deep-object-diff/-/deep-object-diff-1.1.9.tgz", + "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.787", + "resolved": "https://mirrors.cloud.tencent.com/npm/electron-to-chromium/-/electron-to-chromium-1.4.787.tgz", + "integrity": "sha512-d0EFmtLPjctczO3LogReyM2pbBiiZbnsKnGF+cdZhsYzHm/A0GV7W94kqzLD8SN4O3f3iHlgLUChqghgyznvCQ==" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.7.tgz", + "integrity": "sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://mirrors.cloud.tencent.com/npm/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrun": { + "version": "3.2.26", + "resolved": "https://mirrors.cloud.tencent.com/npm/esrun/-/esrun-3.2.26.tgz", + "integrity": "sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==", + "dependencies": { + "@digitak/grubber": "^3.1.4", + "chokidar": "^3.5.1", + "esbuild": "^0.17.4" + }, + "bin": { + "esrun": "bin.js" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "engines": { + "node": "*" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://mirrors.cloud.tencent.com/npm/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gql.tada": { + "version": "1.7.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/gql.tada/-/gql.tada-1.7.5.tgz", + "integrity": "sha512-GepPTee+FWSVVZQ7GiJHzsGNo7gOb59kcn4mUPYLlkbpeJfOUwpuoB05ZNaXG0W4qZVPd1I7R2UgMHBjY1lGlQ==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5", + "@gql.tada/cli-utils": "1.3.9", + "@gql.tada/internal": "1.0.0" + }, + "bin": { + "gql-tada": "bin/cli.js", + "gql.tada": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "peer": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "peer": true + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://mirrors.cloud.tencent.com/npm/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://mirrors.cloud.tencent.com/npm/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/match-sorter": { + "version": "6.3.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/match-sorter/-/match-sorter-6.3.4.tgz", + "integrity": "sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==", + "dependencies": { + "@babel/runtime": "^7.23.8", + "remove-accents": "0.5.0" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://mirrors.cloud.tencent.com/npm/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "peer": true + }, + "node_modules/media-query-parser": { + "version": "2.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/media-query-parser/-/media-query-parser-2.0.2.tgz", + "integrity": "sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==", + "dependencies": { + "@babel/runtime": "^7.12.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/microseconds": { + "version": "0.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/microseconds/-/microseconds-0.2.0.tgz", + "integrity": "sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://mirrors.cloud.tencent.com/npm/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + }, + "node_modules/mlly": { + "version": "1.7.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/mlly/-/mlly-1.7.0.tgz", + "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.0", + "ufo": "^1.5.3" + } + }, + "node_modules/modern-ahocorasick": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/modern-ahocorasick/-/modern-ahocorasick-1.0.1.tgz", + "integrity": "sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "node_modules/nano-time": { + "version": "1.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/nano-time/-/nano-time-1.0.0.tgz", + "integrity": "sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==", + "dependencies": { + "big-integer": "^1.6.16" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanostores": { + "version": "0.9.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/nanostores/-/nanostores-0.9.5.tgz", + "integrity": "sha512-Z+p+g8E7yzaWwOe5gEUB2Ox0rCEeXWYIZWmYvw/ajNYX8DlXdMvMDj8DWfM/subqPAcsf8l8Td4iAwO1DeIIRQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/navi-sdk": { + "version": "1.1.23", + "resolved": "https://mirrors.cloud.tencent.com/npm/navi-sdk/-/navi-sdk-1.1.23.tgz", + "integrity": "sha512-ikTjgPXj6XzTk90j8Fy5cjaIaO1z44Odq+jmI0p27kceX2l50pgHyN3k0oyIffW9Q2/XkWAyoUJzDYVT7W1PRA==", + "dependencies": { + "@mysten/sui.js": "^0.50.1", + "axios": "^1.6.7", + "esrun": "^3.2.26", + "tsconfig-paths": "^4.2.0", + "vitest": "^1.3.1" + } + }, + "node_modules/navi-sdk/node_modules/@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://mirrors.cloud.tencent.com/npm/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/oblivious-set": { + "version": "1.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/oblivious-set/-/oblivious-set-1.0.0.tgz", + "integrity": "sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/periscopic/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "1.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://mirrors.cloud.tencent.com/npm/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/react-query": { + "version": "3.39.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/react-query/-/react-query-3.39.3.tgz", + "integrity": "sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "broadcast-channel": "^3.4.1", + "match-sorter": "^6.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll": { + "version": "2.5.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", + "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.3", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remove-accents": { + "version": "0.5.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/remove-accents/-/remove-accents-0.5.0.tgz", + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==" + }, + "node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svelte": { + "version": "4.2.17", + "resolved": "https://mirrors.cloud.tencent.com/npm/svelte/-/svelte-4.2.17.tgz", + "integrity": "sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/svelte2tsx": { + "version": "0.7.9", + "resolved": "https://mirrors.cloud.tencent.com/npm/svelte2tsx/-/svelte2tsx-0.7.9.tgz", + "integrity": "sha512-Rm+0LAwg9wT4H2IsR8EaM9EWErTzi9LmuZKxkH5b1ua94XjQmwHstBP4VabLgA9AE6XmwBg+xK7Cjzwfm6ustQ==", + "dependencies": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + }, + "peerDependencies": { + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", + "typescript": "^4.9.4 || ^5.0.0" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://mirrors.cloud.tencent.com/npm/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/tinybench": { + "version": "2.8.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==" + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unload": { + "version": "2.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/unload/-/unload-2.2.0.tgz", + "integrity": "sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==", + "dependencies": { + "@babel/runtime": "^7.6.2", + "detect-node": "^2.0.4" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://mirrors.cloud.tencent.com/npm/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/valibot": { + "version": "0.25.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/valibot/-/valibot-0.25.0.tgz", + "integrity": "sha512-cmD0ca15oyAbT75iYLNW6uU6doAeIwYfOshpXka/E1Bx4frzbkrgb7gvkI7K0YK/DVOksei4FfxWfRoBP3NFTg==" + }, + "node_modules/vite": { + "version": "4.5.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/vite/-/vite-4.5.3.tgz", + "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/vite-node/node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/vite-node/node_modules/vite": { + "version": "5.2.12", + "resolved": "https://mirrors.cloud.tencent.com/npm/vite/-/vite-5.2.12.tgz", + "integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==", + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/vitest": { + "version": "1.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "dependencies": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/vitest/node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/vitest/node_modules/vite": { + "version": "5.2.12", + "resolved": "https://mirrors.cloud.tencent.com/npm/vite/-/vite-5.2.12.tgz", + "integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==", + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://mirrors.cloud.tencent.com/npm/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zustand": { + "version": "4.5.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/zustand/-/zustand-4.5.2.tgz", + "integrity": "sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g==", + "dependencies": { + "use-sync-external-store": "1.2.0" + }, + "engines": { + "node": ">=12.7.0" + }, + "peerDependencies": { + "@types/react": ">=16.8", + "immer": ">=9.0.6", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + } + } + } + } +} diff --git a/mover/Serlight/code/task6/package.json b/mover/Serlight/code/task6/package.json new file mode 100644 index 000000000..1b0d5f3e6 --- /dev/null +++ b/mover/Serlight/code/task6/package.json @@ -0,0 +1,37 @@ +{ + "name": "navi", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@mysten/dapp-kit": "0.12.8", + "@mysten/sui.js": "0.51.2", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@suiet/wallet-kit": "0.2.23", + "@tanstack/react-query": "^5.0.0", + "navi-sdk": "^1.1.23", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } +} diff --git a/mover/Serlight/code/task6/prettier.config.cjs b/mover/Serlight/code/task6/prettier.config.cjs new file mode 100644 index 000000000..c07541106 --- /dev/null +++ b/mover/Serlight/code/task6/prettier.config.cjs @@ -0,0 +1,4 @@ +// eslint-disable-next-line no-undef +module.exports = { + proseWrap: "always", +}; diff --git a/mover/Serlight/code/task6/src/App.tsx b/mover/Serlight/code/task6/src/App.tsx new file mode 100644 index 000000000..78b5ed743 --- /dev/null +++ b/mover/Serlight/code/task6/src/App.tsx @@ -0,0 +1,39 @@ +import { ConnectButton } from "@mysten/dapp-kit"; +import { Box, Container, Flex, Heading } from "@radix-ui/themes"; +import { WalletStatus } from "./WalletStatus"; + +function App() { + return ( + <> + + + dApp Starter Template + + + + + + + + + + + + + ); +} + +export default App; diff --git a/mover/Serlight/code/task6/src/NaviTx.tsx b/mover/Serlight/code/task6/src/NaviTx.tsx new file mode 100644 index 000000000..92ebfa140 --- /dev/null +++ b/mover/Serlight/code/task6/src/NaviTx.tsx @@ -0,0 +1,75 @@ +import { Container, Text, Button } from "@radix-ui/themes"; +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import { useSignAndExecuteTransactionBlock, useCurrentAccount } from "@mysten/dapp-kit"; +import { pool, Sui, USDC } from 'navi-sdk/dist/address' +import { depositCoin, borrowCoin} from 'navi-sdk/dist/libs/PTB'; +import { PoolConfig, Pool } from "navi-sdk/dist/types"; + +export function NaviTx() { + + const { mutate: signAndExecuteTransaction } = useSignAndExecuteTransactionBlock() + + function prefixInteger(num: number, length: number): string { + return (num / Math.pow(10, length)).toFixed(length).substring(2) + } + + const depostSuiAmount = 1 * (10 ** Sui.decimal); + + function currentTransactionAmount(): number { + const time = new Date() + const transactionAmount = "0." + prefixInteger(time.getMonth(), 2) + prefixInteger(time.getDay(), 2) + prefixInteger(time.getHours(), 2); + return Number(transactionAmount) + } + + const account = useCurrentAccount()!; + + async function executeTX() { + try { + + const transactionBlock = new TransactionBlock(); + transactionBlock.setSender(account!.address); + + const suiPool: PoolConfig = pool[Sui.symbol as keyof Pool]; + // 构造存入的 object , gas and depost amount + const [depost_sui_obj] = transactionBlock.splitCoins( + transactionBlock.gas, + [transactionBlock.pure(depostSuiAmount)] + ); + + await depositCoin(transactionBlock, suiPool, depost_sui_obj, depostSuiAmount); + + const borrow_usdc_amount = currentTransactionAmount() * (10 ** USDC.decimal); + const usdcPool: PoolConfig = pool[USDC.symbol as keyof Pool]; + const [borrow_usdc_obj] = await borrowCoin(transactionBlock, usdcPool, borrow_usdc_amount); + + await depositCoin(transactionBlock, usdcPool, borrow_usdc_obj, borrow_usdc_amount); + debugger + signAndExecuteTransaction({ + transactionBlock: transactionBlock, + account: account, + chain: 'sui::mainnet' + }, { + onSuccess: (response) => { + console.log("success:",response) + }, + onError: (error) => { + console.log("error:", error) + }, + onSettled: (result) => { + console.log("settled:", result) + } + }) + } catch (error) { + console.log("error: ", error) + } + } + + + return ( + + + + + + ); +} \ No newline at end of file diff --git a/mover/Serlight/code/task6/src/OwnedObjects.tsx b/mover/Serlight/code/task6/src/OwnedObjects.tsx new file mode 100644 index 000000000..fa759db0a --- /dev/null +++ b/mover/Serlight/code/task6/src/OwnedObjects.tsx @@ -0,0 +1,42 @@ +import { useCurrentAccount, useSuiClientQuery } from "@mysten/dapp-kit"; +import { Flex, Heading, Text } from "@radix-ui/themes"; + +export function OwnedObjects() { + const account = useCurrentAccount(); + const { data, isPending, error } = useSuiClientQuery( + "getOwnedObjects", + { + owner: account?.address as string, + }, + { + enabled: !!account, + }, + ); + + if (!account) { + return; + } + + if (error) { + return Error: {error.message}; + } + + if (isPending || !data) { + return Loading...; + } + + return ( + + {data.data.length === 0 ? ( + No objects owned by the connected wallet + ) : ( + Objects owned by the connected wallet + )} + {data.data.map((object) => ( + + Object ID: {object.data?.objectId} + + ))} + + ); +} diff --git a/mover/Serlight/code/task6/src/WalletStatus.tsx b/mover/Serlight/code/task6/src/WalletStatus.tsx new file mode 100644 index 000000000..67ad37274 --- /dev/null +++ b/mover/Serlight/code/task6/src/WalletStatus.tsx @@ -0,0 +1,21 @@ +import { useCurrentAccount } from "@mysten/dapp-kit"; +import { Container, Flex, Heading, Text, Button } from "@radix-ui/themes"; +import { NaviTx } from "./NaviTx"; + +export function WalletStatus() { + const account = useCurrentAccount(); + + return ( + + Task6 Navi Transaction + + {account ? ( + + + + ) : ( + Wallet not connected + )} + + ); +} diff --git a/mover/Serlight/code/task6/src/main.tsx b/mover/Serlight/code/task6/src/main.tsx new file mode 100644 index 000000000..bb3579f1a --- /dev/null +++ b/mover/Serlight/code/task6/src/main.tsx @@ -0,0 +1,39 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "@mysten/dapp-kit/dist/index.css"; +import "@radix-ui/themes/styles.css"; + +import { getFullnodeUrl } from "@mysten/sui.js/client"; +import { + SuiClientProvider, + WalletProvider, + createNetworkConfig, +} from "@mysten/dapp-kit"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { Theme } from "@radix-ui/themes"; +import App from "./App.tsx"; + +const queryClient = new QueryClient(); + +const { networkConfig } = createNetworkConfig({ + localnet: { url: getFullnodeUrl("localnet") }, + devnet: { url: getFullnodeUrl("devnet") }, + testnet: { url: getFullnodeUrl("testnet") }, + mainnet: { url: getFullnodeUrl("mainnet") }, +}); + + + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + + + + + + + , +); diff --git a/mover/Serlight/code/task6/src/vite-env.d.ts b/mover/Serlight/code/task6/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/mover/Serlight/code/task6/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mover/Serlight/code/task6/tsconfig.json b/mover/Serlight/code/task6/tsconfig.json new file mode 100644 index 000000000..a7fc6fbf2 --- /dev/null +++ b/mover/Serlight/code/task6/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/Serlight/code/task6/tsconfig.node.json b/mover/Serlight/code/task6/tsconfig.node.json new file mode 100644 index 000000000..42872c59f --- /dev/null +++ b/mover/Serlight/code/task6/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/Serlight/code/task6/vite.config.ts b/mover/Serlight/code/task6/vite.config.ts new file mode 100644 index 000000000..d366e8c8d --- /dev/null +++ b/mover/Serlight/code/task6/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); diff --git a/mover/Serlight/readme.md b/mover/Serlight/readme.md index 4f2902092..ef8b493ba 100644 --- a/mover/Serlight/readme.md +++ b/mover/Serlight/readme.md @@ -34,3 +34,12 @@ - [] swap package id : 0x7168e5002c7feda0447c7c1ab4d475bca7d79a54c1562ff67bad427b815fa6fe - [] call swap CoinA-> CoinB hash : GofkcVuchButPEaUrFWc1NkQwHaFfkwkfRJaNAmM6BZP - [] call swap CoinB-> CoinA hash : GRWS2gMGozSY6eUjjgXGmuJqLZqPfHuTCchjiaDdqXvo + +## 06 + +- [] digest: EC6QbhYNKaFruEuG9LvEFwqyRHebGxRmDriZMcYyXE8K + +## 07 +第一个是网页过的, 第二个是cli 过的 +- [] digest: DBUZp7pSHowF4wAXKa2bZSD23Fguwu2YTyx7wu24jFhR +- [] digest: FuoFUnfpL5hUcJtM1ozd3NSwWsojenGXmiC44gAthcLF diff --git a/mover/Soonogo/README.md b/mover/Soonogo/README.md index 6a0a2d6b1..a6c948cc5 100644 --- a/mover/Soonogo/README.md +++ b/mover/Soonogo/README.md @@ -15,14 +15,15 @@ - [x] package id: 0x14470e13e5fe95d4cecef55369b11483ba1c988b95bda41c18528a3c539aa19b ## 02 move coin -- [] My Coin package id : 0x310336543b5fd5f400c0a68066eed5289f48216d5f445f47677d23ee99874623 -- [] Faucet package id : 0x508ad168492aa2c45764df4e3109b218f529db6a2cf6f94e07ee1c1759e11baf -- [] 转账 `My Coin` hash: CQaHLpHmnnAuMrHPs8MLHSJNuhXr4XyNsPWQAxvsnHWT +- [x] My Coin package id : 0x310336543b5fd5f400c0a68066eed5289f48216d5f445f47677d23ee99874623 +- [x] Faucet package id : 0x508ad168492aa2c45764df4e3109b218f529db6a2cf6f94e07ee1c1759e11baf +- [x] 转账 `My Coin` hash: CQaHLpHmnnAuMrHPs8MLHSJNuhXr4XyNsPWQAxvsnHWT ## 03 move NFT -- [] nft package id : -- [] nft object id : -- [] 转账 nft hash: +- [x] nft package id : 0x5949a05e6c6a70f74324f2867cbb68138686e3a382e05c94f61ced2ee4fae3fc +- [x] nft object id : 0x992ead8231581afc115dbceb86a252adae55bb73a7d05e373790c11158e2ca6b +- [x] 转账 nft hash: 5deqErjDJzarug58ncLne8jcGJ3NQMSDPdzDxA1XqK61 +- [x] mint 浏览器截图: ![mint 浏览器截图](notes/task3_mint_1.png)![mint 浏览器截图](notes/task3_mint_2.png) ## 04 Move Game - [] game package id : diff --git a/mover/Soonogo/code/task3/Move.lock b/mover/Soonogo/code/task3/Move.lock new file mode 100644 index 000000000..2d0e823c6 --- /dev/null +++ b/mover/Soonogo/code/task3/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "DEDE53BD567ECEDC2009BE853A86F47F6BDC3F1F03A6B00FAED274F07E74A18B" +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.24.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x5949a05e6c6a70f74324f2867cbb68138686e3a382e05c94f61ced2ee4fae3fc" +latest-published-id = "0x5949a05e6c6a70f74324f2867cbb68138686e3a382e05c94f61ced2ee4fae3fc" +published-version = "1" diff --git a/mover/Soonogo/code/task3/Move.toml b/mover/Soonogo/code/task3/Move.toml new file mode 100644 index 000000000..480be1592 --- /dev/null +++ b/mover/Soonogo/code/task3/Move.toml @@ -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" + diff --git a/mover/Soonogo/code/task3/sources/task3.move b/mover/Soonogo/code/task3/sources/task3.move new file mode 100644 index 000000000..ade16180f --- /dev/null +++ b/mover/Soonogo/code/task3/sources/task3.move @@ -0,0 +1,93 @@ +/* +/// Module: task3 +module task3::task3 { + +} +*/ +// Copyright (c) Mysten Labs, Inc. +// SPDX-License-Identifier: Apache-2.0 + +/// A minimalist example to demonstrate how to create an NFT like object on Sui. +module task3::SoonogoNFT { + use sui::url::{Self, Url}; + use std::string; + use sui::event; + + /// An example NFT that can be minted by anybody + public struct SoonogoNFT has key, store { + id: UID, + /// Name for the token + name: string::String, + /// Description of the token + description: string::String, + /// URL for the token + url: Url, + } + + public struct MintNFTEvent has copy, drop { + // The Object ID of the NFT + object_id: ID, + // The creator of the NFT + creator: address, + // The name of the NFT + name: string::String, + } + + /// Create a new sony9997_nft + public entry fun mint( + name: vector, + description: vector, + url: vector, + ctx: &mut TxContext + ) { + let nft = SoonogoNFT { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + url: url::new_unsafe_from_bytes(url) + }; + let sender = tx_context::sender(ctx); + event::emit(MintNFTEvent { + object_id: object::uid_to_inner(&nft.id), + creator: sender, + name: nft.name, + }); + transfer::public_transfer(nft, sender); + } + + /// Transfer `nft` to `recipient` + public entry fun transfer( + nft: SoonogoNFT, recipient: address, _: &mut TxContext + ) { + transfer::public_transfer(nft, recipient) + } + + /// Update the `description` of `nft` to `new_description` + public entry fun update_description( + nft: &mut SoonogoNFT, + new_description: vector, + ) { + nft.description = string::utf8(new_description) + } + + /// Permanently delete `nft` + public entry fun burn(nft: SoonogoNFT) { + let SoonogoNFT { id, name: _, description: _, url: _ } = nft; + object::delete(id) + } + + /// Get the NFT's `name` + public fun name(nft: &SoonogoNFT): &string::String { + &nft.name + } + + /// Get the NFT's `description` + public fun description(nft: &SoonogoNFT): &string::String { + &nft.description + } + + /// Get the NFT's `url` + public fun url(nft: &SoonogoNFT): &Url { + &nft.url + } +} diff --git a/mover/Soonogo/code/task3/tests/task3_tests.move b/mover/Soonogo/code/task3/tests/task3_tests.move new file mode 100644 index 000000000..f931bedcc --- /dev/null +++ b/mover/Soonogo/code/task3/tests/task3_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task3::task3_tests { + // uncomment this line to import the module + // use task3::task3; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task3() { + // pass + } + + #[test, expected_failure(abort_code = task3::task3_tests::ENotImplemented)] + fun test_task3_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Soonogo/notes/task3_mint_1.png b/mover/Soonogo/notes/task3_mint_1.png new file mode 100644 index 000000000..35db16d42 Binary files /dev/null and b/mover/Soonogo/notes/task3_mint_1.png differ diff --git a/mover/Soonogo/notes/task3_mint_2.png b/mover/Soonogo/notes/task3_mint_2.png new file mode 100644 index 000000000..e4ebcbfbd Binary files /dev/null and b/mover/Soonogo/notes/task3_mint_2.png differ diff --git a/mover/StalinCCCP/code/readme.md b/mover/StalinCCCP/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/StalinCCCP/code/task1/Move.lock b/mover/StalinCCCP/code/task1/Move.lock new file mode 100644 index 000000000..4b9b286bd --- /dev/null +++ b/mover/StalinCCCP/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "60F2000F4D6DAD240EF371DB3BC521F7BD4C8B814BC59CA473B852B77FDBE53C" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x1e58d3261a22f6aa88eb106106ff5ac4dc55e92d0b9c2648da47a35c57402a96" +latest-published-id = "0x1e58d3261a22f6aa88eb106106ff5ac4dc55e92d0b9c2648da47a35c57402a96" +published-version = "1" diff --git a/mover/StalinCCCP/code/task1/Move.toml b/mover/StalinCCCP/code/task1/Move.toml new file mode 100644 index 000000000..201de1731 --- /dev/null +++ b/mover/StalinCCCP/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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] +hello_world = "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/StalinCCCP/code/task1/sources/hello_world.move b/mover/StalinCCCP/code/task1/sources/hello_world.move new file mode 100644 index 000000000..5129e4655 --- /dev/null +++ b/mover/StalinCCCP/code/task1/sources/hello_world.move @@ -0,0 +1,20 @@ +module hello_world::hello { + use sui::tx_context::sender; + use std::string; + use std::string::String; + + public struct Data has key,store{ + id:UID, + gid:String + } + + fun init(ctx:&mut TxContext){ + transfer::public_transfer( + Data{ + id:object::new(ctx), + gid:string::utf8(b"62281472") + } + ,sender(ctx)); + } + +} \ No newline at end of file diff --git a/mover/StalinCCCP/code/task1/tests/hello_world_tests.move b/mover/StalinCCCP/code/task1/tests/hello_world_tests.move new file mode 100644 index 000000000..8fdf06eec --- /dev/null +++ b/mover/StalinCCCP/code/task1/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_world::hello_world_tests { + // uncomment this line to import the module + // use hello_world::hello_world; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_world() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_world::hello_world_tests::ENotImplemented)] + fun test_hello_world_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/StalinCCCP/code/task2/faucetcoin/Move.lock b/mover/StalinCCCP/code/task2/faucetcoin/Move.lock new file mode 100644 index 000000000..e4758345c --- /dev/null +++ b/mover/StalinCCCP/code/task2/faucetcoin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "36AAF1CDEC036D88764BAC3DCDE58C0D7D361D80DBC1ED0F543FFC7DC8AA1BA6" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x5085f3f4de6730e46f19c779c6118321f4fb171503d4c2dcf9c59a13d1cc994c" +latest-published-id = "0x5085f3f4de6730e46f19c779c6118321f4fb171503d4c2dcf9c59a13d1cc994c" +published-version = "1" diff --git a/mover/StalinCCCP/code/task2/faucetcoin/Move.toml b/mover/StalinCCCP/code/task2/faucetcoin/Move.toml new file mode 100644 index 000000000..380370c8a --- /dev/null +++ b/mover/StalinCCCP/code/task2/faucetcoin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "faucetcoin" +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] +faucetcoin = "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/StalinCCCP/code/task2/faucetcoin/sources/faucetcoin.move b/mover/StalinCCCP/code/task2/faucetcoin/sources/faucetcoin.move new file mode 100644 index 000000000..58a5d9818 --- /dev/null +++ b/mover/StalinCCCP/code/task2/faucetcoin/sources/faucetcoin.move @@ -0,0 +1,56 @@ +/// Module: faucetcoin +module faucetcoin::stalincccp_faucet { + use sui::balance::{Balance}; + use sui::balance; + use sui::coin::{Self, TreasuryCap}; + use std::string; + use std::string::String; + public struct STALINCCCP_FAUCET has drop{} + public struct PublicWallet has key{ + id:UID, + coin: Balance, + amount:u64, + } + const AMOUNT: u64=10; + const EFaucetDry:u64=1; + fun init(witness:STALINCCCP_FAUCET,ctx:&mut TxContext){ + let (tr,md)=coin::create_currency( + witness, + 1, + b"STALINCCCP faucet", + b"STALINCCCP faucet", + b"test coin used for faucet service", + option::none(), + ctx + ); + transfer::public_freeze_object(md); + transfer::public_transfer(tr,tx_context::sender(ctx)); + transfer::share_object(PublicWallet{ + id:object::new(ctx), + coin:balance::zero(), + amount:AMOUNT, + }) + } + public entry fun mint( + tr:&mut TreasuryCap, + amount:u64, + wallet:&mut PublicWallet, + ctx:&mut TxContext + ){ + balance::join(&mut wallet.coin,coin::into_balance( + coin::mint(tr,amount,ctx) + )); + } + public entry fun faucet( + wallet:&mut PublicWallet, + ctx:&mut TxContext + ){ + assert!(balance::value(&wallet.coin)>=wallet.amount,EFaucetDry); + transfer::public_transfer( + coin::from_balance( + balance::split(&mut wallet.coin,wallet.amount),ctx + ), + tx_context::sender(ctx) + ) + } +} diff --git a/mover/StalinCCCP/code/task2/faucetcoin/tests/faucetcoin_tests.move b/mover/StalinCCCP/code/task2/faucetcoin/tests/faucetcoin_tests.move new file mode 100644 index 000000000..381d574d9 --- /dev/null +++ b/mover/StalinCCCP/code/task2/faucetcoin/tests/faucetcoin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module faucetcoin::faucetcoin_tests { + // uncomment this line to import the module + // use faucetcoin::faucetcoin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_faucetcoin() { + // pass + } + + #[test, expected_failure(abort_code = ::faucetcoin::faucetcoin_tests::ENotImplemented)] + fun test_faucetcoin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/StalinCCCP/images/1.png b/mover/StalinCCCP/images/1.png new file mode 100644 index 000000000..37a6a2e4c Binary files /dev/null and b/mover/StalinCCCP/images/1.png differ diff --git a/mover/StalinCCCP/images/2.png b/mover/StalinCCCP/images/2.png new file mode 100644 index 000000000..b69c8bd82 Binary files /dev/null and b/mover/StalinCCCP/images/2.png differ diff --git a/mover/StalinCCCP/notes/readme.md b/mover/StalinCCCP/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/StalinCCCP/readme.md b/mover/StalinCCCP/readme.md new file mode 100644 index 000000000..1717978b2 --- /dev/null +++ b/mover/StalinCCCP/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xe8631db2c36ef36b6c50a8f7b91e169ee787618635d6ec537d1bd6f9d0c96931` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `自己的githubid` + +## 个人简介 +- 工作经验: 0年 +- 技术栈: `C++` `Rust` 底层(操作系统内核) `Go` 后端语言 +> 重要提示 请认真写自己的简介 +- 在校大学生 一年半算法竞赛经验 已有区域赛铜牌 +- 联系方式: QQ: `2825007345` + +## 任务 + +## 01 hello move +- [x] Sui cli version:sui 1.26.1-homebrew +- [x] Sui钱包截图: ![Sui钱包截图](./images/1.png) +- [x] package id: 0x1e58d3261a22f6aa88eb106106ff5ac4dc55e92d0b9c2648da47a35c57402a96 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/2.png) + +## 02 move coin +- [x] My Coin package id : 0xf6e22602fe37649686324409c32b55f20e95607e7d4cdb2a7e4917d3bd161969 +- [x] Faucet package id : 0x5085f3f4de6730e46f19c779c6118321f4fb171503d4c2dcf9c59a13d1cc994c +- [x] 转账 `My Coin` hash: GJ9LLvfnXkbZ144Zpm7q7itFVGEDLB64epTqKn9ngS9T +- [x] `Faucet Coin` address1 mint hash: 81RKbT999Benr2CLUVdUTsxuNgtn8KEDgSgWxj5ZysBT +- [x] `Faucet Coin` address2 mint hash: 7DVJCEmgM3SG6h5uVnVmEb28zDbKgTx6ZVYTVuJ57mjV + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/TheHeBoy/code/readme.md b/mover/TheHeBoy/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/TheHeBoy/code/task1/hello_world/Move.toml b/mover/TheHeBoy/code/task1/hello_world/Move.toml new file mode 100644 index 000000000..201de1731 --- /dev/null +++ b/mover/TheHeBoy/code/task1/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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] +hello_world = "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/TheHeBoy/code/task1/hello_world/sources/hello_world.move b/mover/TheHeBoy/code/task1/hello_world/sources/hello_world.move new file mode 100644 index 000000000..5eaa59ac8 --- /dev/null +++ b/mover/TheHeBoy/code/task1/hello_world/sources/hello_world.move @@ -0,0 +1,19 @@ +module hello_world::hello { + + use std::string; + + public struct HelloWorldObject has key, store { + id: UID, + text: string::String + } + + #[lint_allow(self_transfer)] + public fun mint(ctx: &mut TxContext) { + let object = HelloWorldObject { + id: object::new(ctx), + text: string::utf8(b"TheHeboy!") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } + +} \ No newline at end of file diff --git a/mover/TheHeBoy/images/img.png b/mover/TheHeBoy/images/img.png new file mode 100644 index 000000000..d9b90d28d Binary files /dev/null and b/mover/TheHeBoy/images/img.png differ diff --git a/mover/TheHeBoy/images/img_1.png b/mover/TheHeBoy/images/img_1.png new file mode 100644 index 000000000..475a1c779 Binary files /dev/null and b/mover/TheHeBoy/images/img_1.png differ diff --git a/mover/TheHeBoy/notes/readme.md b/mover/TheHeBoy/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/TheHeBoy/readme.md b/mover/TheHeBoy/readme.md new file mode 100644 index 000000000..8be59bfa2 --- /dev/null +++ b/mover/TheHeBoy/readme.md @@ -0,0 +1,53 @@ +## 基本信息 +- Sui钱包地址: `0x2eb70d0259f3e7590ff9188347837c9af8259d4575e6e54a0a7444be450d632d` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `TheHeBoy` + +## 个人简介 +- 工作经验: 2年 +- 技术栈: `Golang` `Java` `Rust` +- 之前主要在ETH和BTC生态进行开发,现在对Move很感兴趣,想了解一下 +- 联系方式: tg: `@anchor_xxxx` + +## 任务 + +## 01 hello move +- [X] Sui cli version: sui 1.27.2-homebrew +- [X] Sui钱包截图: ![img.png](images/img.png) +- [X] package id: 0xd81282396dda64132f8226c51662ebbe52ef3efaecdb88b06fc0ca2ef3c59734 +- [X] package id 在 scan上的查看截图:![img_1.png](images/img_1.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/TheonInAu/code/task2/Faucetcall.sh b/mover/TheonInAu/code/task2/Faucetcall.sh index 0b7cee266..395707915 100644 --- a/mover/TheonInAu/code/task2/Faucetcall.sh +++ b/mover/TheonInAu/code/task2/Faucetcall.sh @@ -1,4 +1,4 @@ -sui client call --gas-budget 100000000 \ +sui client call \ --package 0x2 \ --module coin \ --function mint_and_transfer \ diff --git a/mover/TheonInAu/code/task2/MyCoincall.sh b/mover/TheonInAu/code/task2/MyCoincall.sh index 95a84b67e..a5948efe6 100644 --- a/mover/TheonInAu/code/task2/MyCoincall.sh +++ b/mover/TheonInAu/code/task2/MyCoincall.sh @@ -1,4 +1,4 @@ -sui client call --gas-budget 100000000 \ +sui client call \ --package 0x2 \ --module coin \ --function mint_and_transfer \ diff --git a/mover/TheonInAu/code/task3/call.sh b/mover/TheonInAu/code/task3/call.sh index fd7ca1d2f..67af40c7f 100644 --- a/mover/TheonInAu/code/task3/call.sh +++ b/mover/TheonInAu/code/task3/call.sh @@ -1,4 +1,4 @@ -sui client call --gas-budget 100000000 \ +sui client call \ --package 0x368657d96f1e3935d4986ac0860805010aec6fc839d12a10a3e787132e3de4a2 \ --module mynft\ --function mint_to_sender \ diff --git a/mover/TheonInAu/code/task3/checkname.sh b/mover/TheonInAu/code/task3/checkname.sh index 911fea66d..880bf4278 100644 --- a/mover/TheonInAu/code/task3/checkname.sh +++ b/mover/TheonInAu/code/task3/checkname.sh @@ -1,4 +1,4 @@ -sui client call --gas-budget 100000000 \ +sui client call \ --package 0x368657d96f1e3935d4986ac0860805010aec6fc839d12a10a3e787132e3de4a2 \ --module mynft\ --function name\ diff --git a/mover/TheonInAu/code/task3/transfer.sh b/mover/TheonInAu/code/task3/transfer.sh index 8c73c2af4..eefe97c0e 100644 --- a/mover/TheonInAu/code/task3/transfer.sh +++ b/mover/TheonInAu/code/task3/transfer.sh @@ -1,4 +1,4 @@ -sui client call --gas-budget 100000000 \ +sui client call \ --package 0x368657d96f1e3935d4986ac0860805010aec6fc839d12a10a3e787132e3de4a2 \ --module mynft\ --function transfer \ diff --git a/mover/TheonInAu/code/task4/myflip/mintfaucetcoin.sh b/mover/TheonInAu/code/task4/myflip/mintfaucetcoin.sh index a30598f44..85db993f8 100644 --- a/mover/TheonInAu/code/task4/myflip/mintfaucetcoin.sh +++ b/mover/TheonInAu/code/task4/myflip/mintfaucetcoin.sh @@ -1,4 +1,4 @@ -sui client call --gas-budget 100000000 \ +sui client call \ --package 0x2 \ --module coin \ --function mint_and_transfer \ diff --git a/mover/TheonInAu/code/task5/myswap/Faucetcoin.sh b/mover/TheonInAu/code/task5/myswap/Faucetcoin.sh index a30598f44..85db993f8 100644 --- a/mover/TheonInAu/code/task5/myswap/Faucetcoin.sh +++ b/mover/TheonInAu/code/task5/myswap/Faucetcoin.sh @@ -1,4 +1,4 @@ -sui client call --gas-budget 100000000 \ +sui client call \ --package 0x2 \ --module coin \ --function mint_and_transfer \ diff --git a/mover/TheonInAu/code/task5/myswap/bank.sh b/mover/TheonInAu/code/task5/myswap/bank.sh index 6f17cb9b9..0be598b73 100644 --- a/mover/TheonInAu/code/task5/myswap/bank.sh +++ b/mover/TheonInAu/code/task5/myswap/bank.sh @@ -1,4 +1,4 @@ -sui client call --gas-budget 1000000000 \ +sui client call 0 \ --package 0xe438fae1b5fa2142aededfc48449244f235f69f6dc28dcb53080e24809ea3faa \ --module swap_generic \ --function create \ diff --git a/mover/TheonInAu/code/task5/myswap/depositfaucetcoin.sh b/mover/TheonInAu/code/task5/myswap/depositfaucetcoin.sh index 6c7a0fe03..eeb8dbc59 100644 --- a/mover/TheonInAu/code/task5/myswap/depositfaucetcoin.sh +++ b/mover/TheonInAu/code/task5/myswap/depositfaucetcoin.sh @@ -1,4 +1,4 @@ -sui client call --gas-budget 1000000000 \ +sui client call 0 \ --package 0xe438fae1b5fa2142aededfc48449244f235f69f6dc28dcb53080e24809ea3faa \ --module swap_generic \ --function deposit_b \ diff --git a/mover/TheonInAu/code/task5/myswap/mycoin.sh b/mover/TheonInAu/code/task5/myswap/mycoin.sh index 781aaa3f6..512c189fd 100644 --- a/mover/TheonInAu/code/task5/myswap/mycoin.sh +++ b/mover/TheonInAu/code/task5/myswap/mycoin.sh @@ -1,4 +1,4 @@ -sui client call --gas-budget 100000000 \ +sui client call \ --package 0x2 \ --module coin \ --function mint_and_transfer \ diff --git a/mover/TheonInAu/code/task5/myswap/swapab.sh b/mover/TheonInAu/code/task5/myswap/swapab.sh index 64f260449..9cbe0a9b0 100644 --- a/mover/TheonInAu/code/task5/myswap/swapab.sh +++ b/mover/TheonInAu/code/task5/myswap/swapab.sh @@ -1,4 +1,4 @@ -sui client call --gas-budget 1000000000 \ +sui client call 0 \ --package 0xe438fae1b5fa2142aededfc48449244f235f69f6dc28dcb53080e24809ea3faa \ --module swap_generic \ --function swap_a_b \ diff --git a/mover/TheonInAu/code/task5/myswap/swapba.sh b/mover/TheonInAu/code/task5/myswap/swapba.sh index 032a34689..a7d87b035 100644 --- a/mover/TheonInAu/code/task5/myswap/swapba.sh +++ b/mover/TheonInAu/code/task5/myswap/swapba.sh @@ -1,4 +1,4 @@ -sui client call --gas-budget 1000000000 \ +sui client call 0 \ --package 0xe438fae1b5fa2142aededfc48449244f235f69f6dc28dcb53080e24809ea3faa \ --module swap_generic \ --function swap_b_a \ diff --git a/mover/ThomaHuer/code/readme.md b/mover/ThomaHuer/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/ThomaHuer/code/task1/Move.lock b/mover/ThomaHuer/code/task1/Move.lock new file mode 100644 index 000000000..cdacba5bd --- /dev/null +++ b/mover/ThomaHuer/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2E267C18D553336099CDD31F7063857679825E46CD06EC67CC7F7FB0C20317C1" +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.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xd883d684f468562f88a8ce6cfc21fd22c54c55d9cd5bc050cd4e2dae3d77332a" +latest-published-id = "0xd883d684f468562f88a8ce6cfc21fd22c54c55d9cd5bc050cd4e2dae3d77332a" +published-version = "1" diff --git a/mover/ThomaHuer/code/task1/Move.toml b/mover/ThomaHuer/code/task1/Move.toml new file mode 100644 index 000000000..e75e497eb --- /dev/null +++ b/mover/ThomaHuer/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1" +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] +task1 = "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/ThomaHuer/code/task1/sources/task1.move b/mover/ThomaHuer/code/task1/sources/task1.move new file mode 100644 index 000000000..abfa18f92 --- /dev/null +++ b/mover/ThomaHuer/code/task1/sources/task1.move @@ -0,0 +1,20 @@ +module task1::hello_world { + + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct HelloMove has key, store { + id: UID, + text: string::String + } + + public fun mint(ctx: &mut TxContext) { + let object = HelloMove { + id: object::new(ctx), + text: string::utf8(b"Hello ThomaHuer") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/ThomaHuer/code/task2/.DS_Store b/mover/ThomaHuer/code/task2/.DS_Store new file mode 100644 index 000000000..973bf6bd2 Binary files /dev/null and b/mover/ThomaHuer/code/task2/.DS_Store differ diff --git a/mover/ThomaHuer/code/task2/Move.lock b/mover/ThomaHuer/code/task2/Move.lock new file mode 100644 index 000000000..99c5610d8 --- /dev/null +++ b/mover/ThomaHuer/code/task2/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E7A65BF39B740E195045E87B46B06936199C063AFE29D8948B9C6B9B853033A8" +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.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x4ec11c0624cd41569b57b92f65e9e55513cac12bb341d8b698bbdd61ce0fb003" +latest-published-id = "0x4ec11c0624cd41569b57b92f65e9e55513cac12bb341d8b698bbdd61ce0fb003" +published-version = "1" diff --git a/mover/ThomaHuer/code/task2/Move.toml b/mover/ThomaHuer/code/task2/Move.toml new file mode 100644 index 000000000..6a6098d99 --- /dev/null +++ b/mover/ThomaHuer/code/task2/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task2" +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] +task2 = "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/ThomaHuer/code/task2/sources/coin.move b/mover/ThomaHuer/code/task2/sources/coin.move new file mode 100644 index 000000000..bfb7b162c --- /dev/null +++ b/mover/ThomaHuer/code/task2/sources/coin.move @@ -0,0 +1,26 @@ +module task2::thomahuer_coin { + use sui::coin; + use sui::coin::{TreasuryCap}; + use sui::transfer::{public_transfer, public_freeze_object}; + + public struct THOMAHUER_COIN has drop{} + fun init(witness: THOMAHUER_COIN, ctx: &mut TxContext){ + let (treasuryCap, denyCap ,metadata) = coin::create_regulated_currency( + witness, + 8, + b"THOMAHUER", + b"THOMAHUER Coin", + b"move coin", + option::none(), + ctx + ); + public_transfer(treasuryCap, tx_context::sender(ctx)); + public_transfer(denyCap, tx_context::sender(ctx)); + public_freeze_object(metadata); + } + + public entry fun mint(cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext){ + let coin = coin::mint(cap, amount, ctx); + public_transfer(coin, recipient); + } +} \ No newline at end of file diff --git a/mover/ThomaHuer/code/task2/sources/faucet.move b/mover/ThomaHuer/code/task2/sources/faucet.move new file mode 100644 index 000000000..9b12be22a --- /dev/null +++ b/mover/ThomaHuer/code/task2/sources/faucet.move @@ -0,0 +1,24 @@ +module task2::thomahuer_faucet_coin { + use sui::coin; + use sui::coin::TreasuryCap; + use sui::transfer::{ public_share_object, public_freeze_object}; + + public struct THOMAHUER_FAUCET_COIN has drop{} + fun init(witness: THOMAHUER_FAUCET_COIN, ctx: &mut TxContext){ + let (treasury, metadata) = coin::create_currency( + witness, + 8, + b"THOMAHUER_PUBLIC", + b"thomahuer Faucet coin", + b"test faucet coin", + option::none(), + ctx + ); + public_share_object(treasury); + public_freeze_object(metadata); + } + + public entry fun mint(cap: &mut TreasuryCap, value: u64, recipient: address, ctx: &mut TxContext){ + coin::mint_and_transfer(cap, value, recipient, ctx); + } +} \ No newline at end of file diff --git a/mover/ThomaHuer/code/task3/Move.lock b/mover/ThomaHuer/code/task3/Move.lock new file mode 100644 index 000000000..e5f202ea9 --- /dev/null +++ b/mover/ThomaHuer/code/task3/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "DEDE53BD567ECEDC2009BE853A86F47F6BDC3F1F03A6B00FAED274F07E74A18B" +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.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xe92524438738280f0145ec942255e759fe969e00b8ed9449e5d59f1367f1ab10" +latest-published-id = "0xe92524438738280f0145ec942255e759fe969e00b8ed9449e5d59f1367f1ab10" +published-version = "1" diff --git a/mover/ThomaHuer/code/task3/Move.toml b/mover/ThomaHuer/code/task3/Move.toml new file mode 100644 index 000000000..480be1592 --- /dev/null +++ b/mover/ThomaHuer/code/task3/Move.toml @@ -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" + diff --git a/mover/ThomaHuer/code/task3/sources/task3.move b/mover/ThomaHuer/code/task3/sources/task3.move new file mode 100644 index 000000000..28c856536 --- /dev/null +++ b/mover/ThomaHuer/code/task3/sources/task3.move @@ -0,0 +1,42 @@ +module task3::thomahuer_nft { + use std::ascii::String; + use std::string::utf8; + use sui::display; + use sui::package; + use sui::transfer::public_transfer; + + public struct THOMAHUER_NFT has drop {} + + public struct NFT has key,store { + id: UID, + name: String, + } + + fun init(otw: THOMAHUER_NFT, ctx: &mut sui::tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://avatars.githubusercontent.com/u/169153248"), + ]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values,ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + public entry fun mint_to(name: String, recipient: address,ctx: &mut TxContext) { + let nft = NFT{ + id: object::new(ctx), + name, + }; + public_transfer(nft, recipient) + } +} \ No newline at end of file diff --git a/mover/ThomaHuer/code/task4/Move.lock b/mover/ThomaHuer/code/task4/Move.lock new file mode 100644 index 000000000..ccf9d1f53 --- /dev/null +++ b/mover/ThomaHuer/code/task4/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "5CD8E49D9DFF53D0240676DDC066AC2A47C42703B262CACB277E55B2813C85C8" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "task2" }, +] + +[[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.package]] +name = "task2" +source = { local = "../task2" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.27.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x74743ec7e61f47a798270aa93058bec08e29d546556f79b7e35c2f533b77ea8f" +latest-published-id = "0x74743ec7e61f47a798270aa93058bec08e29d546556f79b7e35c2f533b77ea8f" +published-version = "1" diff --git a/mover/ThomaHuer/code/task4/Move.toml b/mover/ThomaHuer/code/task4/Move.toml new file mode 100644 index 000000000..d0ca7fb11 --- /dev/null +++ b/mover/ThomaHuer/code/task4/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "task4" +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" } +task2 = { local = "../task2" } +# 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] +task4 = "0x0" +task2 = "0x8fe33b711608ea6037635d713367e15f7adc89361a7aaa63dc439453d2dcff70" + +# 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/ThomaHuer/code/task4/sources/task4.move b/mover/ThomaHuer/code/task4/sources/task4.move new file mode 100644 index 000000000..ee4f118a7 --- /dev/null +++ b/mover/ThomaHuer/code/task4/sources/task4.move @@ -0,0 +1,92 @@ +module task4::flip_coin { + + use sui::balance; + use sui::balance::{Balance, zero}; + use sui::coin; + use sui::coin::{from_balance, into_balance}; + use sui::random; + use sui::random::Random; + use sui::transfer::{share_object, transfer, public_transfer}; + use sui::tx_context::sender; + use task2::thomahuer_faucet_coin::{THOMAHUER_FAUCET_COIN}; + + public struct Game has key { + id: UID, + val: Balance + } + + public struct AdaminCap has key { + id: UID + } + + + fun init(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + val: zero() + }; + + share_object(game); + + let admin = AdaminCap { + id: object::new(ctx) + }; + + transfer(admin, sender(ctx)); + } + #[allow(lint(public_random))] + public entry fun play( + game: &mut Game, + flip_value: bool, + in: coin::Coin, + rand: &Random, + ctx: &mut TxContext + ) { + let coin_value = coin::value(&in); + + let game_val = balance::value(&game.val); + + // 池子总量大于投注数量,防止给用户返还资金不够 + if (game_val < coin_value) { + abort 0 + }; + // 池子总量大于投注数量10倍,防止all in漏洞 + if (game_val < coin_value * 10) { + abort 1 + }; + + let mut gen = random::new_generator(rand, ctx); + let flag = random::generate_bool(&mut gen); + + let play_address = sender(ctx); + if (flip_value == flag) { + withdraw(game, coin_value, play_address, ctx); + public_transfer(in, play_address); + } else { + deposit(game, in, ctx); + } + } + + fun deposit(game: &mut Game, in: coin::Coin, _ctx: &mut TxContext) { + let in_balance = into_balance(in); + balance::join(&mut game.val, in_balance); + } + + public entry fun public_deposit( + game: &mut Game, + in: coin::Coin, + ctx: &mut TxContext + ) { + deposit(game, in, ctx); + } + + fun withdraw(game: &mut Game, amt: u64, to: address, ctx: &mut TxContext) { + let win_balance = balance::split(&mut game.val, amt); + let win_coin = from_balance(win_balance, ctx); + public_transfer(win_coin, to); + } + + public entry fun public_withdraw(_: &AdaminCap, game: &mut Game, amt: u64, ctx: &mut TxContext) { + withdraw(game, amt, sender(ctx), ctx); + } +} \ No newline at end of file diff --git a/mover/ThomaHuer/code/task5/Move.lock b/mover/ThomaHuer/code/task5/Move.lock new file mode 100644 index 000000000..ade9fa6a7 --- /dev/null +++ b/mover/ThomaHuer/code/task5/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "FC7FB786F37485291C6214E1C271ECD43DF2F2BE484C8E3F661B1E381A388E80" +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.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xc9f7a4335df7f164c284e03db04f343e84ede57c54984ef5f40e1fed40561da9" +latest-published-id = "0xc9f7a4335df7f164c284e03db04f343e84ede57c54984ef5f40e1fed40561da9" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x7c9ddf274fad286b0110722154712ec09b1bcde6778b9f55f98c0e2283488653" +latest-published-id = "0x7c9ddf274fad286b0110722154712ec09b1bcde6778b9f55f98c0e2283488653" +published-version = "1" diff --git a/mover/ThomaHuer/code/task5/Move.toml b/mover/ThomaHuer/code/task5/Move.toml new file mode 100644 index 000000000..856a08c66 --- /dev/null +++ b/mover/ThomaHuer/code/task5/Move.toml @@ -0,0 +1,37 @@ +[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 (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] +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" + diff --git a/mover/ThomaHuer/code/task5/sources/task5.move b/mover/ThomaHuer/code/task5/sources/task5.move new file mode 100644 index 000000000..4338c3cfc --- /dev/null +++ b/mover/ThomaHuer/code/task5/sources/task5.move @@ -0,0 +1,261 @@ +module task5::thomahuer_swap { + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply, Balance}; + use sui::math; + + const EZeroAmount: u64 = 0; + + const EReservesEmpty: u64 = 2; + + const EPoolFull: u64 = 4; + + const FEE_SCALING: u128 = 10000; + + const FEE_PERCENT: u128 = 30; + + const MAX_POOL_VALUE: u64 = { + 18446744073709551615 / 10000 + }; + + public struct LSP has drop {} + + public struct Pool has key { + id: UID, + token_a: Balance, + token_b: Balance, + lsp_supply: Supply>, + /// Fee Percent is denominated in basis points. + fee_percent: u64 + } + + fun init(_: &mut TxContext) { + } + + entry fun create_pool ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + create_pool_inner(token_a, token_b, ctx), + tx_context::sender(ctx) + ); + } + + fun create_pool_inner ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + let fee_percent = (FEE_PERCENT as u64); + + let token_a_amt = coin::value(&token_a); + let token_b_amt = coin::value(&token_b); + + assert!(token_a_amt > 0 && token_b_amt > 0, EZeroAmount); + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let share = math::sqrt(token_a_amt) * math::sqrt(token_b_amt); + let mut lsp_supply = balance::create_supply(LSP {}); + let lsp = balance::increase_supply(&mut lsp_supply, share); + + transfer::share_object(Pool { + id: object::new(ctx), + token_a: coin::into_balance(token_a), + token_b: coin::into_balance(token_b), + lsp_supply, + fee_percent, + }); + + coin::from_balance(lsp, ctx) + } + + entry fun add_liquidity ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + add_liquidity_inner(pool, token_a, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun add_liquidity_inner ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + assert!(coin::value(&token_a) > 0 && coin::value(&token_b) > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, lsp_supply) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_balance = coin::into_balance(token_a); + let token_b_balance = coin::into_balance(token_b); + + let token_a_added = balance::value(&token_a_balance); + let token_b_added = balance::value(&token_b_balance); + + let share_minted = math::min( + (token_a_added * lsp_supply) / token_a_amt, + (token_b_added * lsp_supply) / token_b_amt + ); + + let token_a_amt = balance::join(&mut pool.token_a, token_a_balance); + let token_b_amt = balance::join(&mut pool.token_b, token_b_balance); + + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let balance = balance::increase_supply(&mut pool.lsp_supply, share_minted); + + coin::from_balance(balance, ctx) + } + + entry fun remove_liquidity ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ) { + let (token_a, token_b) = remove_liquidity_inner(pool, lsp, ctx); + let sender = tx_context::sender(ctx); + + transfer::public_transfer(token_a, sender); + transfer::public_transfer(token_b, sender); + } + + fun remove_liquidity_inner ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ): (Coin, Coin) { + let lsp_amount = coin::value(&lsp); + assert!(lsp_amount > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, total_supply) = get_amounts(pool); + + let token_a = (token_a_amt * lsp_amount) / total_supply; + let token_b = (token_b_amt * lsp_amount) / total_supply; + + balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); + + ( + coin::take(&mut pool.token_a, token_a, ctx), + coin::take(&mut pool.token_b, token_b, ctx), + ) + } + + entry fun swap_a_to_b ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_a_to_b_inner(pool, token_a, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_a_to_b_inner ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ): Coin { + let token_a_amt = coin::value(&token_a); + assert!(token_a_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_b_amt = sell_token_a(pool, token_a_amt); + + balance::join(&mut pool.token_a, coin::into_balance(token_a)); + + coin::take(&mut pool.token_b, token_b_amt, ctx) + } + + entry fun swap_b_to_a ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_b_to_a_inner(pool, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_b_to_a_inner ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ): Coin { + let token_b_amt = coin::value(&token_b); + assert!(token_b_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_amt = sell_token_b(pool, token_b_amt); + + balance::join(&mut pool.token_b, coin::into_balance(token_b)); + + coin::take(&mut pool.token_a, token_a_amt, ctx) + } + + public fun sell_token_a(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_a_amt, + token_b_amt, + pool.fee_percent + ) + } + + public fun sell_token_b(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_b_amt, + token_a_amt, + pool.fee_percent + ) + } + + public fun get_amounts(pool: &Pool): (u64, u64, u64) { + ( + balance::value(&pool.token_a), + balance::value(&pool.token_b), + balance::supply_value(&pool.lsp_supply), + ) + } + + public fun calc_output_amount( + input_amount: u64, + input_reserve: u64, + output_reserve: u64, + fee_percent: u64 + ): u64 { + let ( + input_amount, + input_reserve, + output_reserve, + fee_percent + ) = ( + (input_amount as u128), + (input_reserve as u128), + (output_reserve as u128), + (fee_percent as u128), + ); + + let input_with_fee = input_amount * FEE_SCALING / (FEE_SCALING - fee_percent); + + let total = input_reserve * output_reserve; + let output_amount = output_reserve - total / (input_reserve + input_with_fee); + + (output_amount as u64) + } +} diff --git a/mover/ThomaHuer/code/task6/index.html b/mover/ThomaHuer/code/task6/index.html new file mode 100644 index 000000000..bb7f75b16 --- /dev/null +++ b/mover/ThomaHuer/code/task6/index.html @@ -0,0 +1,59 @@ + + + + + + + Sui dApp Starter + + + + +
+ + + diff --git a/mover/ThomaHuer/code/task6/package.json b/mover/ThomaHuer/code/task6/package.json new file mode 100644 index 000000000..4d2443da7 --- /dev/null +++ b/mover/ThomaHuer/code/task6/package.json @@ -0,0 +1,36 @@ +{ + "name": "basic-dapp-ptb", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@mysten/dapp-kit": "0.14.11", + "@mysten/sui": "1.2.1", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@tanstack/react-query": "^5.0.0", + "navi-sdk": "^1.1.23", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } +} diff --git a/mover/ThomaHuer/code/task6/prettier.config.cjs b/mover/ThomaHuer/code/task6/prettier.config.cjs new file mode 100644 index 000000000..c07541106 --- /dev/null +++ b/mover/ThomaHuer/code/task6/prettier.config.cjs @@ -0,0 +1,4 @@ +// eslint-disable-next-line no-undef +module.exports = { + proseWrap: "always", +}; diff --git a/mover/ThomaHuer/code/task6/src/Execute.tsx b/mover/ThomaHuer/code/task6/src/Execute.tsx new file mode 100644 index 000000000..828522541 --- /dev/null +++ b/mover/ThomaHuer/code/task6/src/Execute.tsx @@ -0,0 +1,61 @@ +import {useCurrentAccount, useSignAndExecuteTransaction} from "@mysten/dapp-kit"; +import {Container, Flex, Heading, Text, Button} from "@radix-ui/themes"; +import {supply_borrow_supply} from "./transactions/navi.ts"; + +const formatDateNumber = (num: number) => { + return num < 10 ? `0${num}` : num; +} + +const Execute = () => { + const account = useCurrentAccount(); + const {mutate: signAndExecute} = useSignAndExecuteTransaction(); + + const date = new Date(); + const month = formatDateNumber(date.getMonth() + 1); + const day = formatDateNumber(date.getDate()); + const hour = formatDateNumber(date.getHours()); + const usdcAmt = Number(`0.${month}${day}${hour}`); + + return ( + + Wallet Status + + {account ? ( + + Wallet connected + Address: {account.address} + + ) : ( + Wallet not connected + )} + + {account ? ( + + 执行交易 + + 1. [存入Navi Protocol 1 SUI] + {`2.[借出当前日期的USDC ${usdcAmt} 的 USDC ]`} + 3.[然后在存入等额的USDC] + + + + ) : null} + + ); +} + +export default Execute; diff --git a/mover/ThomaHuer/code/task6/src/const.ts b/mover/ThomaHuer/code/task6/src/const.ts new file mode 100644 index 000000000..48f89f7f0 --- /dev/null +++ b/mover/ThomaHuer/code/task6/src/const.ts @@ -0,0 +1,2 @@ +export const SUI_COIN_TYPE = '0x2::coin::Coin<0x2::sui::SUI>'; +export const USDC_COIN_TYPE = '0x2::coin::Coin<0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN>'; diff --git a/mover/ThomaHuer/code/task6/src/main.tsx b/mover/ThomaHuer/code/task6/src/main.tsx new file mode 100644 index 000000000..21e0bec07 --- /dev/null +++ b/mover/ThomaHuer/code/task6/src/main.tsx @@ -0,0 +1,37 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "@mysten/dapp-kit/dist/index.css"; +import "@radix-ui/themes/styles.css"; + +import { getFullnodeUrl } from "@mysten/sui/client"; +import { + SuiClientProvider, + WalletProvider, + createNetworkConfig, +} from "@mysten/dapp-kit"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { Theme } from "@radix-ui/themes"; +import App from "./App.tsx"; + +const queryClient = new QueryClient(); + +const { networkConfig } = createNetworkConfig({ + localnet: { url: getFullnodeUrl("localnet") }, + devnet: { url: getFullnodeUrl("devnet") }, + testnet: { url: getFullnodeUrl("testnet") }, + mainnet: { url: getFullnodeUrl("mainnet") }, +}); + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + + + + + + + , +); diff --git a/mover/ThomaHuer/code/task6/src/transactions/navi.ts b/mover/ThomaHuer/code/task6/src/transactions/navi.ts new file mode 100644 index 000000000..103f12cc4 --- /dev/null +++ b/mover/ThomaHuer/code/task6/src/transactions/navi.ts @@ -0,0 +1,43 @@ +import { TransactionBlock } from '@mysten/sui.js/transactions'; +import { Transaction } from '@mysten/sui/transactions'; +import { depositCoin, borrowCoin, } from 'navi-sdk/dist/libs/PTB' +import { Sui, USDC } from "navi-sdk/dist/address"; +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from 'navi-sdk/dist/address' + + +export const supply_borrow_supply = async ({ signAndExecute, usdcAmt, onSuccess = () => { }, onError = () => { } }: { + signAndExecute: any; + usdcAmt: number; + onSuccess?: (result: any) => void; + onError?: (result: any) => void; +}) => { + let tx = new Transaction(); + + // 设置gas + tx.setGasBudget(1e9); + + // 分离出1sui + const [sui_1] = tx.splitCoins(tx.gas, [1e9]); + + // // 存入navi + const Sui_Pool: PoolConfig = pool[Sui.symbol as keyof Pool]; + await depositCoin(tx as any as TransactionBlock, Sui_Pool, sui_1, 1e9); + + // // 借出 usdc + const USDC_Pool: PoolConfig = pool[USDC.symbol as keyof Pool]; + const [usdc_coin] = await borrowCoin(tx as any as TransactionBlock, USDC_Pool, usdcAmt * 1e6); + + // // 存入 usdc + await depositCoin(tx as any as TransactionBlock, USDC_Pool, usdc_coin, usdcAmt * 1e6); + + // 签名执行交易 + await signAndExecute({ + transaction: tx, + }, { + onSuccess, + onError, + }); + +} + diff --git a/mover/ThomaHuer/code/task6/src/vite-env.d.ts b/mover/ThomaHuer/code/task6/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/mover/ThomaHuer/code/task6/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mover/ThomaHuer/code/task6/tsconfig.json b/mover/ThomaHuer/code/task6/tsconfig.json new file mode 100644 index 000000000..a7fc6fbf2 --- /dev/null +++ b/mover/ThomaHuer/code/task6/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/ThomaHuer/code/task6/tsconfig.node.json b/mover/ThomaHuer/code/task6/tsconfig.node.json new file mode 100644 index 000000000..42872c59f --- /dev/null +++ b/mover/ThomaHuer/code/task6/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/ThomaHuer/code/task6/vite.config.ts b/mover/ThomaHuer/code/task6/vite.config.ts new file mode 100644 index 000000000..d366e8c8d --- /dev/null +++ b/mover/ThomaHuer/code/task6/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); diff --git a/mover/ThomaHuer/notes/1.png b/mover/ThomaHuer/notes/1.png new file mode 100644 index 000000000..92840e1f6 Binary files /dev/null and b/mover/ThomaHuer/notes/1.png differ diff --git a/mover/ThomaHuer/notes/2.png b/mover/ThomaHuer/notes/2.png new file mode 100644 index 000000000..1ec668443 Binary files /dev/null and b/mover/ThomaHuer/notes/2.png differ diff --git a/mover/ThomaHuer/notes/3.png b/mover/ThomaHuer/notes/3.png new file mode 100644 index 000000000..461294674 Binary files /dev/null and b/mover/ThomaHuer/notes/3.png differ diff --git a/mover/ThomaHuer/notes/4.png b/mover/ThomaHuer/notes/4.png new file mode 100644 index 000000000..3bcec6ea3 Binary files /dev/null and b/mover/ThomaHuer/notes/4.png differ diff --git a/mover/ThomaHuer/notes/readme.md b/mover/ThomaHuer/notes/readme.md new file mode 100644 index 000000000..6b5fe0690 --- /dev/null +++ b/mover/ThomaHuer/notes/readme.md @@ -0,0 +1,29 @@ +# 2 +export ADDR1=0xf981d436b55b9f30e66b879b39682a6d7e88bfc065cf1c4028ce76024def6d25 +export ADDR2=0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 +export PACKAGE=0x4ec11c0624cd41569b57b92f65e9e55513cac12bb341d8b698bbdd61ce0fb003 +sui client call --package $PACKAGE --module thomahuer_coin --function mint --args 0x02a7be5ec9cba262e065a2a5a88fef708963a9c92d2b7244c468a28d839c7145 1000 $ADDR2 + +Transaction Digest: 5cyeHFDBPajpzQSqAigzi3RCsgwxPxjPjsbkCMwEMt72 + +sui client call --package $PACKAGE --module thomahuer_faucet_coin --function mint --args 0x8f73860e86cd6af37dee33adfdb3e1c623e89135c1939e5410e07833af3ac19b 1000 $ADDR1 + +Transaction Digest: 5H7E78nf2iGtVwatTzKJN7nAkQyusZoPwi1vXgwuceHA + +sui client call --package $PACKAGE --module thomahuer_faucet_coin --function mint --args 0x8f73860e86cd6af37dee33adfdb3e1c623e89135c1939e5410e07833af3ac19b 1000 $ADDR2 + +Transaction Digest: 3jJ2FCH9UjcdADz5w9HajRTix51Ah49KF1yZCwpnyyE4 + +# 3 +export PACKAGE_ID=0xe92524438738280f0145ec942255e759fe969e00b8ed9449e5d59f1367f1ab10 +export MY_ADDR=0xf981d436b55b9f30e66b879b39682a6d7e88bfc065cf1c4028ce76024def6d25 + +sui client call --package $PACKAGE_ID --module thomahuer_nft --function mint_to --args "nft for thoma" $MY_ADDR + +ObjectID: 0x2dcfa41933343219f40217efc11240d734c1aa09025e783d127c784e86342a99 + +export TARGET_ADDR=0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +sui client call --package $PACKAGE_ID --module thomahuer_nft --function mint_to --args "nft for thoma" $TARGET_ADDR + +Transaction Digest: 6m1g8vxCjg8qz8pL5W6mmBDrZpibeTbnigSWxQhnrkPp \ No newline at end of file diff --git a/mover/ThomaHuer/readme.md b/mover/ThomaHuer/readme.md new file mode 100644 index 000000000..6613023cf --- /dev/null +++ b/mover/ThomaHuer/readme.md @@ -0,0 +1,53 @@ +## 基本信息 +- Sui钱包地址: `0xf981d436b55b9f30e66b879b39682a6d7e88bfc065cf1c4028ce76024def6d25` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `ThomaHuer` + +## 个人简介 +- 工作经验: 3年 +- 技术栈: `C/CUDA` +> 重要提示 请认真写自己的简介 +- 硬件加速开发经验,对Move特别感兴趣,想通过Move入门区块链 + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.28.2 +- [x] Sui钱包截图: ![Sui钱包截图](./notes/1.png) +- [x] package id: `0xd883d684f468562f88a8ce6cfc21fd22c54c55d9cd5bc050cd4e2dae3d77332a` +- [x] package id 在 scan上的查看截图:![Scan截图](./notes/2.png) + +## 02 move coin +- [x] My Coin package id : `0x4ec11c0624cd41569b57b92f65e9e55513cac12bb341d8b698bbdd61ce0fb003` +- [x] Faucet package id : `0x4ec11c0624cd41569b57b92f65e9e55513cac12bb341d8b698bbdd61ce0fb003` +- [x] 转账 `My Coin` hash: `5cyeHFDBPajpzQSqAigzi3RCsgwxPxjPjsbkCMwEMt72` +- [x] `Faucet Coin` address1 mint hash: `5H7E78nf2iGtVwatTzKJN7nAkQyusZoPwi1vXgwuceHA` +- [x] `Faucet Coin` address2 mint hash: `3jJ2FCH9UjcdADz5w9HajRTix51Ah49KF1yZCwpnyyE4` + +## 03 move NFT +- [x] nft package id : `0xe92524438738280f0145ec942255e759fe969e00b8ed9449e5d59f1367f1ab10` +- [x] nft object id : `0x2dcfa41933343219f40217efc11240d734c1aa09025e783d127c784e86342a99` +- [x] 转账 nft hash: `6m1g8vxCjg8qz8pL5W6mmBDrZpibeTbnigSWxQhnrkPp` +- [x] scan上的NFT截图:![Scan截图](./notes/3.png) + +## 04 Move Game +- [x] game package id : `0x74743ec7e61f47a798270aa93058bec08e29d546556f79b7e35c2f533b77ea8f` +- [x] deposit Coin hash: `AXAgiBTDaepubx6GSHhmqtxdNDRtWj9pZFCbjr5avR1j` +- [x] withdraw `Coin` hash: `CQkbSc1GhHarQpWa4kxJd5BNKGGX1uhVLza9a6PUZmqN` +- [x] play game hash: `9nCky3UBDiynVx64cMij5YGj5zQRKCzvwXS2NQzzGDUu` + +## 05 Move Swap +- [x] swap package id : `0x7c9ddf274fad286b0110722154712ec09b1bcde6778b9f55f98c0e2283488653` +- [x] call swap CoinA-> CoinB hash : `AuE4wiaw6WpHqWk5PSLktDHTtBCieoe4XFhw7Rw5A6Z` +- [x] call swap CoinB-> CoinA hash : `AYeTXbegkABm64yKhTNpdarJd2AEwdjjc4WySQW5uSnJ` + +## 06 Dapp-kit SDK PTB +- [x] save hash : `Ep56dtymsWQa37AHi6Dj9zapGu6e696tShjL27X8Anre` + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./notes/4.png) +- [x] flag hash : `HPJircDSdSktoHMPyCL7BpW6jJ6jrZioZShMUgkif98u` + +## 08 Move CTF Lets Move +- [x] proof : `92ae831a88b0cd6fba32` +- [x] flag hash : `7ErKexcj3b2PGCukHv7GdNSLoThyfZGHM4YmXY4qvvHV` diff --git a/mover/TigerInYourDream/code/notes/readme.md b/mover/TigerInYourDream/code/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/TigerInYourDream/notes/task1.md b/mover/TigerInYourDream/code/notes/task1.md similarity index 100% rename from mover/TigerInYourDream/notes/task1.md rename to mover/TigerInYourDream/code/notes/task1.md diff --git a/mover/TigerInYourDream/notes/task2.md b/mover/TigerInYourDream/code/notes/task2.md similarity index 100% rename from mover/TigerInYourDream/notes/task2.md rename to mover/TigerInYourDream/code/notes/task2.md diff --git a/mover/TigerInYourDream/notes/task3.md b/mover/TigerInYourDream/code/notes/task3.md similarity index 100% rename from mover/TigerInYourDream/notes/task3.md rename to mover/TigerInYourDream/code/notes/task3.md diff --git a/mover/TigerInYourDream/notes/task4.md b/mover/TigerInYourDream/code/notes/task4.md similarity index 100% rename from mover/TigerInYourDream/notes/task4.md rename to mover/TigerInYourDream/code/notes/task4.md diff --git a/mover/TigerInYourDream/notes/task5.md b/mover/TigerInYourDream/code/notes/task5.md similarity index 99% rename from mover/TigerInYourDream/notes/task5.md rename to mover/TigerInYourDream/code/notes/task5.md index 209dbd9c2..698c3ef55 100644 --- a/mover/TigerInYourDream/notes/task5.md +++ b/mover/TigerInYourDream/code/notes/task5.md @@ -466,7 +466,7 @@ COINB=0x06dc273473ccf56fcbe4960ff7aad8aec76d4e77c6dd94446b5603ba5bd2aa63::faucet sui client call --package 0xf00ba72ba3e180ccde2318b077b48e572f923542dfa8fda17d312c02c040351a \ --module alvin_swap \ --function generate_pool \ - --gas-budget 100000000 \ + \ --type-args $COINA $COINB ``` @@ -600,7 +600,7 @@ POOLID="0x8698274f9e029bca0a9fcd577ae570b9a465a4c01ffb9e2a8cc38ddbe20a6e60" sui client call --package $AMMPKG \ --module alvin_swap \ --function create_pocket \ - --gas-budget 100000000 + ``` 1. POCKET @@ -725,7 +725,7 @@ POCKETID="0x370ca5a1c5a6117c237ad691c7ae38d9f50d51357bc75db740af1d8bcf21426f" ```rust sui client call --package $AMMPKG --module alvin_swap --function deposit_totally \ - --gas-budget 100000000 --type-args $COINA $COINB \ + --type-args $COINA $COINB \ --args $POOLID 0x063ce9f554dc92386c8bdcdd1eae067af423d84e33725360b4e64c37cd719540 0xeaee61e8a57da7e7e4334ebf1e07c5010fae4ead6a528ee866d8b76d698155a2 $POCKETID ``` @@ -942,7 +942,7 @@ Transaction Digest: 2L1RSpXBqCwKCA8nHyMhyt4WpGydPHq9rmknmti492qZ sui client call --package $AMMPKG \ --module alvin_swap \ --function swap_b_to_a \ - --gas-budget 100000000 \ + \ --type-args $COINA $COINB \ --args $POOLID \ '["0xaa0f50671aa4fcfe3ee86b7215d4633d4f898e276b287bcf9348f93933e1779e"]' \ diff --git a/mover/Toma3610/code/readme.md b/mover/Toma3610/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Toma3610/code/task1/hello_world/Move.lock b/mover/Toma3610/code/task1/hello_world/Move.lock new file mode 100644 index 000000000..0f463b316 --- /dev/null +++ b/mover/Toma3610/code/task1/hello_world/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "60F2000F4D6DAD240EF371DB3BC521F7BD4C8B814BC59CA473B852B77FDBE53C" +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.28.3" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x74a119eaa6866ede353e88bd295f8ec2b2f1913436a3c71a9b47033a0fd65ce1" +latest-published-id = "0x74a119eaa6866ede353e88bd295f8ec2b2f1913436a3c71a9b47033a0fd65ce1" +published-version = "1" diff --git a/mover/Toma3610/code/task1/hello_world/Move.toml b/mover/Toma3610/code/task1/hello_world/Move.toml new file mode 100644 index 000000000..201de1731 --- /dev/null +++ b/mover/Toma3610/code/task1/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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] +hello_world = "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/Toma3610/code/task1/hello_world/sources/hello_world.move b/mover/Toma3610/code/task1/hello_world/sources/hello_world.move new file mode 100644 index 000000000..0a820be92 --- /dev/null +++ b/mover/Toma3610/code/task1/hello_world/sources/hello_world.move @@ -0,0 +1,20 @@ +/// Module: hello_world +module hello_world::hello_world { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"Toma3610"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/Toma3610/code/task1/hello_world/tests/hello_world_tests.move b/mover/Toma3610/code/task1/hello_world/tests/hello_world_tests.move new file mode 100644 index 000000000..8fdf06eec --- /dev/null +++ b/mover/Toma3610/code/task1/hello_world/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_world::hello_world_tests { + // uncomment this line to import the module + // use hello_world::hello_world; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_world() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_world::hello_world_tests::ENotImplemented)] + fun test_hello_world_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Toma3610/code/task2/toma3610_coin/Move.lock b/mover/Toma3610/code/task2/toma3610_coin/Move.lock new file mode 100644 index 000000000..4267b4b3a --- /dev/null +++ b/mover/Toma3610/code/task2/toma3610_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "6043BFFB07ED069F96D7398E31C46DC1314C38B51E1F988ABB972A20C89AEB86" +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.28.3" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x4937565c85650cdc064619333ccbf150ac3f5302d728948dba35f24014088491" +latest-published-id = "0x4937565c85650cdc064619333ccbf150ac3f5302d728948dba35f24014088491" +published-version = "1" diff --git a/mover/Toma3610/code/task2/toma3610_coin/Move.toml b/mover/Toma3610/code/task2/toma3610_coin/Move.toml new file mode 100644 index 000000000..7134c081d --- /dev/null +++ b/mover/Toma3610/code/task2/toma3610_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "toma3610_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://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] +toma3610_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/Toma3610/code/task2/toma3610_coin/sources/toma3610_coin.move b/mover/Toma3610/code/task2/toma3610_coin/sources/toma3610_coin.move new file mode 100644 index 000000000..1e31d9ca4 --- /dev/null +++ b/mover/Toma3610/code/task2/toma3610_coin/sources/toma3610_coin.move @@ -0,0 +1,35 @@ +/// Module: toma3610_coin +module toma3610_coin::toma3610_coin { + + use sui::coin::{Self, Coin, TreasuryCap}; + + public struct TOMA3610_COIN has drop {} + + fun init(witness: TOMA3610_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, // decimals + b"toma3610 COIN", // symbol + b"toma3610 COIN", // name + b"Amazing Coin", // description + option:: none(), // icon url + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} + diff --git a/mover/Toma3610/code/task2/toma3610_coin/tests/toma3610_coin_tests.move b/mover/Toma3610/code/task2/toma3610_coin/tests/toma3610_coin_tests.move new file mode 100644 index 000000000..7accab045 --- /dev/null +++ b/mover/Toma3610/code/task2/toma3610_coin/tests/toma3610_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module toma3610_coin::toma3610_coin_tests { + // uncomment this line to import the module + // use toma3610_coin::toma3610_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_toma3610_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::toma3610_coin::toma3610_coin_tests::ENotImplemented)] + fun test_toma3610_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Toma3610/code/task2/toma3610_faucet/Move.lock b/mover/Toma3610/code/task2/toma3610_faucet/Move.lock new file mode 100644 index 000000000..e218db499 --- /dev/null +++ b/mover/Toma3610/code/task2/toma3610_faucet/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "F1A4089620CCD44FD8BAF022496B9A5F5A62A114FF362C63F1C13D3046C2898C" +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.28.3" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x3c0cc7d21a22fdc588711aa2a33191d6cc7b29cdebc7c20873e2cac0f7dff043" +latest-published-id = "0x3c0cc7d21a22fdc588711aa2a33191d6cc7b29cdebc7c20873e2cac0f7dff043" +published-version = "1" diff --git a/mover/Toma3610/code/task2/toma3610_faucet/Move.toml b/mover/Toma3610/code/task2/toma3610_faucet/Move.toml new file mode 100644 index 000000000..b2fe4027e --- /dev/null +++ b/mover/Toma3610/code/task2/toma3610_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "toma3610_faucet" +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] +toma3610_faucet = "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/Toma3610/code/task2/toma3610_faucet/sources/toma3610_faucet.move b/mover/Toma3610/code/task2/toma3610_faucet/sources/toma3610_faucet.move new file mode 100644 index 000000000..eb9b85e58 --- /dev/null +++ b/mover/Toma3610/code/task2/toma3610_faucet/sources/toma3610_faucet.move @@ -0,0 +1,61 @@ +/// Module: toma3610_faucet +module toma3610_faucet::toma3610_faucet { + use sui::balance::{Balance}; + use sui::balance; + use sui::coin::{Self, TreasuryCap}; + public struct TOMA3610_FAUCET has drop {} + public struct PublicWallet has key { + id: UID, + coin: Balance, + faucet_amount: u64, + } + const AMOUNT: u64 = 10^12; + const EFaucetDry: u64 = 1; + #[allow(lint(share_owned))] + fun init(witness: TOMA3610_FAUCET, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 10, + b"Toma3610 Faucet", + b"Toma3610 Faucet", + b"Get some free coin", + option::none(), + ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + let wallet = PublicWallet { + id: object::new(ctx), + coin: balance::zero(), + faucet_amount: AMOUNT, + }; + transfer::share_object(wallet); + } + public entry fun mint_faucet( + treasury_cap: &mut TreasuryCap, + amount: u64, + wallet: &mut PublicWallet, + ctx: &mut TxContext) { + let coins = coin::mint(treasury_cap, amount, ctx); + balance::join(&mut wallet.coin, coin::into_balance(coins)); + } + public entry fun get_faucet(wallet: &mut PublicWallet, ctx: &mut TxContext) { + let balance_amount = balance::value(&wallet.coin); + assert!(balance_amount >= wallet.faucet_amount, EFaucetDry); + let mint_balance = balance::split(&mut wallet.coin, wallet.faucet_amount); + let faucet_coin = coin::from_balance(mint_balance, ctx); + transfer::public_transfer(faucet_coin, tx_context::sender(ctx)); + } +} +/* +sui client call --function mint_faucet --package 0x0d759fda433607390946753c250ac07ba508aad83ca5c1041ab7a599a45d6f60 --module toma3610_faucet --args 0x3c820c34d3e0f79347133d4e62cedc3b41f4d5b967c8bf6e0cf0e46337c4f087 100000000 0x49b16e90ea585968af1a6cae148bc451bb2054e96c1f928a961c5596ecf3801e --gas-budget 50000000 + +sui client call --function mint_faucet --package 0x0eb15c8bba8d234b5a4a3d17c71b273334eb56dd4ae63a390856cda35055baf7 --module toma3610_faucet --args 0x3c820c34d3e0f79347133d4e62cedc3b41f4d5b967c8bf6e0cf0e46337c4f087 100000000 0x1f8b0e11e9e0db699e820617cfeb71eac6297a65d541ce19de2c6fabc258e004 --gas-budget 50000000 + + +0x4c16905457cf4f786fb25bf963cc1ee4e68dff52d0bb96fb01b1511fe1049362 +│ │ ObjectType: 0x2::coin::TreasuryCap<0x4937565c85650cdc064619333ccbf150ac3f5302d728948dba35f24014088491::toma3610_coin::TOMA3610_COIN> │ + +sui client call --package 0x4937565c85650cdc064619333ccbf150ac3f5302d728948dba35f24014088491 --module toma3610_coin --function mint --args 0x4c16905457cf4f786fb25bf963cc1ee4e68dff52d0bb96fb01b1511fe1049362 1000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 --gas-budget 50000000 + + +*/ \ No newline at end of file diff --git a/mover/Toma3610/code/task2/toma3610_faucet/tests/toma3610_faucet_tests.move b/mover/Toma3610/code/task2/toma3610_faucet/tests/toma3610_faucet_tests.move new file mode 100644 index 000000000..70f751713 --- /dev/null +++ b/mover/Toma3610/code/task2/toma3610_faucet/tests/toma3610_faucet_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module toma3610_faucet::toma3610_faucet_tests { + // uncomment this line to import the module + // use toma3610_faucet::toma3610_faucet; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_toma3610_faucet() { + // pass + } + + #[test, expected_failure(abort_code = ::toma3610_faucet::toma3610_faucet_tests::ENotImplemented)] + fun test_toma3610_faucet_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Toma3610/code/task3/toma3610_nft/Move.lock b/mover/Toma3610/code/task3/toma3610_nft/Move.lock new file mode 100644 index 000000000..66fdbe448 --- /dev/null +++ b/mover/Toma3610/code/task3/toma3610_nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "EEC21E572315238B1A02FAE4B54EF1C4CE2FFC446075A4B5BC0625510B02488E" +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.28.3" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x7992ec142f96abb7c8a30169a8a6472af75a4d672bce4e1fc60d220100613ecf" +latest-published-id = "0x7992ec142f96abb7c8a30169a8a6472af75a4d672bce4e1fc60d220100613ecf" +published-version = "1" diff --git a/mover/Toma3610/code/task3/toma3610_nft/Move.toml b/mover/Toma3610/code/task3/toma3610_nft/Move.toml new file mode 100644 index 000000000..271d9b133 --- /dev/null +++ b/mover/Toma3610/code/task3/toma3610_nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "toma3610_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://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] +toma3610_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/Toma3610/code/task3/toma3610_nft/sources/toma3610_nft.move b/mover/Toma3610/code/task3/toma3610_nft/sources/toma3610_nft.move new file mode 100644 index 000000000..953b88e14 --- /dev/null +++ b/mover/Toma3610/code/task3/toma3610_nft/sources/toma3610_nft.move @@ -0,0 +1,70 @@ +/// Module: toma3610_nft +module toma3610_nft::toma3610_nft { + use sui::url::{Self, Url}; + use std::string; + use sui::event; + + public struct TOMA3610_NFT has key, store { + id: UID, + name: string::String, + description: string::String, + url: Url, + } + + public struct MintNFTEvent has copy, drop { + object_id: ID, + creator: address, + recipient: address, + name: string::String, + } + + public entry fun mint_and_transfer( + name: vector, + description: vector, + url: vector, + recipient: address, + ctx: &mut TxContext + ) { + let nft = TOMA3610_NFT { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + url: url::new_unsafe_from_bytes(url) + }; + let sender = tx_context::sender(ctx); + event::emit(MintNFTEvent { + object_id: object::uid_to_inner(&nft.id), + creator: sender, + recipient: recipient, + name: nft.name, + }); + transfer::public_transfer(nft, recipient); + } + + public entry fun update_description( + nft: &mut TOMA3610_NFT, + new_description: vector, + ) { + nft.description = string::utf8(new_description) + } + + public entry fun burn(nft: TOMA3610_NFT) { + let TOMA3610_NFT { id, name: _, description: _, url: _ } = nft; + object::delete(id) + } + + public fun name(nft: &TOMA3610_NFT): &string::String { + &nft.name + } + + public fun description(nft: &TOMA3610_NFT): &string::String { + &nft.description + } + + public fun url(nft: &TOMA3610_NFT): &Url { + &nft.url + } +} + + + diff --git a/mover/Toma3610/code/task3/toma3610_nft/tests/toma3610_nft_tests.move b/mover/Toma3610/code/task3/toma3610_nft/tests/toma3610_nft_tests.move new file mode 100644 index 000000000..b81d32e87 --- /dev/null +++ b/mover/Toma3610/code/task3/toma3610_nft/tests/toma3610_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module toma3610_nft::toma3610_nft_tests { + // uncomment this line to import the module + // use toma3610_nft::toma3610_nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_toma3610_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::toma3610_nft::toma3610_nft_tests::ENotImplemented)] + fun test_toma3610_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Toma3610/images/img.png b/mover/Toma3610/images/img.png new file mode 100644 index 000000000..65ffa95d5 Binary files /dev/null and b/mover/Toma3610/images/img.png differ diff --git a/mover/Toma3610/images/img_1.png b/mover/Toma3610/images/img_1.png new file mode 100644 index 000000000..7dba5de90 Binary files /dev/null and b/mover/Toma3610/images/img_1.png differ diff --git a/mover/Toma3610/images/img_2.png b/mover/Toma3610/images/img_2.png new file mode 100644 index 000000000..f6fa45a89 Binary files /dev/null and b/mover/Toma3610/images/img_2.png differ diff --git a/mover/Toma3610/images/img_3.png b/mover/Toma3610/images/img_3.png new file mode 100644 index 000000000..eb4ee51db Binary files /dev/null and b/mover/Toma3610/images/img_3.png differ diff --git a/mover/Toma3610/notes/readme.md b/mover/Toma3610/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Toma3610/readme.md b/mover/Toma3610/readme.md new file mode 100644 index 000000000..b71ae7d48 --- /dev/null +++ b/mover/Toma3610/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x379691743aa92a4b0149bed9c76141630e9fc08773a75bf03090b02470038d1f` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `Toma3610` + +## 个人简介 +- 工作经验: 6年 +- 技术栈: `Rust` `Java` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `https://t.me/toma3610` + +## 任务 + +## 01 hello move +- [X] Sui cli version: sui 1.28.3-3781a7e6b56c +- [X] Sui钱包截图: ![Sui钱包截图](./images/img.png) +- [X] package id: 0xad9f1f24ef3600679786e26d338facda00d22e825ec45bf7d541900b241513ca +- [X] package id 在 scan上的查看截图:![Scan截图](./images/img_1.png) + +## 02 move coin +- [X] My Coin package id : 0x4937565c85650cdc064619333ccbf150ac3f5302d728948dba35f24014088491 +- [X] Faucet package id : 0x0d759fda433607390946753c250ac07ba508aad83ca5c1041ab7a599a45d6f60 +- [X] 转账 `My Coin` hash: 3fDFtaSj8uSpUj5Anu7ZS2ia3bQPpGWo38f8smUc81Kk +- [X] `Faucet Coin` address1 mint hash:9HDNpTewQPVVtXXk2aQJAH1K3YmBFN2krFcSJJryF4cq +- [X] `Faucet Coin` address2 mint hash:D5s8XG4jZmqPeeSS3Nxi2fyC9iuk4ucrmKMHXmHPwzLy + +## 03 move NFT +- [X] nft package id : 0x7992ec142f96abb7c8a30169a8a6472af75a4d672bce4e1fc60d220100613ecf +- [X] nft object id : 0x715fa803c984d4422d6c41438db987149c7322a83cda892a39646bc769fdd073 +- [X] 转账 nft hash: 34XyUjoyoi3Mww9zaX5hmC62B1LeZspFMa91ydg5kFdt +- [X] scan上的NFT截图:![Scan截图](./images/img_3.png) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/TuYv/code/task2/Move.lock b/mover/TuYv/code/task2/Move.lock new file mode 100644 index 000000000..c48f288c4 --- /dev/null +++ b/mover/TuYv/code/task2/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E20F7B875151C02A84CB62F15CE244CD9459290374DF5CEC37CE342685BB3DFA" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.25.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x8099ac083ddae7f59ed0bcfffdd4c81f9688f2a326538771e2fcf3f5ab5f288f" +latest-published-id = "0x8099ac083ddae7f59ed0bcfffdd4c81f9688f2a326538771e2fcf3f5ab5f288f" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777" +latest-published-id = "0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777" +published-version = "1" diff --git a/mover/TuYv/code/task2/Move.toml b/mover/TuYv/code/task2/Move.toml new file mode 100644 index 000000000..75912c7ad --- /dev/null +++ b/mover/TuYv/code/task2/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "task2" +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/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] +task2 = "0x0" +tuyuFaucet = "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/TuYv/code/task2/publish_log.txt b/mover/TuYv/code/task2/publish_log.txt new file mode 100644 index 000000000..d0c7eb44f --- /dev/null +++ b/mover/TuYv/code/task2/publish_log.txt @@ -0,0 +1,726 @@ +Transaction Digest: 9nbsiA6N4SYR4n1SFawehmrTtCtB96VomnZZGQeUEZ7D +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ Gas Owner: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Version: 146253169 │ +│ │ Digest: 7pEECoashihQ7rwqGJrSnytSFwtktpnr2zqRjSd5deKq │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ HDGZc2Ary97rVOHWYgeMm7qmlYsxYEsdXbYO9cQJmmWmuAWLQcEIghER04Y+fGwMgQEy5lUJuSG6z/owLG+XBw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 9nbsiA6N4SYR4n1SFawehmrTtCtB96VomnZZGQeUEZ7D │ +│ Status: Success │ +│ Executed Epoch: 409 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x0270657197d2584b65f307871fec6db6ead73cacb3ff2d54cbf6e81cd0f40312 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253170 │ +│ │ Digest: G1pzn2MJaGowWWaHwcJ44KpLpYA7G3s7DDRRMg92Xfwa │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0c8a7aec5a5da82a7f4517454df3254313b43ed610ae7eeeee4155f495058e83 │ +│ │ Owner: Immutable │ +│ │ Version: 146253170 │ +│ │ Digest: Gych4AwZqLXuqcDkvAttXMu2DMJh38dNrChh2szYH7Lo │ +│ └── │ +│ ┌── │ +│ │ ID: 0x96f96b3029af57bfd44b0f1b0b76af23dd8475ea26026e26ca8096fdc6e5bd77 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 8UE4wHqhm4f4riSJarsFRJuXP3dc4GFbUANxNknQAxS9 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xee26664d8f4e3fded78d94c2cb4d0e760f229781c6981ae01540b17d6af82895 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253170 │ +│ │ Digest: 2xt8hJSRZF6byFTAFRBHWjPHqxWqryr4hnyqeAyhMUcW │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253170 │ +│ │ Digest: Hw2jMeG2Vkxug1TkQZh3VPJNSvBYGkP7eUrXRuDM6Hoy │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253170 │ +│ │ Digest: Hw2jMeG2Vkxug1TkQZh3VPJNSvBYGkP7eUrXRuDM6Hoy │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 13702800 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ AgpweUKwe9Q2NeKt8iv3gckaYwziTCzZsuAH14HdWxvN │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0270657197d2584b65f307871fec6db6ead73cacb3ff2d54cbf6e81cd0f40312 │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 146253170 │ +│ │ Digest: G1pzn2MJaGowWWaHwcJ44KpLpYA7G3s7DDRRMg92Xfwa │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x0c8a7aec5a5da82a7f4517454df3254313b43ed610ae7eeeee4155f495058e83 │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x96f96b3029af57bfd44b0f1b0b76af23dd8475ea26026e26ca8096fdc6e5bd77::TuYv::TUYV> │ +│ │ Version: 146253170 │ +│ │ Digest: Gych4AwZqLXuqcDkvAttXMu2DMJh38dNrChh2szYH7Lo │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xee26664d8f4e3fded78d94c2cb4d0e760f229781c6981ae01540b17d6af82895 │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x96f96b3029af57bfd44b0f1b0b76af23dd8475ea26026e26ca8096fdc6e5bd77::TuYv::TUYV> │ +│ │ Version: 146253170 │ +│ │ Digest: 2xt8hJSRZF6byFTAFRBHWjPHqxWqryr4hnyqeAyhMUcW │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 146253170 │ +│ │ Digest: Hw2jMeG2Vkxug1TkQZh3VPJNSvBYGkP7eUrXRuDM6Hoy │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x96f96b3029af57bfd44b0f1b0b76af23dd8475ea26026e26ca8096fdc6e5bd77 │ +│ │ Version: 1 │ +│ │ Digest: 8UE4wHqhm4f4riSJarsFRJuXP3dc4GFbUANxNknQAxS9 │ +│ │ Modules: TuYv │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -13474680 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + + + +mint +Transaction Digest: 4XZjbN5Qo4AvqB85sBhK6vAJPrF5DxxgmFi423BQTUom +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ Gas Owner: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ Gas Budget: 30000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Version: 146253170 │ +│ │ Digest: Hw2jMeG2Vkxug1TkQZh3VPJNSvBYGkP7eUrXRuDM6Hoy │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0xee26664d8f4e3fded78d94c2cb4d0e760f229781c6981ae01540b17d6af82895 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "10000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: TuYv │ │ +│ │ │ Package: 0x96f96b3029af57bfd44b0f1b0b76af23dd8475ea26026e26ca8096fdc6e5bd77 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ uJj3i2p8HQOCrQp2P58ktRyCNmjgcch6Bh9FgJBzrVHG9YNhdR54X2+AnG8FFOLjYY15QpsuW2+6rEWaNl9cDg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 4XZjbN5Qo4AvqB85sBhK6vAJPrF5DxxgmFi423BQTUom │ +│ Status: Success │ +│ Executed Epoch: 409 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x9751162c85df2071c18d63dfd2ffd35792f801a21ee8fc492cf8aaaa8e8ce0f0 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253171 │ +│ │ Digest: 93SSNphDuwn4XmgyCqpPmd3mvRrjs7ksxnGVjZSxo7mT │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253171 │ +│ │ Digest: 9iESXhqaP6q3bmv55JqBsXJWDkJsCjjwyp5tEvQJZgf9 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xee26664d8f4e3fded78d94c2cb4d0e760f229781c6981ae01540b17d6af82895 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253171 │ +│ │ Digest: 7ZmFTeayfZr27CHyj58R8PmrHdkThfGeqQSG9jNyMaFU │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253171 │ +│ │ Digest: 7ZmFTeayfZr27CHyj58R8PmrHdkThfGeqQSG9jNyMaFU │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2099304 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ CoinType: 0x96f96b3029af57bfd44b0f1b0b76af23dd8475ea26026e26ca8096fdc6e5bd77::TuYv::TUYV │ +│ │ Amount: 10000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + +faucet + +Transaction Digest: mYPW8k6QmMunBjpRsbFRDVLANEh8hCP4V7kDK1RX7Wy +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ Gas Owner: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ Gas Budget: 300000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Version: 146253171 │ +│ │ Digest: 9iESXhqaP6q3bmv55JqBsXJWDkJsCjjwyp5tEvQJZgf9 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ WO4JzsW0dTFOtwihgb8uQhRPy1AEpbWOnwi1bAG6J5DSicRv2nQw31w4gdrX2rshVfn3bs/FfNaFqq2q8a0DCQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: mYPW8k6QmMunBjpRsbFRDVLANEh8hCP4V7kDK1RX7Wy │ +│ Status: Success │ +│ Executed Epoch: 410 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x1f0173a80e16be5c607e8760dd496c99c1e131105e4d88c5dda64cee9871f71a │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253172 │ +│ │ Digest: 7tUZMMWtVNncT8VFpH8z1zF8vU1ubJUCAwkLrrrBep19 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x4311467ba6341f24f6a645b09e02d14bc99a9c314f567bae235195d8f92e3fab │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253172 │ +│ │ Digest: 4gLsDa3oBZAr3422iMkVFjhquPyYJwvq1Mq6Ns5cqTo6 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x497abaef1f1b19a8bc9785796987bcfbfa8cb008dee95f79c4253a29eeab1d7d │ +│ │ Owner: Immutable │ +│ │ Version: 146253172 │ +│ │ Digest: FFt94aDveT1M2mz9NMF2tnKtJ4qfhbSCuoSAAd81Dm6e │ +│ └── │ +│ ┌── │ +│ │ ID: 0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: HWHqxuPFiSTfLpuqCNsm45kmjPyJvJbwS885sLMsxP4y │ +│ └── │ +│ ┌── │ +│ │ ID: 0xe04e93ef94a5b8ebdd12c120d1fcf55b31ee25f7ad0f2166902b3c1f39aa616b │ +│ │ Owner: Shared │ +│ │ Version: 146253172 │ +│ │ Digest: w4nbfThs3rcy6jV1ohgHtofF55kiWHQtqmQ7nFxNk3p │ +│ └── │ +│ ┌── │ +│ │ ID: 0xe1eb7df932a323dacf5aa9322b8aa85552d2b68e3ccb964a8dd5e5bd5de6b07b │ +│ │ Owner: Immutable │ +│ │ Version: 146253172 │ +│ │ Digest: 9PQ15G1ibYcoiWaNDQiSx7nJPcsVjxG6zePaYpNM2EGb │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253172 │ +│ │ Digest: 8K1rnwHDzbkLXj1JV87cpfqg9vcsUa964XriS1GwUi1d │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253172 │ +│ │ Digest: 8K1rnwHDzbkLXj1JV87cpfqg9vcsUa964XriS1GwUi1d │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 23362400 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 4XZjbN5Qo4AvqB85sBhK6vAJPrF5DxxgmFi423BQTUom │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x1f0173a80e16be5c607e8760dd496c99c1e131105e4d88c5dda64cee9871f71a │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 146253172 │ +│ │ Digest: 7tUZMMWtVNncT8VFpH8z1zF8vU1ubJUCAwkLrrrBep19 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x4311467ba6341f24f6a645b09e02d14bc99a9c314f567bae235195d8f92e3fab │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777::TuYv::TUYV> │ +│ │ Version: 146253172 │ +│ │ Digest: 4gLsDa3oBZAr3422iMkVFjhquPyYJwvq1Mq6Ns5cqTo6 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x497abaef1f1b19a8bc9785796987bcfbfa8cb008dee95f79c4253a29eeab1d7d │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777::tuyv_faucet::TUYV_FAUCET> │ +│ │ Version: 146253172 │ +│ │ Digest: FFt94aDveT1M2mz9NMF2tnKtJ4qfhbSCuoSAAd81Dm6e │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xe04e93ef94a5b8ebdd12c120d1fcf55b31ee25f7ad0f2166902b3c1f39aa616b │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Shared │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777::tuyv_faucet::TUYV_FAUCET> │ +│ │ Version: 146253172 │ +│ │ Digest: w4nbfThs3rcy6jV1ohgHtofF55kiWHQtqmQ7nFxNk3p │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xe1eb7df932a323dacf5aa9322b8aa85552d2b68e3ccb964a8dd5e5bd5de6b07b │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777::TuYv::TUYV> │ +│ │ Version: 146253172 │ +│ │ Digest: 9PQ15G1ibYcoiWaNDQiSx7nJPcsVjxG6zePaYpNM2EGb │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 146253172 │ +│ │ Digest: 8K1rnwHDzbkLXj1JV87cpfqg9vcsUa964XriS1GwUi1d │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777 │ +│ │ Version: 1 │ +│ │ Digest: HWHqxuPFiSTfLpuqCNsm45kmjPyJvJbwS885sLMsxP4y │ +│ │ Modules: TuYv, tuyv_faucet │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -23134280 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + + +faucet mint 1 +Transaction Digest: 8uKUceGQ6K7mLm58qSGe95NJaScF69Z8ZRLQ3WmWuMch +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ Gas Owner: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Version: 146253172 │ +│ │ Digest: 8K1rnwHDzbkLXj1JV87cpfqg9vcsUa964XriS1GwUi1d │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0xe04e93ef94a5b8ebdd12c120d1fcf55b31ee25f7ad0f2166902b3c1f39aa616b │ │ +│ │ 1 Pure Arg: Type: u64, Value: "10000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: tuyv_faucet │ │ +│ │ │ Package: 0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ tjulrDExRzt3VukSotD3D/wF4P55VmgiKrMY/T91oG2LS2ioxJHNye3QnBfCT5kOHiDRF2GQj6J3bgRA/M37Cg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 8uKUceGQ6K7mLm58qSGe95NJaScF69Z8ZRLQ3WmWuMch │ +│ Status: Success │ +│ Executed Epoch: 410 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x32814aa71ea7a82d8402f57535c6660c726437d27f27319679cd9ee9ddc7239b │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253173 │ +│ │ Digest: 7YhrxrcbouN7w7GD7Ci2boQbeQTyBpcnJpiizycgEbCc │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253173 │ +│ │ Digest: 6yXrRN9Uw6i2jKsG4wCWNh3eTox8YRmdjCK6mN35TNK3 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xe04e93ef94a5b8ebdd12c120d1fcf55b31ee25f7ad0f2166902b3c1f39aa616b │ +│ │ Owner: Shared │ +│ │ Version: 146253173 │ +│ │ Digest: HHcZoMF8YVtZMFxtE337DTndQri3GDpfArAkRohXTRVG │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xe04e93ef94a5b8ebdd12c120d1fcf55b31ee25f7ad0f2166902b3c1f39aa616b │ +│ │ Version: 146253172 │ +│ │ Digest: w4nbfThs3rcy6jV1ohgHtofF55kiWHQtqmQ7nFxNk3p │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253173 │ +│ │ Digest: 6yXrRN9Uw6i2jKsG4wCWNh3eTox8YRmdjCK6mN35TNK3 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4225600 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 2768832 MIST │ +│ Non-refundable Storage Fee: 27968 MIST │ +│ │ +│ Transaction Dependencies: │ +│ mYPW8k6QmMunBjpRsbFRDVLANEh8hCP4V7kDK1RX7Wy │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x32814aa71ea7a82d8402f57535c6660c726437d27f27319679cd9ee9ddc7239b │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ ObjectType: 0x2::coin::Coin<0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777::tuyv_faucet::TUYV_FAUCET> │ +│ │ Version: 146253173 │ +│ │ Digest: 7YhrxrcbouN7w7GD7Ci2boQbeQTyBpcnJpiizycgEbCc │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 146253173 │ +│ │ Digest: 6yXrRN9Uw6i2jKsG4wCWNh3eTox8YRmdjCK6mN35TNK3 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xe04e93ef94a5b8ebdd12c120d1fcf55b31ee25f7ad0f2166902b3c1f39aa616b │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Shared │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777::tuyv_faucet::TUYV_FAUCET> │ +│ │ Version: 146253173 │ +│ │ Digest: HHcZoMF8YVtZMFxtE337DTndQri3GDpfArAkRohXTRVG │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2206768 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ CoinType: 0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777::tuyv_faucet::TUYV_FAUCET │ +│ │ Amount: 10000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ + +faucet mint 2 + +Transaction Digest: AFt27RHTc4QSraZWkByCvxB3h6iTGxHMwWUsMLwMuRZp +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x9da90d9a671e16f81ade020d6139213eae0b2a6b97da5d4bd1b6a9253a4e012e │ +│ Gas Owner: 0x9da90d9a671e16f81ade020d6139213eae0b2a6b97da5d4bd1b6a9253a4e012e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x888659982639d03717095aaf4a3eb44ab4fdc8fa2154747387a2f15d95f60207 │ +│ │ Version: 146253174 │ +│ │ Digest: GcXx7RaNfuUZqpXYaDwGv7K6FDnduLzvuGY4VKnTQ8rJ │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0xe04e93ef94a5b8ebdd12c120d1fcf55b31ee25f7ad0f2166902b3c1f39aa616b │ │ +│ │ 1 Pure Arg: Type: u64, Value: "10000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x9da90d9a671e16f81ade020d6139213eae0b2a6b97da5d4bd1b6a9253a4e012e" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: tuyv_faucet │ │ +│ │ │ Package: 0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 5RIP9I2ls73RxTOtVGq2fZo42POFNWMwOXRAquKFKxW9jaKAeSr5NuFJZ6BltGeRxHU3QSngYUi9HR9wC1y8CA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: AFt27RHTc4QSraZWkByCvxB3h6iTGxHMwWUsMLwMuRZp │ +│ Status: Success │ +│ Executed Epoch: 410 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xd973ca9f7b546d37f6fcb42307f487205e8b7823abcad4670eff9ba4246f23c1 │ +│ │ Owner: Account Address ( 0x9da90d9a671e16f81ade020d6139213eae0b2a6b97da5d4bd1b6a9253a4e012e ) │ +│ │ Version: 146253175 │ +│ │ Digest: 8vc2jkwe2339JcVDPMZjG35t6PQD7DAq8hiiwDmZ81pp │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x888659982639d03717095aaf4a3eb44ab4fdc8fa2154747387a2f15d95f60207 │ +│ │ Owner: Account Address ( 0x9da90d9a671e16f81ade020d6139213eae0b2a6b97da5d4bd1b6a9253a4e012e ) │ +│ │ Version: 146253175 │ +│ │ Digest: Adwz7AKhP2Chm5AfxcmxKuQnavKg9VdipRBjwNTBDRbZ │ +│ └── │ +│ ┌── │ +│ │ ID: 0xe04e93ef94a5b8ebdd12c120d1fcf55b31ee25f7ad0f2166902b3c1f39aa616b │ +│ │ Owner: Shared │ +│ │ Version: 146253175 │ +│ │ Digest: H68HZGejyAouzzBP1KBvRHw6nNihzdUY2Xzyf4H4BDV2 │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xe04e93ef94a5b8ebdd12c120d1fcf55b31ee25f7ad0f2166902b3c1f39aa616b │ +│ │ Version: 146253173 │ +│ │ Digest: HHcZoMF8YVtZMFxtE337DTndQri3GDpfArAkRohXTRVG │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x888659982639d03717095aaf4a3eb44ab4fdc8fa2154747387a2f15d95f60207 │ +│ │ Owner: Account Address ( 0x9da90d9a671e16f81ade020d6139213eae0b2a6b97da5d4bd1b6a9253a4e012e ) │ +│ │ Version: 146253175 │ +│ │ Digest: Adwz7AKhP2Chm5AfxcmxKuQnavKg9VdipRBjwNTBDRbZ │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4225600 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 2768832 MIST │ +│ Non-refundable Storage Fee: 27968 MIST │ +│ │ +│ Transaction Dependencies: │ +│ mYPW8k6QmMunBjpRsbFRDVLANEh8hCP4V7kDK1RX7Wy │ +│ 5u4HcTAxW98XYWjYj5vN6gDrWnWCbAF2GVx8GrzwytDA │ +│ 8uKUceGQ6K7mLm58qSGe95NJaScF69Z8ZRLQ3WmWuMch │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xd973ca9f7b546d37f6fcb42307f487205e8b7823abcad4670eff9ba4246f23c1 │ +│ │ Sender: 0x9da90d9a671e16f81ade020d6139213eae0b2a6b97da5d4bd1b6a9253a4e012e │ +│ │ Owner: Account Address ( 0x9da90d9a671e16f81ade020d6139213eae0b2a6b97da5d4bd1b6a9253a4e012e ) │ +│ │ ObjectType: 0x2::coin::Coin<0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777::tuyv_faucet::TUYV_FAUCET> │ +│ │ Version: 146253175 │ +│ │ Digest: 8vc2jkwe2339JcVDPMZjG35t6PQD7DAq8hiiwDmZ81pp │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x888659982639d03717095aaf4a3eb44ab4fdc8fa2154747387a2f15d95f60207 │ +│ │ Sender: 0x9da90d9a671e16f81ade020d6139213eae0b2a6b97da5d4bd1b6a9253a4e012e │ +│ │ Owner: Account Address ( 0x9da90d9a671e16f81ade020d6139213eae0b2a6b97da5d4bd1b6a9253a4e012e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 146253175 │ +│ │ Digest: Adwz7AKhP2Chm5AfxcmxKuQnavKg9VdipRBjwNTBDRbZ │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xe04e93ef94a5b8ebdd12c120d1fcf55b31ee25f7ad0f2166902b3c1f39aa616b │ +│ │ Sender: 0x9da90d9a671e16f81ade020d6139213eae0b2a6b97da5d4bd1b6a9253a4e012e │ +│ │ Owner: Shared │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777::tuyv_faucet::TUYV_FAUCET> │ +│ │ Version: 146253175 │ +│ │ Digest: H68HZGejyAouzzBP1KBvRHw6nNihzdUY2Xzyf4H4BDV2 │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x9da90d9a671e16f81ade020d6139213eae0b2a6b97da5d4bd1b6a9253a4e012e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2206768 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x9da90d9a671e16f81ade020d6139213eae0b2a6b97da5d4bd1b6a9253a4e012e ) │ +│ │ CoinType: 0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777::tuyv_faucet::TUYV_FAUCET │ +│ │ Amount: 10000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/TuYv/code/task2/sources/task2.move b/mover/TuYv/code/task2/sources/task2.move new file mode 100644 index 000000000..48ecc8b6f --- /dev/null +++ b/mover/TuYv/code/task2/sources/task2.move @@ -0,0 +1,38 @@ +/// Module: task2 +module task2::TuYv { + use sui::coin::{Self,Coin,TreasuryCap}; + use std::option::{none}; + + //定义一个有drop能力的结构体,使其符合witness模式 + //todo 这里有个很神奇的地方 结构体必须全大写 而且和module一致 + public struct TUYV has drop{} + + fun init(witness: TUYV, ctx: &mut TxContext ) { + let(treasuryCap, coinMetadata) = coin::create_currency( + witness, + 2, + b"TY", + b"TuYv Coin", + b"god bless you", + none(), + ctx + ); + //freeze_object是不可变的共享对象,这样币的元信息就是可见但不可变的了 + transfer::public_freeze_object(coinMetadata); + transfer::public_transfer(treasuryCap, tx_context::sender(ctx)); + } + + /** + * 传入代币的treasuryCap,mint的金额, 接收的地址 + */ + public fun mint(treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx) + } + + public fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} diff --git a/mover/TuYv/code/task2/sources/tuyuFaucet.move b/mover/TuYv/code/task2/sources/tuyuFaucet.move new file mode 100644 index 000000000..24d441b2a --- /dev/null +++ b/mover/TuYv/code/task2/sources/tuyuFaucet.move @@ -0,0 +1,37 @@ +/// Module: task2 +module tuyuFaucet::tuyv_faucet { + use sui::coin::{Self,Coin,TreasuryCap}; + use std::option::{none}; + + public struct TUYV_FAUCET has drop{} + + #[allow(lint(share_owned))] + fun init(witness: TUYV_FAUCET, ctx: &mut TxContext ) { + let(treasuryCap, coinMetadata) = coin::create_currency( + witness, + 2, + b"TYF", + b"TuYv Faucet", + b"god bless you", + none(), + ctx + ); + //freeze_object是不可变的共享对象,这样币的元信息就是可见但不可变的了 + transfer::public_freeze_object(coinMetadata); + transfer::public_share_object(treasuryCap); + } + + /** + * 传入代币的treasuryCap,mint的金额, 接收的地址 + */ + public fun mint(treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx) + } + + public fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} diff --git a/mover/TuYv/code/task2/tests/task2_tests.move b/mover/TuYv/code/task2/tests/task2_tests.move new file mode 100644 index 000000000..81e8c886d --- /dev/null +++ b/mover/TuYv/code/task2/tests/task2_tests.move @@ -0,0 +1,19 @@ +/* +#[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 + } +} +*/ diff --git a/mover/TuYv/code/task3/Move.lock b/mover/TuYv/code/task3/Move.lock new file mode 100644 index 000000000..25a3e47cc --- /dev/null +++ b/mover/TuYv/code/task3/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "EAB89BE9AB696DF2B08888FFE8F2835679FEAFD4876B876C5A1761F7FF3BD6DF" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.22.0" +edition = "legacy" +flavor = "sui" diff --git a/mover/TuYv/code/task3/Move.toml b/mover/TuYv/code/task3/Move.toml new file mode 100644 index 000000000..084bf0aba --- /dev/null +++ b/mover/TuYv/code/task3/Move.toml @@ -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://gitee.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" + diff --git a/mover/TuYv/code/task3/publish_log.txt b/mover/TuYv/code/task3/publish_log.txt new file mode 100644 index 000000000..caef3d04d --- /dev/null +++ b/mover/TuYv/code/task3/publish_log.txt @@ -0,0 +1,415 @@ +Transaction Digest: BN8kcjiF4bYuVVhfQUJ8gnekztnLTDHkuJ7JKYXpfgeb +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ Gas Owner: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Version: 146253174 │ +│ │ Digest: HvjcmNTgbQvPQLdRE3xrGdE2V5TNriwte4Cf1Cwaayox │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ YjeDxE/H5lu1zHGHO8FF0UuNcEMSmdYTfM+s8oubOUJU5KAA2718ZLmPyl03BGrDbX1KHbOzvqMJVVR1Y8swDw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: BN8kcjiF4bYuVVhfQUJ8gnekztnLTDHkuJ7JKYXpfgeb │ +│ Status: Success │ +│ Executed Epoch: 410 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x14af850833d60adf5c140de6b8d5404b38544e5b5d3ea137901d4945ff984352 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253175 │ +│ │ Digest: CGrqYQXV1uvwn5oDCUoh3vDL3jzXzBBgeE4fXjmLSP12 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x182b8c924f7fa599447f50b13fdb8b93aa0d938866cf9bf03a28432e708362b4 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253175 │ +│ │ Digest: GTdyQfnLdLMz7ztqu7YqcicJvGhEQphtT2oe9XyAqbnf │ +│ └── │ +│ ┌── │ +│ │ ID: 0x9cf4dd321a1db40886be126c0201b28598b0a5182ef79f84e10daafdc5e4a729 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 8A7G66CxSuWsA6rrw59utG4V2UKwi4gsdjny92ykdtKx │ +│ └── │ +│ ┌── │ +│ │ ID: 0xa341184183bfcb408bf2e4b673b94dc5887b78e54fda6a77fd9fa411c463251e │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253175 │ +│ │ Digest: i7YmFYraMt6V2JegVDDhdLiJr1CDBXjDsTjoshQ59tM │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253175 │ +│ │ Digest: B6id88PntPRxYcYCePC1bCwMYjzNDuSLiZG776Zwozvy │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253175 │ +│ │ Digest: B6id88PntPRxYcYCePC1bCwMYjzNDuSLiZG776Zwozvy │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 15352000 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 5u4HcTAxW98XYWjYj5vN6gDrWnWCbAF2GVx8GrzwytDA │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: BN8kcjiF4bYuVVhfQUJ8gnekztnLTDHkuJ7JKYXpfgeb:0 │ +│ │ PackageID: 0x9cf4dd321a1db40886be126c0201b28598b0a5182ef79f84e10daafdc5e4a729 │ +│ │ Transaction Module: TuYv_NFT │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ EventType: 0x2::display::DisplayCreated<0x9cf4dd321a1db40886be126c0201b28598b0a5182ef79f84e10daafdc5e4a729::TuYv_NFT::TuYv> │ +│ │ ParsedJSON: │ +│ │ ┌────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ id │ 0x14af850833d60adf5c140de6b8d5404b38544e5b5d3ea137901d4945ff984352 │ │ +│ │ └────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +│ ┌── │ +│ │ EventID: BN8kcjiF4bYuVVhfQUJ8gnekztnLTDHkuJ7JKYXpfgeb:1 │ +│ │ PackageID: 0x9cf4dd321a1db40886be126c0201b28598b0a5182ef79f84e10daafdc5e4a729 │ +│ │ Transaction Module: TuYv_NFT │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ EventType: 0x2::display::VersionUpdated<0x9cf4dd321a1db40886be126c0201b28598b0a5182ef79f84e10daafdc5e4a729::TuYv_NFT::TuYv> │ +│ │ ParsedJSON: │ +│ │ ┌─────────┬──────────┬───────┬──────────────────────────────────────────────────┐ │ +│ │ │ fields │ contents │ key │ name │ │ +│ │ │ │ ├───────┼──────────────────────────────────────────────────┤ │ +│ │ │ │ │ value │ {name} │ │ +│ │ │ │ ├───────┼──────────────────────────────────────────────────┤ │ +│ │ │ │ │ key │ image_url │ │ +│ │ │ │ ├───────┼──────────────────────────────────────────────────┤ │ +│ │ │ │ │ value │ https://avatars.githubusercontent.com/u/22782479 │ │ +│ │ ├─────────┼──────────┴───────┴──────────────────────────────────────────────────┤ │ +│ │ │ id │ 0x14af850833d60adf5c140de6b8d5404b38544e5b5d3ea137901d4945ff984352 │ │ +│ │ ├─────────┼─────────────────────────────────────────────────────────────────────┤ │ +│ │ │ version │ 1 │ │ +│ │ └─────────┴─────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x14af850833d60adf5c140de6b8d5404b38544e5b5d3ea137901d4945ff984352 │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ ObjectType: 0x2::display::Display<0x9cf4dd321a1db40886be126c0201b28598b0a5182ef79f84e10daafdc5e4a729::TuYv_NFT::TuYv> │ +│ │ Version: 146253175 │ +│ │ Digest: CGrqYQXV1uvwn5oDCUoh3vDL3jzXzBBgeE4fXjmLSP12 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x182b8c924f7fa599447f50b13fdb8b93aa0d938866cf9bf03a28432e708362b4 │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 146253175 │ +│ │ Digest: GTdyQfnLdLMz7ztqu7YqcicJvGhEQphtT2oe9XyAqbnf │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xa341184183bfcb408bf2e4b673b94dc5887b78e54fda6a77fd9fa411c463251e │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ ObjectType: 0x2::package::Publisher │ +│ │ Version: 146253175 │ +│ │ Digest: i7YmFYraMt6V2JegVDDhdLiJr1CDBXjDsTjoshQ59tM │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 146253175 │ +│ │ Digest: B6id88PntPRxYcYCePC1bCwMYjzNDuSLiZG776Zwozvy │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x9cf4dd321a1db40886be126c0201b28598b0a5182ef79f84e10daafdc5e4a729 │ +│ │ Version: 1 │ +│ │ Digest: 8A7G66CxSuWsA6rrw59utG4V2UKwi4gsdjny92ykdtKx │ +│ │ Modules: TuYv_NFT │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -15123880 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +sui client call --gas-budget 7500000 --package 0x9cf4dd321a1db40886be126c0201b28598b0a5182ef79f84e10daafdc5e4a729 --module TuYv_NFT --function mint_to_sender --args "tuyu's nft" + + +Transaction Digest: jGH2ZN8s7vPLntPGRshNBoAdTtGAip6P42FVSDspPkC +╭─────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ Gas Owner: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Version: 146253175 │ +│ │ Digest: B6id88PntPRxYcYCePC1bCwMYjzNDuSLiZG776Zwozvy │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: 0x1::string::String, Value: "tuyu's nft" │ │ +│ ╰──────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint_to_sender │ │ +│ │ │ Module: TuYv_NFT │ │ +│ │ │ Package: 0x9cf4dd321a1db40886be126c0201b28598b0a5182ef79f84e10daafdc5e4a729 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 916A2mZ5ecJiiy+UfM/p7XC3/5+SgUrDIOVP99dvzF3BGSDSsPG2otO7z0k6RImMloCQgzozoMMBLaOIcJhbAQ== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: jGH2ZN8s7vPLntPGRshNBoAdTtGAip6P42FVSDspPkC │ +│ Status: Success │ +│ Executed Epoch: 410 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x62e8dc93eaaa01a490adcee693cf1fa69dca774332aaa14eac67f214f466c8a4 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253176 │ +│ │ Digest: FFgHmZiyg6X4k571ytFz37Sm7svAZor7VLMzzxQ1PndS │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253176 │ +│ │ Digest: 5qvFFbwMLTNs4XBubGRfSiqLn2ZJXHrbGuNUL1bbQJKv │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253176 │ +│ │ Digest: 5qvFFbwMLTNs4XBubGRfSiqLn2ZJXHrbGuNUL1bbQJKv │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2356000 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ BN8kcjiF4bYuVVhfQUJ8gnekztnLTDHkuJ7JKYXpfgeb │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x62e8dc93eaaa01a490adcee693cf1fa69dca774332aaa14eac67f214f466c8a4 │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ ObjectType: 0x9cf4dd321a1db40886be126c0201b28598b0a5182ef79f84e10daafdc5e4a729::TuYv_NFT::TuYv │ +│ │ Version: 146253176 │ +│ │ Digest: FFgHmZiyg6X4k571ytFz37Sm7svAZor7VLMzzxQ1PndS │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 146253176 │ +│ │ Digest: 5qvFFbwMLTNs4XBubGRfSiqLn2ZJXHrbGuNUL1bbQJKv │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2127880 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + +sui client call --package 0x9cf4dd321a1db40886be126c0201b28598b0a5182ef79f84e10daafdc5e4a729 --module TuYv_NFT --function transfer --args "0x62e8dc93eaaa01a490adcee693cf1fa69dca774332aaa14eac67f214f466c8a4" "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" +[warn] Client/Server api version mismatch, client api version : 1.22.0, server api version : 1.25.1 +Transaction Digest: BogGY49Q56wKyUX53htfWgpchANyVzR6teBfh8BVsbrs +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ Gas Owner: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Version: 146253176 │ +│ │ Digest: 5qvFFbwMLTNs4XBubGRfSiqLn2ZJXHrbGuNUL1bbQJKv │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x62e8dc93eaaa01a490adcee693cf1fa69dca774332aaa14eac67f214f466c8a4 │ │ +│ │ 1 Pure Arg: Type: address, Value: "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: transfer │ │ +│ │ │ Module: TuYv_NFT │ │ +│ │ │ Package: 0x9cf4dd321a1db40886be126c0201b28598b0a5182ef79f84e10daafdc5e4a729 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ ZpazzhfLkHPjkWJ27jeC/hh1WMN6+FnW0XfjuozdZLFoaY25kWQA4bsr1cA9mYqpXH+DD62BMEvnoPRy1QA3BA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: BogGY49Q56wKyUX53htfWgpchANyVzR6teBfh8BVsbrs │ +│ Status: Success │ +│ Executed Epoch: 410 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x62e8dc93eaaa01a490adcee693cf1fa69dca774332aaa14eac67f214f466c8a4 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ Version: 146253177 │ +│ │ Digest: 3X9jhk59cAR4cwBjGbuNiskGSE9hDAxxAv9GeM9GCV5u │ +│ └── │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253177 │ +│ │ Digest: FCfYwKKtgWwMJmwxvems8ipgTT7i9L9871GCt7xsshvB │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ Version: 146253177 │ +│ │ Digest: FCfYwKKtgWwMJmwxvems8ipgTT7i9L9871GCt7xsshvB │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2356000 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 2332440 MIST │ +│ Non-refundable Storage Fee: 23560 MIST │ +│ │ +│ Transaction Dependencies: │ +│ jGH2ZN8s7vPLntPGRshNBoAdTtGAip6P42FVSDspPkC │ +│ BN8kcjiF4bYuVVhfQUJ8gnekztnLTDHkuJ7JKYXpfgeb │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x62e8dc93eaaa01a490adcee693cf1fa69dca774332aaa14eac67f214f466c8a4 │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ ObjectType: 0x9cf4dd321a1db40886be126c0201b28598b0a5182ef79f84e10daafdc5e4a729::TuYv_NFT::TuYv │ +│ │ Version: 146253177 │ +│ │ Digest: 3X9jhk59cAR4cwBjGbuNiskGSE9hDAxxAv9GeM9GCV5u │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x827b9ca1e3c62c69df35b75c9a794199afc1f0179add19e1d989cc14b0128742 │ +│ │ Sender: 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 146253177 │ +│ │ Digest: FCfYwKKtgWwMJmwxvems8ipgTT7i9L9871GCt7xsshvB │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xc187cfe01fdb2c8d3a81d12f54183e0d7e7d735da3cf0995be72102164f1cf6c ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -773560 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/TuYv/code/task3/sources/task3.move b/mover/TuYv/code/task3/sources/task3.move new file mode 100644 index 000000000..76bdc8c0f --- /dev/null +++ b/mover/TuYv/code/task3/sources/task3.move @@ -0,0 +1,47 @@ +/// Module: task3 +module task3::TuYv_NFT { + use std::string::{utf8, String}; + use sui::package; + use sui::display; + + //定义一个叫TuYv的结构体包含该类型nft的属性 + public struct TuYv has key, store { + id: UID, + name: String + } + + //OTW 是一个与模块名相同(字母大写)并只含有`drop`的结构体 + //在另一个资料中找到了我的答案 + public struct TUYV_NFT has drop {} + + fun init(otw: TUYV_NFT, ctx: &mut TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url")]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://avatars.githubusercontent.com/u/22782479")]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values, ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + public entry fun mint_to_sender(name: String, ctx: &mut TxContext) { + let sender = tx_context::sender(ctx); + let nft = TuYv{ + id: object::new(ctx), + name, + }; + transfer::public_transfer(nft, sender); + } + + public entry fun transfer(nft: TuYv, recipient: address, _: &mut TxContext) { + transfer::public_transfer(nft, recipient) + } +} diff --git a/mover/TuYv/code/task3/tests/task3_tests.move b/mover/TuYv/code/task3/tests/task3_tests.move new file mode 100644 index 000000000..f931bedcc --- /dev/null +++ b/mover/TuYv/code/task3/tests/task3_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task3::task3_tests { + // uncomment this line to import the module + // use task3::task3; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task3() { + // pass + } + + #[test, expected_failure(abort_code = task3::task3_tests::ENotImplemented)] + fun test_task3_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/TuYv/images/TuYv's NFT.png b/mover/TuYv/images/TuYv's NFT.png new file mode 100644 index 000000000..8c836397e Binary files /dev/null and b/mover/TuYv/images/TuYv's NFT.png differ diff --git a/mover/TuYv/readme.md b/mover/TuYv/readme.md index 6df923d9b..4dcb86e9c 100644 --- a/mover/TuYv/readme.md +++ b/mover/TuYv/readme.md @@ -19,17 +19,17 @@ - [] package id 在 scan上的查看截图:![Scan截图](./images/你的图片地址) ## 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 : 0x96f96b3029af57bfd44b0f1b0b76af23dd8475ea26026e26ca8096fdc6e5bd77 +- [x] Faucet package id : 0xc9e44b1f7af4dff2d61b720ee6e780922f96fbc8a1022dc93d46ef78b1481777 +- [x] 转账 `My Coin` hash: 4XZjbN5Qo4AvqB85sBhK6vAJPrF5DxxgmFi423BQTUom +- [x] `Faucet Coin` address1 mint hash: 8uKUceGQ6K7mLm58qSGe95NJaScF69Z8ZRLQ3WmWuMch +- [x] `Faucet Coin` address2 mint hash: AFt27RHTc4QSraZWkByCvxB3h6iTGxHMwWUsMLwMuRZp ## 03 move NFT -- [] nft package id : -- [] nft object id : -- [] 转账 nft hash: -- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) +- [x] nft package id : 0x9cf4dd321a1db40886be126c0201b28598b0a5182ef79f84e10daafdc5e4a729 +- [x] nft object id : 0x62e8dc93eaaa01a490adcee693cf1fa69dca774332aaa14eac67f214f466c8a4 +- [] 转账 nft hash:BogGY49Q56wKyUX53htfWgpchANyVzR6teBfh8BVsbrs +- [] scan上的NFT截图:![Scan截图](./images/TuYv's NFT.png) ## 04 Move Game - [] game package id : diff --git a/mover/TylerDurden511/code/readme.md b/mover/TylerDurden511/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/TylerDurden511/code/task1/hello_world/Move.lock b/mover/TylerDurden511/code/task1/hello_world/Move.lock new file mode 100644 index 000000000..fd7ef7fe3 --- /dev/null +++ b/mover/TylerDurden511/code/task1/hello_world/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "C9074628C1840ABBFC431C503B4491CA366647292DE116FC92B976D7080E583E" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/WGB5445/sui.git", rev = "framework/testnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/WGB5445/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.alpha" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "49fe5305" +original-published-id = "0x8ee80fa6f910cbbf62b735426572216a697f91f64051e123bb7b954b44451c25" +latest-published-id = "0x8ee80fa6f910cbbf62b735426572216a697f91f64051e123bb7b954b44451c25" +published-version = "1" diff --git a/mover/TylerDurden511/code/task1/hello_world/Move.toml b/mover/TylerDurden511/code/task1/hello_world/Move.toml new file mode 100644 index 000000000..329b0d1c8 --- /dev/null +++ b/mover/TylerDurden511/code/task1/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +edition = "2024.alpha" # 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/WGB5445/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] +hello_world = "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/TylerDurden511/code/task1/hello_world/sources/hello.move b/mover/TylerDurden511/code/task1/hello_world/sources/hello.move new file mode 100644 index 000000000..98d4f49dd --- /dev/null +++ b/mover/TylerDurden511/code/task1/hello_world/sources/hello.move @@ -0,0 +1,19 @@ +module hello_world::hello { + use sui::object::{Self, UID}; + use sui::tx_context::{Self, TxContext}; + use std::string::{Self, String}; + use sui::transfer; + + public struct Hello has key { + id: UID, + str: String, + } + + public fun say_hello(ctx: &mut TxContext) { + let word = Hello { + id: object::new(ctx), + str: string::utf8(b"Hello TylerDurden511"), + }; + transfer::transfer(word, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/TylerDurden511/code/task1/hello_world/sources/hello_world.move b/mover/TylerDurden511/code/task1/hello_world/sources/hello_world.move new file mode 100644 index 000000000..f8f484a86 --- /dev/null +++ b/mover/TylerDurden511/code/task1/hello_world/sources/hello_world.move @@ -0,0 +1,6 @@ +/* +/// Module: hello_world +module hello_world::hello_world { + +} +*/ diff --git a/mover/TylerDurden511/code/task1/hello_world/tests/hello_world_tests.move b/mover/TylerDurden511/code/task1/hello_world/tests/hello_world_tests.move new file mode 100644 index 000000000..fefedbe62 --- /dev/null +++ b/mover/TylerDurden511/code/task1/hello_world/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_world::hello_world_tests { + // uncomment this line to import the module + // use hello_world::hello_world; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_world() { + // pass + } + + #[test, expected_failure(abort_code = hello_world::hello_world_tests::ENotImplemented)] + fun test_hello_world_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/TylerDurden511/images/scanSearch.png b/mover/TylerDurden511/images/scanSearch.png new file mode 100644 index 000000000..f89c590fc Binary files /dev/null and b/mover/TylerDurden511/images/scanSearch.png differ diff --git a/mover/TylerDurden511/images/wallet.png b/mover/TylerDurden511/images/wallet.png new file mode 100644 index 000000000..33cb62212 Binary files /dev/null and b/mover/TylerDurden511/images/wallet.png differ diff --git a/mover/TylerDurden511/notes/readme.md b/mover/TylerDurden511/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/TylerDurden511/readme.md b/mover/TylerDurden511/readme.md new file mode 100644 index 000000000..ca58c5528 --- /dev/null +++ b/mover/TylerDurden511/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x05c67836f41488c9ccc23ec130fabd47f0c3768e7e6459f51a1f1d77c1ad8178` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `TylerDurden511` + +## 个人简介 +- 工作经验: 0年(学生) +- 技术栈: `java` `go` +> 重要提示 请认真写自己的简介 +- 对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: wechat:`zhl1588111113` + +## 任务 + +## 01 hello move +- [] Sui cli version:sui 1.27.0-e5f080922d56-dirty +- [] Sui钱包截图: ![Sui钱包截图](./images/wallet.png) +- [] package id:0x8ee80fa6f910cbbf62b735426572216a697f91f64051e123bb7b954b44451c25 +- [] package id 在 scan上的查看截图:![Scan截图](./images/scanSearch.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/Wbqqqq/code/readme.md b/mover/Wbqqqq/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Wbqqqq/code/task1/Move.lock b/mover/Wbqqqq/code/task1/Move.lock new file mode 100644 index 000000000..5f4995b1d --- /dev/null +++ b/mover/Wbqqqq/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "23C730475A68F1E6BEDDB2CD78A3EB131C4A59425643F732B34CA8F439B08D68" +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 = "0x40b41f6f8b0f66c1a90b367c230eeada71f26fb4b41e4a616a673aac54a98d63" +latest-published-id = "0x40b41f6f8b0f66c1a90b367c230eeada71f26fb4b41e4a616a673aac54a98d63" +published-version = "1" diff --git a/mover/Wbqqqq/code/task1/Move.toml b/mover/Wbqqqq/code/task1/Move.toml new file mode 100644 index 000000000..f6bf62a02 --- /dev/null +++ b/mover/Wbqqqq/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello" +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] +hello = "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/Wbqqqq/code/task1/sources/hello.move b/mover/Wbqqqq/code/task1/sources/hello.move new file mode 100644 index 000000000..c24470ba4 --- /dev/null +++ b/mover/Wbqqqq/code/task1/sources/hello.move @@ -0,0 +1,19 @@ +module hello::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"Wbqqqq"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/Wbqqqq/code/task1/test.sh b/mover/Wbqqqq/code/task1/test.sh new file mode 100644 index 000000000..40bcc9d02 --- /dev/null +++ b/mover/Wbqqqq/code/task1/test.sh @@ -0,0 +1,7 @@ +curl --location --request POST 'https://faucet.testnet.sui.io/gas' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "FixedAmountRequest": { + "recipient": "0xc0d67d6436a498dbd16ece05d179c134089fc7e2cd81b038f08e6daaa594026c" + } +}' \ No newline at end of file diff --git a/mover/Wbqqqq/code/task1/tests/hello_tests.move b/mover/Wbqqqq/code/task1/tests/hello_tests.move new file mode 100644 index 000000000..34dfcfb57 --- /dev/null +++ b/mover/Wbqqqq/code/task1/tests/hello_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello::hello_tests { + // uncomment this line to import the module + // use hello::hello; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello() { + // pass + } + + #[test, expected_failure(abort_code = ::hello::hello_tests::ENotImplemented)] + fun test_hello_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Wbqqqq/code/task2/faucet_coin/Move.lock b/mover/Wbqqqq/code/task2/faucet_coin/Move.lock new file mode 100644 index 000000000..15a937c5d --- /dev/null +++ b/mover/Wbqqqq/code/task2/faucet_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "F8CFCF256E2F1BB7CD401C27799A09C40777C5C100F0DFA253E86DD7F0D4ED1B" +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 = "0x77fc4975f41d294cdaa6ba1e6dafb1d3389bce6a00acc0fafc04a6504dfca07d" +latest-published-id = "0x77fc4975f41d294cdaa6ba1e6dafb1d3389bce6a00acc0fafc04a6504dfca07d" +published-version = "1" diff --git a/mover/Wbqqqq/code/task2/faucet_coin/Move.toml b/mover/Wbqqqq/code/task2/faucet_coin/Move.toml new file mode 100644 index 000000000..c3498cc2a --- /dev/null +++ b/mover/Wbqqqq/code/task2/faucet_coin/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "faucet_coin" +edition = "2024.beta" # edition = "legacy" to use legacy (pre-2024) Move +published-at = "0x77fc4975f41d294cdaa6ba1e6dafb1d3389bce6a00acc0fafc04a6504dfca07d" +# 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] +faucet_coin = "0x77fc4975f41d294cdaa6ba1e6dafb1d3389bce6a00acc0fafc04a6504dfca07d" + +# 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/Wbqqqq/code/task2/faucet_coin/sources/faucet_coin.move b/mover/Wbqqqq/code/task2/faucet_coin/sources/faucet_coin.move new file mode 100644 index 000000000..0129567a8 --- /dev/null +++ b/mover/Wbqqqq/code/task2/faucet_coin/sources/faucet_coin.move @@ -0,0 +1,26 @@ +/// Module: faucet_coin +module faucet_coin::faucet_coin { + use sui::coin::{Self, TreasuryCap}; + use sui::url::{Url,Self}; + + public struct FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: FAUCET_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, 6, b"Wbqqqq", b"Wbqqqq", b"Move coin by Wbqqqq", option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/17332298")), ctx); + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury); + + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } + +} diff --git a/mover/Wbqqqq/code/task2/faucet_coin/tests/faucet_coin_tests.move b/mover/Wbqqqq/code/task2/faucet_coin/tests/faucet_coin_tests.move new file mode 100644 index 000000000..88a42bf8e --- /dev/null +++ b/mover/Wbqqqq/code/task2/faucet_coin/tests/faucet_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[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/Wbqqqq/code/task2/faucet_coin/tests/test.sh b/mover/Wbqqqq/code/task2/faucet_coin/tests/test.sh new file mode 100644 index 000000000..ae3fba7e2 --- /dev/null +++ b/mover/Wbqqqq/code/task2/faucet_coin/tests/test.sh @@ -0,0 +1,4 @@ +sui client call --package 0x2 --module coin --function mint_and_transfer \ + --args 0x42774ee851f5de2c7be93785863e5c2b23cdcf701e14f419d10ede9ae8bc4b7e \ + 20000000 0xc0d67d6436a498dbd16ece05d179c134089fc7e2cd81b038f08e6daaa594026c \ + --type-args "0x77fc4975f41d294cdaa6ba1e6dafb1d3389bce6a00acc0fafc04a6504dfca07d::faucet_coin::FAUCET_COIN" \ No newline at end of file diff --git a/mover/Wbqqqq/code/task2/my_coin/Move.lock b/mover/Wbqqqq/code/task2/my_coin/Move.lock new file mode 100644 index 000000000..20ac0e76a --- /dev/null +++ b/mover/Wbqqqq/code/task2/my_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "29CAFF69448443EB191659E9F2EB510FD126794B7E1C5F73354008D8F74AEEFB" +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 = "0x711c39ac903e296e5496c291c147221301771b763d48259ca0dba325ca5000aa" +latest-published-id = "0x711c39ac903e296e5496c291c147221301771b763d48259ca0dba325ca5000aa" +published-version = "1" diff --git a/mover/Wbqqqq/code/task2/my_coin/Move.toml b/mover/Wbqqqq/code/task2/my_coin/Move.toml new file mode 100644 index 000000000..4ce784f5b --- /dev/null +++ b/mover/Wbqqqq/code/task2/my_coin/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "my_coin" +edition = "2024.beta" # edition = "legacy" to use legacy (pre-2024) Move +published-at = "0x711c39ac903e296e5496c291c147221301771b763d48259ca0dba325ca5000aa" + +# 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] +my_coin = "0x711c39ac903e296e5496c291c147221301771b763d48259ca0dba325ca5000aa" + +# 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/Wbqqqq/code/task2/my_coin/sources/my_coin.move b/mover/Wbqqqq/code/task2/my_coin/sources/my_coin.move new file mode 100644 index 000000000..0fd319e2d --- /dev/null +++ b/mover/Wbqqqq/code/task2/my_coin/sources/my_coin.move @@ -0,0 +1,23 @@ +module my_coin::my_coin { + use sui::coin::{Self, TreasuryCap}; + use sui::url::{Url,Self}; + + public struct MY_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: MY_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, 6, b"Wbqqqq", b"Wbqqqq", b"Move coin by Wbqqqq", option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/17332298")), ctx); + transfer::public_share_object(metadata); + transfer::public_transfer(treasury, ctx.sender()) + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } +} \ No newline at end of file diff --git a/mover/Wbqqqq/code/task2/my_coin/tests/my_coin_tests.move b/mover/Wbqqqq/code/task2/my_coin/tests/my_coin_tests.move new file mode 100644 index 000000000..4be556acf --- /dev/null +++ b/mover/Wbqqqq/code/task2/my_coin/tests/my_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[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/Wbqqqq/code/task2/my_coin/tests/test.sh b/mover/Wbqqqq/code/task2/my_coin/tests/test.sh new file mode 100644 index 000000000..0a8bff799 --- /dev/null +++ b/mover/Wbqqqq/code/task2/my_coin/tests/test.sh @@ -0,0 +1,6 @@ +#0x711c39ac903e296e5496c291c147221301771b763d48259ca0dba325ca5000aa + +sui client call --package 0x2 --module coin --function mint_and_transfer \ + --args 0xd4d465bf994b6c644dac8b25c1e5c3c75f30a9c34f24f10eda5044ddfce5a3ac \ + 2000000 0xc0d67d6436a498dbd16ece05d179c134089fc7e2cd81b038f08e6daaa594026c \ + --type-args "0x711c39ac903e296e5496c291c147221301771b763d48259ca0dba325ca5000aa::my_coin::MY_COIN" \ No newline at end of file diff --git a/mover/Wbqqqq/code/task3/nft/Move.lock b/mover/Wbqqqq/code/task3/nft/Move.lock new file mode 100644 index 000000000..168147fe7 --- /dev/null +++ b/mover/Wbqqqq/code/task3/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9D4FCF5807A34E3110DFBA44AD92FEFEC55EE3DE8CF58F3D302F55D3004E70D1" +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 = "0xd3dc564d57640ec90ba2c197a63ca44b7e41b4a989c06f3c8a224e90fde0bc38" +latest-published-id = "0xd3dc564d57640ec90ba2c197a63ca44b7e41b4a989c06f3c8a224e90fde0bc38" +published-version = "1" diff --git a/mover/Wbqqqq/code/task3/nft/Move.toml b/mover/Wbqqqq/code/task3/nft/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/Wbqqqq/code/task3/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/Wbqqqq/code/task3/nft/sources/nft.move b/mover/Wbqqqq/code/task3/nft/sources/nft.move new file mode 100644 index 000000000..822ade18f --- /dev/null +++ b/mover/Wbqqqq/code/task3/nft/sources/nft.move @@ -0,0 +1,49 @@ +/// Module: move_nft +module nft::nft { + use std::string::{utf8, String}; + use sui::package; + use sui::display; + + //funtion some nft + public struct Wbqqqq has key, store { + id: UID, + name: String + } + + //OTW is same with module name + public struct NFT has drop {} + + fun init(otw: NFT, ctx: &mut TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url")]; + + let values = vector[ + utf8(b"Wbqqqq_NFT"), + utf8(b"https://avatars.githubusercontent.com/u/17332298")]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values, ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + + public entry fun mint_to_sender(name: String, ctx: &mut TxContext) { + let sender = tx_context::sender(ctx); + let nft = Wbqqqq{ + id: object::new(ctx), + name, + }; + transfer::public_transfer(nft, sender); + } + + public entry fun transfer(nft: Wbqqqq, recipient: address, _: &mut TxContext) { + transfer::public_transfer(nft, recipient) + } + +} + diff --git a/mover/Wbqqqq/code/task3/nft/tests/nft_tests.move b/mover/Wbqqqq/code/task3/nft/tests/nft_tests.move new file mode 100644 index 000000000..1e3625fad --- /dev/null +++ b/mover/Wbqqqq/code/task3/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Wbqqqq/code/task3/nft/tests/test.sh b/mover/Wbqqqq/code/task3/nft/tests/test.sh new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Wbqqqq/code/task4/flip_coin/Move.lock b/mover/Wbqqqq/code/task4/flip_coin/Move.lock new file mode 100644 index 000000000..d63169f76 --- /dev/null +++ b/mover/Wbqqqq/code/task4/flip_coin/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "FCE5BEF2575CB6CDEC536DF7641FF07B73DC64F6A2A6F265FB1DE3B6E13F6FF8" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "faucet_coin" }, +] + +[[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.package]] +name = "faucet_coin" +source = { local = "../../task2/faucet_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.27.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x32dc2903a9f210df96d819e57f7b1a57793ad35276fc07b11be1028075482728" +latest-published-id = "0x32dc2903a9f210df96d819e57f7b1a57793ad35276fc07b11be1028075482728" +published-version = "1" diff --git a/mover/Wbqqqq/code/task4/flip_coin/Move.toml b/mover/Wbqqqq/code/task4/flip_coin/Move.toml new file mode 100644 index 000000000..deb824a7b --- /dev/null +++ b/mover/Wbqqqq/code/task4/flip_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "flip_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://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } +faucet_coin = { local = "../../task2/faucet_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] +flip_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/Wbqqqq/code/task4/flip_coin/sources/flip_coin.move b/mover/Wbqqqq/code/task4/flip_coin/sources/flip_coin.move new file mode 100644 index 000000000..9c4afa250 --- /dev/null +++ b/mover/Wbqqqq/code/task4/flip_coin/sources/flip_coin.move @@ -0,0 +1,100 @@ +module flip_coin::flip_coin { + + use sui::balance; + use sui::balance::{Balance, zero}; + use sui::coin; + use sui::coin::{from_balance, into_balance}; + use sui::object; + use sui::random; + use sui::random::Random; + use sui::transfer::{share_object, transfer, public_transfer}; + use sui::tx_context::sender; + use faucet_coin::faucet_coin::FAUCET_COIN; + + public struct Game has key { + id: UID, + val: Balance, + } + + public struct AdaminCap has key { + id: UID, + } + + + fun init(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + val: zero(), + }; + + share_object(game); + + let admin = AdaminCap { + id: object::new(ctx), + }; + + transfer(admin, sender(ctx)); + } + + public entry fun play( + game: &mut Game, + flip_value: bool, + in: coin::Coin, + rand: &Random, + ctx: &mut TxContext + ) { + let coin_value = coin::value(&in); + + let game_val = balance::value(&game.val); + + // 池子总量大于投注数量,防止给用户返还资金不够 + if (game_val < coin_value) { + abort 0; + }; + // 池子总量大于投注数量10倍,防止all in漏洞 + if (game_val < coin_value * 10) { + abort 1; + }; + + // 生成随机数 + let mut gen = random::new_generator(rand, ctx); + let flag = random::generate_bool(&mut gen); + + // 双倍返还 + let play_address = sender(ctx); + if (flip_value == flag) { + withdraw(game, coin_value, play_address, ctx); + public_transfer(in, play_address); + } else { + // 放入国库 + deposit(game, in, ctx); + } + } + + // 内部存钱 + fun deposit(game: &mut Game, in: coin::Coin, ctx: &mut TxContext) { + let in_balance = into_balance(in); + balance::join(&mut game.val, in_balance); + } + + // 供外部调用存钱 + public entry fun public_deposit( + game: &mut Game, + in: coin::Coin, + ctx: &mut TxContext + ) { + deposit(game, in, ctx); + } + + // 内部取钱 + fun withdraw(game: &mut Game, amt: u64, to: address, ctx: &mut TxContext) { + let win_balance = balance::split(&mut game.val, amt); + let win_coin = from_balance(win_balance, ctx); + public_transfer(win_coin, to); + } + + // 供外部调用 + public entry fun public_withdraw(_: &AdaminCap, game: &mut Game, amt: u64, ctx: &mut TxContext) { + withdraw(game, amt, sender(ctx), ctx); + } +} diff --git a/mover/Wbqqqq/code/task4/flip_coin/tests/flip_coin_tests.move b/mover/Wbqqqq/code/task4/flip_coin/tests/flip_coin_tests.move new file mode 100644 index 000000000..cd0b3cdfd --- /dev/null +++ b/mover/Wbqqqq/code/task4/flip_coin/tests/flip_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module flip_coin::flip_coin_tests { + // uncomment this line to import the module + // use flip_coin::flip_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_flip_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::flip_coin::flip_coin_tests::ENotImplemented)] + fun test_flip_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Wbqqqq/code/task4/flip_coin/tests/test.sh b/mover/Wbqqqq/code/task4/flip_coin/tests/test.sh new file mode 100644 index 000000000..47f7eb373 --- /dev/null +++ b/mover/Wbqqqq/code/task4/flip_coin/tests/test.sh @@ -0,0 +1,27 @@ + + +PackageID=0x32dc2903a9f210df96d819e57f7b1a57793ad35276fc07b11be1028075482728 +Game=0xc29667697fbee503ca3e06ca48f41927042a3728ca52faef8b734aa8b4a9efd6 +input1=0x02093f99f58dc1417789811bbfd7dc72aada1f5948c737ab5c90bb6be5efc8c8 +rand=0x0000000000000000000000000000000000000000000000000000000000000008 +input2=0x49587691e3b54835c741a014347a51ba0b0dd2ad6c2d84d183f232c49aa41fd2 +adminCap=0xf03d57cba17fea72ce3f23ba7dc3c69e932744ea92ba846d8c464dc6d6c13f89 +# Deposit +#sui client call --package $PackageID\ +# --module flip_coin \ +# --function public_deposit \ +# --args $Game $input1 + + +## play +#sui client call --package $PackageID\ +# --module flip_coin \ +# --function play \ +# --args $Game true $input2 $rand + + +sui client call --package $PackageID \ + --module flip_coin \ + --function public_withdraw \ + --args $adminCap $Game 600000000 \ + --gas-budget 10000000 \ No newline at end of file diff --git a/mover/Wbqqqq/code/task5/swap/Move.lock b/mover/Wbqqqq/code/task5/swap/Move.lock new file mode 100644 index 000000000..42ff90e3d --- /dev/null +++ b/mover/Wbqqqq/code/task5/swap/Move.lock @@ -0,0 +1,52 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "AD6EBA1C12233990DFC183D08F477965827AB1FDC3A70BDA622A6A0734217682" +deps_digest = "060AD7E57DFB13104F21BE5F5C3759D03F0553FC3229247D9A7A6B45F50D03A3" +dependencies = [ + { name = "Sui" }, + { name = "faucet_coin" }, + { name = "my_coin" }, +] + +[[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.package]] +name = "faucet_coin" +source = { local = "../../task2/faucet_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "my_coin" +source = { local = "../../task2/my_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.27.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x6a08caf25d583e00384519090f441a9c922ac235d7d5899894b07a92f13b5d77" +latest-published-id = "0x6a08caf25d583e00384519090f441a9c922ac235d7d5899894b07a92f13b5d77" +published-version = "1" diff --git a/mover/Wbqqqq/code/task5/swap/Move.toml b/mover/Wbqqqq/code/task5/swap/Move.toml new file mode 100644 index 000000000..20ecfb89f --- /dev/null +++ b/mover/Wbqqqq/code/task5/swap/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "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 (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" } +faucet_coin= { local = "../../task2/faucet_coin" } +my_coin= { local = "../../task2/my_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] +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" + diff --git a/mover/Wbqqqq/code/task5/swap/sources/swap.move b/mover/Wbqqqq/code/task5/swap/sources/swap.move new file mode 100644 index 000000000..ef2441acf --- /dev/null +++ b/mover/Wbqqqq/code/task5/swap/sources/swap.move @@ -0,0 +1,79 @@ +/// Module: m4sk93_swap +module swap::swap { + use std::string::{Self, String}; + use sui::clock::{Self, Clock}; + use sui::event; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::tx_context::sender; + use faucet_coin::faucet_coin::{Self, FAUCET_COIN}; + use my_coin::my_coin::{Self, MY_COIN}; + + /// 银行提供换汇服务 + public struct Bank has key { + id: UID, + USD: Balance, + RMB: Balance, + /// exchange rate: 1 USD = 7 RMB + rate: u64, + } + + public struct AdminCap has key { + id: UID, + } + + public fun get_rate(bank: &Bank): u64 { + bank.rate + } + + public entry fun set_rate(_: &AdminCap, bank: &mut Bank, rate: u64, _: &mut TxContext) { + bank.rate= rate; + } + + fun init(ctx: &mut TxContext) { + let bank = Bank { + id: object::new(ctx), + USD: balance::zero(), + RMB: balance::zero(), + rate: 7, + }; + transfer::share_object(bank); + + let admin_cap = AdminCap { id: object::new(ctx) }; + transfer::transfer(admin_cap, sender(ctx)); + } + + public entry fun deposit_RMB(bank:&mut Bank,rmb:Coin,_:&mut TxContext){ + balance::join(&mut bank.RMB,coin::into_balance(rmb)); + } + + public entry fun deposit_USD(bank:&mut Bank,usd:Coin,_:&mut TxContext){ + balance::join(&mut bank.USD,coin::into_balance(usd)); + } + + public entry fun swap_usd2rmb(bank: &mut Bank, usd: Coin, ctx: &mut TxContext) { + let usd_amount = coin::value(&usd); + let rmb_amount = usd_amount * bank.rate; + + balance::join(&mut bank.USD, coin::into_balance(usd)); + + let rmb_balance = balance::split(&mut bank.RMB, rmb_amount); + let rmb = coin::from_balance(rmb_balance, ctx); + + transfer::public_transfer(rmb, sender(ctx)); + } + + public entry fun swap_rmb2usd(bank: &mut Bank, rmb: Coin, ctx: &mut TxContext) { + + let rmb_amount = coin::value(&rmb); + let usd_amount = rmb_amount / bank.rate; + + balance::join(&mut bank.RMB, coin::into_balance(rmb)); + + let usd_balance = balance::split(&mut bank.USD, usd_amount); + let usd = coin::from_balance(usd_balance, ctx); + + transfer::public_transfer(usd, sender(ctx)); + } + +} diff --git a/mover/Wbqqqq/code/task5/swap/tests/swap_tests.move b/mover/Wbqqqq/code/task5/swap/tests/swap_tests.move new file mode 100644 index 000000000..3da47bebd --- /dev/null +++ b/mover/Wbqqqq/code/task5/swap/tests/swap_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module swap::swap_tests { + // uncomment this line to import the module + // use swap::swap; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_swap() { + // pass + } + + #[test, expected_failure(abort_code = ::swap::swap_tests::ENotImplemented)] + fun test_swap_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/Wbqqqq/code/task5/swap/tests/test.sh b/mover/Wbqqqq/code/task5/swap/tests/test.sh new file mode 100644 index 000000000..8e7bba692 --- /dev/null +++ b/mover/Wbqqqq/code/task5/swap/tests/test.sh @@ -0,0 +1,27 @@ +PackageID=0x6a08caf25d583e00384519090f441a9c922ac235d7d5899894b07a92f13b5d77 +Bank=0x911dbd3183c0782bef574521e5388f5fa0427feedc8f16a628a20e0270886d87 +rmbInput=0x4107b4b850664ca79110be43c0ef3fad375eb5a6d1011235368443bc093e7aca +usdInput=0xf8c66af02f652c0b24eb7b47f8888b0bdb6f15c568ab7a3a823782e065a62455 +usdLite=0x1e95e6feb742d7f5c0501088c135943ee5c42e83b6c0ab1fee8b3a3d482d19dd +rmbLite=0xf642043487905ce43cd4db781c57bc887ed05a5f9ed11e3a8807c52db85332e7 + +#sui client call --package $PackageID \ +# --module swap \ +# --function deposit_RMB \ +# --args $Bank $rmbInput \ +#sui client call --package $PackageID \ +# --module swap \ +# --function deposit_USD \ +# --args $Bank $usdInput \ +# --gas-budget 50000000 +#sui client call --package $PackageID \ +# --module swap \ +# --function swap_usd2rmb \ +# --args $Bank $usdLite \ +# --gas-budget 5000000 +sui client call --package $PackageID \ + --module swap \ + --function swap_rmb2usd \ + --args $Bank $rmbLite \ + --gas-budget 5000000 + diff --git a/mover/Wbqqqq/images/nft.png b/mover/Wbqqqq/images/nft.png new file mode 100644 index 000000000..394650870 Binary files /dev/null and b/mover/Wbqqqq/images/nft.png differ diff --git a/mover/Wbqqqq/images/sui_hello_scan.png b/mover/Wbqqqq/images/sui_hello_scan.png new file mode 100644 index 000000000..c1ab6d7ad Binary files /dev/null and b/mover/Wbqqqq/images/sui_hello_scan.png differ diff --git a/mover/Wbqqqq/images/sui_wallet.png b/mover/Wbqqqq/images/sui_wallet.png new file mode 100644 index 000000000..4d2dc3ea3 Binary files /dev/null and b/mover/Wbqqqq/images/sui_wallet.png differ diff --git a/mover/Wbqqqq/notes/readme.md b/mover/Wbqqqq/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Wbqqqq/readme.md b/mover/Wbqqqq/readme.md new file mode 100644 index 000000000..3bcb3343f --- /dev/null +++ b/mover/Wbqqqq/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xc0100e2aeabf566856da019847049d51dab17314ef7fa1ab30d142cbd864c99a` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `Wbqqqq` + +## 个人简介 +- 工作经验: x年 +- 技术栈: `Rust` `C++` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `xxx` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.27.2-homebrew +- [x] Sui钱包截图: ![Sui钱包截图](./images/sui_wallet.png) +- [x] package id: 0x8776fc158e31417ac9b804dc069d70f916caaf55bc1bcee601d68146c4d6674c +- [x] package id 在 scan上的查看截图:![Scan截图](./images/sui_hello_scan.png) + +## 02 move coin +- [] My Coin package id : 0x711c39ac903e296e5496c291c147221301771b763d48259ca0dba325ca5000aa +- [] Faucet package id : 0x77fc4975f41d294cdaa6ba1e6dafb1d3389bce6a00acc0fafc04a6504dfca07d +- [] 转账 `My Coin` hash: 3nnPp9iqtzDGgThP5z7V3czih2sxjKEcRya3mGNZLvRU +- [] `Faucet Coin` address1 mint hash: 7xKKXdZB96ThLpr36SQvGewBbdwrP6TB81WNMooz9dJJ +- [] `Faucet Coin` address2 mint hash: EpGvQEe764mpHdaBmusZkgk5CrBc8BXSVcwxrJHgdB15 + +## 03 move NFT +- [] nft package id : 0xd3dc564d57640ec90ba2c197a63ca44b7e41b4a989c06f3c8a224e90fde0bc38 +- [] nft object id : 0xa6700469274e79a6a67979e106190fd13676cedc925966a2d73941011ae724e8 +- [] 转账 nft hash: 2LjuvVZmWQFe7s2ckbQKmeRbqQcdNq53qpK3iofxX8n4 +- [] scan上的NFT截图:![Scan截图](./images/nft.png) + +## 04 Move Game +- [] game package id : 0x32dc2903a9f210df96d819e57f7b1a57793ad35276fc07b11be1028075482728 +- [] deposit Coin hash: 9k7QvdPqgkk9PykDwbF4LygYHqBGHumoHJm7mxSUdmcu +- [] withdraw `Coin` hash: F9UChKqdA1FtFL6FEEBCcJrFBytDqhXcjQ1MhKVrytU1 +- [] play game hash: 5isEytPfzCn9hXKRuSNj95z3XmYjg1k4RER789CUKzHX + +## 05 Move Swap +- [] swap package id : 0x6a08caf25d583e00384519090f441a9c922ac235d7d5899894b07a92f13b5d77 +- [] call swap CoinA-> CoinB hash : F81mYMDdjSWbRsjRC3cCCqJH2QrHLLDPKKPu4te2xFAi +- [] call swap CoinB-> CoinA hash : 54NPiPbVNyiszCusVLKWdGgx2AjDbsZEXqJuw2tWUygc + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/WgoW/code/task1/hello_move/publish.sh b/mover/WgoW/code/task1/hello_move/publish.sh index ad7b36a80..70a9b354e 100644 --- a/mover/WgoW/code/task1/hello_move/publish.sh +++ b/mover/WgoW/code/task1/hello_move/publish.sh @@ -1 +1 @@ -sui client publish --gas-budget 100000000 \ No newline at end of file +sui client publish \ No newline at end of file diff --git a/mover/WgoW/x.sh b/mover/WgoW/x.sh index eb67ca320..91e890b4f 100644 --- a/mover/WgoW/x.sh +++ b/mover/WgoW/x.sh @@ -1 +1 @@ -sui client call --gas-budget 100000000 --package 0x92d20234fc44b56303829cb94f3af70944246d6331d90d463a1712ae41c5ec90 --module my_coin --function "mint" --args 0xaafb09daf497f1c0c09cc9dcea73db104f2ece1d70caec6e639cb45c987c30db 666 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 \ No newline at end of file +sui client call --package 0x92d20234fc44b56303829cb94f3af70944246d6331d90d463a1712ae41c5ec90 --module my_coin --function "mint" --args 0xaafb09daf497f1c0c09cc9dcea73db104f2ece1d70caec6e639cb45c987c30db 666 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 \ No newline at end of file diff --git a/mover/Xeonacid/code/db/.dockerignore b/mover/Xeonacid/code/db/.dockerignore new file mode 100644 index 000000000..ec21d0f47 --- /dev/null +++ b/mover/Xeonacid/code/db/.dockerignore @@ -0,0 +1,2 @@ +**/target +**/build diff --git a/mover/Xeonacid/code/db/Dockerfile b/mover/Xeonacid/code/db/Dockerfile new file mode 100644 index 000000000..de77cf555 --- /dev/null +++ b/mover/Xeonacid/code/db/Dockerfile @@ -0,0 +1,16 @@ +FROM embe221ed/otter_template:latest + +ADD ./sources/framework/chall /work/framework/chall +ADD ./sources/framework/src/main.rs /work/framework/src/ + +# build the challenge contracts +WORKDIR /work/framework/chall +RUN sui move build + +WORKDIR /work/framework + +# build the framework +RUN touch src/main.rs +RUN cargo build --locked --release + +CMD ./run.sh diff --git a/mover/Xeonacid/code/db/docker-compose.yml b/mover/Xeonacid/code/db/docker-compose.yml new file mode 100644 index 000000000..882ebfd07 --- /dev/null +++ b/mover/Xeonacid/code/db/docker-compose.yml @@ -0,0 +1,11 @@ +services: + db: + environment: + FLAG: justCTF{REDACTED} + PORT: 31337 + build: + context: ./ + dockerfile: ./Dockerfile + ports: + - "31337:31337" + restart: always diff --git a/mover/Xeonacid/code/db/sources/framework-solve/Cargo.lock b/mover/Xeonacid/code/db/sources/framework-solve/Cargo.lock new file mode 100644 index 000000000..d8b563e5e --- /dev/null +++ b/mover/Xeonacid/code/db/sources/framework-solve/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "solve-framework" +version = "0.1.0" diff --git a/mover/Xeonacid/code/db/sources/framework-solve/Cargo.toml b/mover/Xeonacid/code/db/sources/framework-solve/Cargo.toml new file mode 100644 index 000000000..9fc89b2dd --- /dev/null +++ b/mover/Xeonacid/code/db/sources/framework-solve/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "solve-framework" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/mover/Xeonacid/code/db/sources/framework-solve/dependency/Move.toml b/mover/Xeonacid/code/db/sources/framework-solve/dependency/Move.toml new file mode 100644 index 000000000..0deab99f8 --- /dev/null +++ b/mover/Xeonacid/code/db/sources/framework-solve/dependency/Move.toml @@ -0,0 +1,11 @@ +[package] +name = "challenge" +version = "0.0.1" +edition = "2024.beta" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[addresses] +admin = "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e" +challenge = "0x04db9c21c0199c3645b317bd7b12c7cecfcd2a48716a8e2a204fef460c0dd37e" diff --git a/mover/Xeonacid/code/db/sources/framework-solve/dependency/sources/dark_brotterhood.move b/mover/Xeonacid/code/db/sources/framework-solve/dependency/sources/dark_brotterhood.move new file mode 100644 index 000000000..92c50aca0 --- /dev/null +++ b/mover/Xeonacid/code/db/sources/framework-solve/dependency/sources/dark_brotterhood.move @@ -0,0 +1,250 @@ +module challenge::Otter { + + // --------------------------------------------------- + // DEPENDENCIES + // --------------------------------------------------- + + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply}; + use sui::url; + use sui::random::{Self, Random}; + use sui::table::{Self, Table}; + + // --------------------------------------------------- + // CONST + // --------------------------------------------------- + + const NEW: u64 = 1; + const WON: u64 = 2; + const FINISHED: u64 = 3; + + const WRONG_AMOUNT: u64 = 1337; + const BETTER_BRING_A_KNIFE_TO_A_GUNFIGHT: u64 = 1338; + const WRONG_STATE: u64 = 1339; + const ALREADY_REGISTERED: u64 = 1340; + const NOT_REGISTERED: u64 = 1341; + const TOO_MUCH_MONSTERS: u64 = 1342; + const NOT_SOLVED: u64 = 1343; + + const QUEST_LIMIT: u64 = 25; + // --------------------------------------------------- + // STRUCTS + // --------------------------------------------------- + + public struct OTTER has drop {} + + public struct OsecSuply has key { + id: UID, + supply: Supply + } + + public struct Vault has key { + id: UID, + cash: Coin + } + + public struct Monster has store { + fight_status: u64, + reward: u8, + power: u8 + } + + public struct QuestBoard has key, store { + id: UID, + quests: vector, + players: Table + } + + public struct Flag has key, store { + id: UID, + user: address, + flag: bool + } + + public struct Player has key, store { + id: UID, + user: address, + coins: Coin, + power: u8 + } + + // --------------------------------------------------- + // MINT CASH + // --------------------------------------------------- + + fun init(witness: OTTER, ctx: &mut TxContext) { + let (mut treasury, metadata) = coin::create_currency( + witness, 9, b"OSEC", b"Osec", b"Otter ca$h", option::some(url::new_unsafe_from_bytes(b"https://osec.io/")), ctx + ); + transfer::public_freeze_object(metadata); + + let pool_liquidity = coin::mint(&mut treasury, 50000, ctx); + + let vault = Vault { + id: object::new(ctx), + cash: pool_liquidity + }; + + let supply = coin::treasury_into_supply(treasury); + + let osec_supply = OsecSuply { + id: object::new(ctx), + supply + }; + + transfer::transfer(osec_supply, tx_context::sender(ctx)); + + transfer::share_object(QuestBoard { + id: object::new(ctx), + quests: vector::empty(), + players: table::new(ctx) + }); + + transfer::share_object(vault); + } + + public fun mint(sup: &mut OsecSuply, amount: u64, ctx: &mut TxContext): Coin { + let osecBalance = balance::increase_supply(&mut sup.supply, amount); + coin::from_balance(osecBalance, ctx) + } + + public entry fun mint_to(sup: &mut OsecSuply, amount: u64, to: address, ctx: &mut TxContext) { + let osec = mint(sup, amount, ctx); + transfer::public_transfer(osec, to); + } + + public fun burn(sup: &mut OsecSuply, c: Coin): u64 { + balance::decrease_supply(&mut sup.supply, coin::into_balance(c)) + } + + // --------------------------------------------------- + // REGISTER + // --------------------------------------------------- + + public fun register(sup: &mut OsecSuply, board: &mut QuestBoard, player: address, ctx: &mut TxContext) { + assert!(!table::contains(&board.players, player), ALREADY_REGISTERED); + + table::add(&mut board.players, player, false); + + transfer::transfer(Player { + id: object::new(ctx), + user: tx_context::sender(ctx), + coins: mint(sup, 137, ctx), + power: 10 + }, player); + } + + // --------------------------------------------------- + // SHOP + // --------------------------------------------------- + + #[allow(lint(self_transfer))] + public fun buy_flag(vault: &mut Vault, player: &mut Player, ctx: &mut TxContext): Flag { + assert!(coin::value(&player.coins) >= 1337, WRONG_AMOUNT); + + let coins = coin::split(&mut player.coins, 1337, ctx); + coin::join(&mut vault.cash, coins); + + Flag { + id: object::new(ctx), + user: tx_context::sender(ctx), + flag: true + } + } + + public fun buy_sword(vault: &mut Vault, player: &mut Player, ctx: &mut TxContext) { + assert!(coin::value(&player.coins) >= 137, WRONG_AMOUNT); + + let coins = coin::split(&mut player.coins, 137, ctx); + coin::join(&mut vault.cash, coins); + + player.power = player.power + 100; + } + + // --------------------------------------------------- + // ADVENTURE TIME + // --------------------------------------------------- + + #[allow(lint(public_random))] + public fun find_a_monster(board: &mut QuestBoard, r: &Random, ctx: &mut TxContext) { + assert!(vector::length(&board.quests) <= QUEST_LIMIT, TOO_MUCH_MONSTERS); + + let mut generator = random::new_generator(r, ctx); + + let quest = Monster { + fight_status: NEW, + reward: random::generate_u8_in_range(&mut generator, 13, 37), + power: random::generate_u8_in_range(&mut generator, 13, 73) + }; + + vector::push_back(&mut board.quests, quest); + + } + + public fun fight_monster(board: &mut QuestBoard, player: &mut Player, quest_id: u64) { + let quest = vector::borrow_mut(&mut board.quests, quest_id); + assert!(quest.fight_status == NEW, WRONG_STATE); + assert!(player.power > quest.power, BETTER_BRING_A_KNIFE_TO_A_GUNFIGHT); + + player.power = 10; // sword breaks after fighting the monster :c + + quest.fight_status = WON; + } + + public fun return_home(board: &mut QuestBoard, quest_id: u64) { + let quest_to_finish = vector::borrow_mut(&mut board.quests, quest_id); + assert!(quest_to_finish.fight_status == WON, WRONG_STATE); + + quest_to_finish.fight_status = FINISHED; + } + + #[allow(lint(self_transfer))] + public fun get_the_reward( + vault: &mut Vault, + board: &mut QuestBoard, + player: &mut Player, + quest_id: u64, + ctx: &mut TxContext, + ) { + let quest_to_claim = vector::borrow_mut(&mut board.quests, quest_id); + assert!(quest_to_claim.fight_status == FINISHED, WRONG_STATE); + + let monster = vector::pop_back(&mut board.quests); + + let Monster { + fight_status: _, + reward: reward, + power: _ + } = monster; + + let coins = coin::split(&mut vault.cash, (reward as u64), ctx); + coin::join(&mut player.coins, coins); + } + + // --------------------------------------------------- + // PROVE SOLUTION + // --------------------------------------------------- + + public fun prove(board: &mut QuestBoard, flag: Flag) { + let Flag { + id, + user, + flag + } = flag; + + object::delete(id); + + assert!(table::contains(&board.players, user), NOT_REGISTERED); + assert!(flag, NOT_SOLVED); + *table::borrow_mut(&mut board.players, user) = true; + } + + // --------------------------------------------------- + // CHECK WINNER + // --------------------------------------------------- + + public fun check_winner(board: &QuestBoard, player: address) { + assert!(*table::borrow(&board.players, player) == true, NOT_SOLVED); + } + +} diff --git a/mover/Xeonacid/code/db/sources/framework-solve/solve/Move.lock b/mover/Xeonacid/code/db/sources/framework-solve/solve/Move.lock new file mode 100644 index 000000000..1155d02a0 --- /dev/null +++ b/mover/Xeonacid/code/db/sources/framework-solve/solve/Move.lock @@ -0,0 +1,35 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C1C769E1590ECAC605B85346BAF2BF5B22DC430C53C041491F155F033B979257" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "challenge" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet-v1.27.0", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet-v1.27.0", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "challenge" +source = { local = "../dependency" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.alpha" +flavor = "sui" diff --git a/mover/Xeonacid/code/db/sources/framework-solve/solve/Move.toml b/mover/Xeonacid/code/db/sources/framework-solve/solve/Move.toml new file mode 100644 index 000000000..506465652 --- /dev/null +++ b/mover/Xeonacid/code/db/sources/framework-solve/solve/Move.toml @@ -0,0 +1,14 @@ +[package] +name = "solve" +version = "0.0.1" +edition = "2024.alpha" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[dependencies.challenge] +version = '1.0.0' +local = '../dependency' + +[addresses] +solve = "0x0" diff --git a/mover/Xeonacid/code/db/sources/framework-solve/solve/sources/solve.move b/mover/Xeonacid/code/db/sources/framework-solve/solve/sources/solve.move new file mode 100644 index 000000000..8f3ccc62c --- /dev/null +++ b/mover/Xeonacid/code/db/sources/framework-solve/solve/sources/solve.move @@ -0,0 +1,40 @@ +module solve::solve { + + // [*] Import dependencies + use challenge::Otter::{Self, OTTER}; + use sui::random::Random; + + const QUEST_LIMIT: u64 = 25; + #[allow(lint(public_random))] + public fun solve( + _vault: &mut Otter::Vault, + _questboard: &mut Otter::QuestBoard, + _player: &mut Otter::Player, + _r: &Random, + _ctx: &mut TxContext, + ) { + challenge::Otter::buy_sword(_vault, _player, _ctx); + challenge::Otter::find_a_monster(_questboard, _r, _ctx); + challenge::Otter::fight_monster(_questboard, _player, 0); + challenge::Otter::return_home(_questboard, 0); + + let mut times = 0; + while(times < 5) { + let mut i = 1; + while (i < QUEST_LIMIT) { + challenge::Otter::find_a_monster(_questboard, _r, _ctx); + i = i + 1; + }; + i = 1; + while (i < QUEST_LIMIT) { + challenge::Otter::get_the_reward(_vault, _questboard, _player, 0, _ctx); + i = i + 1; + }; + times = times + 1; + }; + + let flag = challenge::Otter::buy_flag(_vault, _player, _ctx); + challenge::Otter::prove(_questboard, flag); + } + +} diff --git a/mover/Xeonacid/code/db/sources/framework-solve/src/main.rs b/mover/Xeonacid/code/db/sources/framework-solve/src/main.rs new file mode 100644 index 000000000..b887217f8 --- /dev/null +++ b/mover/Xeonacid/code/db/sources/framework-solve/src/main.rs @@ -0,0 +1,59 @@ +use std::net::TcpStream; +use std::io::{Read, Write}; +use std::str::from_utf8; +use std::{error::Error, fs}; +use std::env; + +fn main() -> Result<(), Box> { + + let host = env::var("HOST").unwrap_or_else(|_| "127.0.0.1".to_string()); // replace with remote ip + let port = env::var("PORT").unwrap_or_else(|_| "31337".to_string()); + + match TcpStream::connect(format!("{}:{}", host, port)) { + Ok(mut stream) => { + println!(" - Connected!"); + + let mod_data : Vec = fs::read("./solve/build/solve/bytecode_modules/solve.mv").unwrap(); + println!(" - Loaded solution!"); + + stream.write_all(&mod_data)?; + stream.flush()?; + println!(" - Sent solution!"); + + let mut return_data1 = [0 as u8; 200]; + match stream.read(&mut return_data1) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&return_data1).unwrap()); // Get module address + let mut return_data2 = [0 as u8; 200]; + match stream.read(&mut return_data2) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&return_data2).unwrap()); // Get module address + let mut flag = [0 as u8; 200]; + match stream.read(&mut flag) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&flag).unwrap()); // Get flag + + }, + Err(e) => { + println!(" - Failed to receive data: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to receive data: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to connect: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to connect: {}", e); + } + } + println!(" - Terminated."); + + Ok(()) +} diff --git a/mover/Xeonacid/code/db/sources/framework/Cargo.lock b/mover/Xeonacid/code/db/sources/framework/Cargo.lock new file mode 100644 index 000000000..f720c1806 --- /dev/null +++ b/mover/Xeonacid/code/db/sources/framework/Cargo.lock @@ -0,0 +1,12692 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "addchain" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" +dependencies = [ + "num-bigint 0.3.3", + "num-integer", + "num-traits", +] + +[[package]] +name = "addr2line" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom 0.2.15", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "aliasable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anemo" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" +dependencies = [ + "anyhow", + "async-trait", + "bincode", + "bytes", + "ed25519", + "futures", + "hex", + "http", + "matchit 0.5.0", + "pin-project-lite", + "pkcs8 0.9.0", + "quinn", + "quinn-proto", + "rand 0.8.5", + "rcgen", + "ring 0.16.20", + "rustls 0.21.12", + "rustls-webpki", + "serde", + "serde_json", + "socket2 0.5.7", + "tap", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "tower", + "tracing", + "x509-parser", +] + +[[package]] +name = "anemo-build" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" +dependencies = [ + "prettyplease 0.1.25", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "anemo-tower" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" +dependencies = [ + "anemo", + "bytes", + "dashmap", + "futures", + "governor", + "nonzero_ext", + "pin-project-lite", + "tokio", + "tower", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "anstream" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" + +[[package]] +name = "anstyle-parse" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +dependencies = [ + "backtrace", +] + +[[package]] +name = "arc-swap" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" +dependencies = [ + "serde", +] + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-crypto-primitives" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-snark", + "ark-std", + "blake2", + "derivative", + "digest 0.10.7", + "sha2 0.10.8", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.5", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.5", + "num-traits", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "ark-groth16" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" +dependencies = [ + "ark-crypto-primitives", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-relations", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-relations" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" +dependencies = [ + "ark-ff", + "ark-std", + "tracing", +] + +[[package]] +name = "ark-secp256r1" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3975a01b0a6e3eae0f72ec7ca8598a6620fc72fa5981f6f5cca33b7cd788f633" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint 0.4.5", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "ark-snark" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" +dependencies = [ + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "ascii_utils" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71938f30533e4d95a6d17aa530939da3842c2ab6f4f84b9dae68447e4129f74a" + +[[package]] +name = "asn1-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "async-compression" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "async-graphql" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298a5d587d6e6fdb271bf56af2dc325a80eb291fd0fc979146584b9a05494a8c" +dependencies = [ + "async-graphql-derive", + "async-graphql-parser", + "async-graphql-value", + "async-stream", + "async-trait", + "base64 0.13.1", + "bytes", + "chrono", + "fast_chemail", + "fnv", + "futures-channel", + "futures-timer", + "futures-util", + "handlebars", + "http", + "indexmap 2.2.6", + "lru 0.7.8", + "mime", + "multer", + "num-traits", + "once_cell", + "opentelemetry 0.21.0", + "pin-project-lite", + "regex", + "serde", + "serde_json", + "serde_urlencoded", + "static_assertions", + "tempfile", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "async-graphql-axum" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a1c20a2059bffbc95130715b23435a05168c518fba9709c81fa2a38eed990c" +dependencies = [ + "async-graphql", + "async-trait", + "axum", + "bytes", + "futures-util", + "serde_json", + "tokio", + "tokio-stream", + "tokio-util 0.7.11", + "tower-service", +] + +[[package]] +name = "async-graphql-derive" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f329c7eb9b646a72f70c9c4b516c70867d356ec46cb00dcac8ad343fd006b0" +dependencies = [ + "Inflector", + "async-graphql-parser", + "darling 0.20.9", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "strum 0.25.0", + "syn 2.0.66", + "thiserror", +] + +[[package]] +name = "async-graphql-parser" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6139181845757fd6a73fbb8839f3d036d7150b798db0e9bb3c6e83cdd65bd53b" +dependencies = [ + "async-graphql-value", + "pest", + "serde", + "serde_json", +] + +[[package]] +name = "async-graphql-value" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "323a5143f5bdd2030f45e3f2e0c821c9b1d36e79cf382129c64299c50a7f3750" +dependencies = [ + "bytes", + "indexmap 2.2.6", + "serde", + "serde_json", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "async-task" +version = "4.3.0" +source = "git+https://github.com/mystenmark/async-task?rev=4e45b26e11126b191701b9b2ce5e2346b8d7682f#4e45b26e11126b191701b9b2ce5e2346b8d7682f" + +[[package]] +name = "async-trait" +version = "0.1.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version", +] + +[[package]] +name = "async_once" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ce4f10ea3abcd6617873bae9f91d1c5332b4a778bd9ce34d0cd517474c1de82" + +[[package]] +name = "atomic_float" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62af46d040ba9df09edc6528dae9d8e49f5f3e82f55b7d2ec31a733c38dbc49d" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "auto_ops" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7460f7dd8e100147b82a63afca1a20eb6c231ee36b90ba7272e14951cb58af59" + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "autotools" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef941527c41b0fc0dd48511a8154cd5fc7e29200a0ff8b7203c5d777dbc795cf" +dependencies = [ + "cc", +] + +[[package]] +name = "axum" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core", + "base64 0.21.7", + "bitflags 1.3.2", + "bytes", + "futures-util", + "headers", + "http", + "http-body", + "hyper", + "itoa", + "matchit 0.7.3", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sha1", + "sync_wrapper", + "tokio", + "tokio-tungstenite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-server" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "447f28c85900215cc1bea282f32d4a2f22d55c5a300afdfbc661c8d6a632e063" +dependencies = [ + "arc-swap", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile", + "tokio", + "tokio-rustls 0.24.1", + "tower-service", +] + +[[package]] +name = "backoff" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +dependencies = [ + "futures-core", + "getrandom 0.2.15", + "instant", + "pin-project-lite", + "rand 0.8.5", + "tokio", +] + +[[package]] +name = "backtrace" +version = "0.3.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64-url" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb9fb9fb058cc3063b5fc88d9a21eefa2735871498a04e1650da76ed511c8569" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bcs" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" +dependencies = [ + "serde", +] + +[[package]] +name = "bellpepper" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae286c2cb403324ab644c7cc68dceb25fe52ca9429908a726d7ed272c1edf7b" +dependencies = [ + "bellpepper-core", + "byteorder", + "ff 0.13.0", +] + +[[package]] +name = "bellpepper-core" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d8abb418570756396d722841b19edfec21d4e89e1cf8990610663040ecb1aea" +dependencies = [ + "blake2s_simd", + "byteorder", + "ff 0.13.0", + "serde", + "thiserror", +] + +[[package]] +name = "better_any" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b359aebd937c17c725e19efcb661200883f04c49c53e7132224dac26da39d4a0" +dependencies = [ + "better_typeid_derive", +] + +[[package]] +name = "better_typeid_derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3deeecb812ca5300b7d3f66f730cc2ebd3511c3d36c691dd79c165d5b19a26e3" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "bimap" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" + +[[package]] +name = "bin-version" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "const-str", + "git-version", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.65.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" +dependencies = [ + "bitflags 1.3.2", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "peeking_take_while", + "prettyplease 0.2.20", + "proc-macro2 1.0.85", + "quote 1.0.36", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.66", +] + +[[package]] +name = "bip32" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b30ed1d6f8437a487a266c8293aeb95b61a23261273e3e02912cdb8b68bf798b" +dependencies = [ + "bs58 0.4.0", + "hmac", + "k256 0.11.6", + "once_cell", + "pbkdf2 0.11.0", + "rand_core 0.6.4", + "ripemd", + "sha2 0.10.8", + "subtle", + "zeroize", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitcoin-private" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57" + +[[package]] +name = "bitcoin_hashes" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d7066118b13d4b20b23645932dfb3a81ce7e29f95726c2036fa33cd7b092501" +dependencies = [ + "bitcoin-private", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + +[[package]] +name = "bitmaps" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" +dependencies = [ + "typenum", +] + +[[package]] +name = "bitvec" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" +dependencies = [ + "funty 1.1.0", + "radium 0.6.2", + "tap", + "wyz 0.2.0", +] + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty 2.0.0", + "radium 0.7.0", + "tap", + "wyz 0.5.1", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "block-padding 0.2.1", + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blst" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62dc83a094a71d43eeadd254b1ec2d24cb6a0bb6cadce00df51f0db594711a32" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff 0.13.0", + "group 0.13.0", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[package]] +name = "bnum" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56953345e39537a3e18bdaeba4cb0c58a78c1f61f361dc0fa7c5c7340ae87c5f" + +[[package]] +name = "brotli" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +dependencies = [ + "sha2 0.9.9", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2 0.10.8", + "tinyvec", +] + +[[package]] +name = "bstr" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "bytecount" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" + +[[package]] +name = "bytemuck" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +dependencies = [ + "serde", +] + +[[package]] +name = "bytes-varint" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54c1820c7c366b9d26c47143e1604454105a59969aade54e4f695d96acc8332f" +dependencies = [ + "bytes", +] + +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "cached" +version = "0.43.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc2fafddf188d13788e7099295a59b99e99b2148ab2195cae454e754cc099925" +dependencies = [ + "async-trait", + "async_once", + "cached_proc_macro", + "cached_proc_macro_types", + "futures", + "hashbrown 0.13.2", + "instant", + "lazy_static", + "once_cell", + "thiserror", + "tokio", +] + +[[package]] +name = "cached_proc_macro" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10ca87c81aaa3a949dbbe2b5e6c2c45dbc94ba4897e45ea31ff9ec5087be3dc" +dependencies = [ + "cached_proc_macro_types", + "darling 0.14.4", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "cached_proc_macro_types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0" + +[[package]] +name = "camino" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cassowary" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.0.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" +dependencies = [ + "jobserver", + "libc", + "once_cell", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-targets 0.52.5", +] + +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" +dependencies = [ + "atty", + "bitflags 1.3.2", + "clap_derive 3.2.25", + "clap_lex 0.2.4", + "indexmap 1.9.3", + "once_cell", + "strsim 0.10.0", + "termcolor", + "textwrap", +] + +[[package]] +name = "clap" +version = "4.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" +dependencies = [ + "clap_builder", + "clap_derive 4.5.5", +] + +[[package]] +name = "clap_builder" +version = "4.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" +dependencies = [ + "anstream", + "anstyle", + "clap_lex 0.7.1", + "strsim 0.11.1", + "terminal_size", +] + +[[package]] +name = "clap_derive" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "clap_derive" +version = "4.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" +dependencies = [ + "heck 0.5.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "clap_lex" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" + +[[package]] +name = "codespan" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3362992a0d9f1dd7c3d0e89e0ab2bb540b7a95fea8cd798090e758fda2899b5e" +dependencies = [ + "codespan-reporting", + "serde", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "serde", + "termcolor", + "unicode-width", +] + +[[package]] +name = "coins-bip32" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +dependencies = [ + "bs58 0.5.1", + "coins-core", + "digest 0.10.7", + "hmac", + "k256 0.13.3", + "serde", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-bip39" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +dependencies = [ + "bitvec 1.0.1", + "coins-bip32", + "hmac", + "once_cell", + "pbkdf2 0.12.2", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-core" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +dependencies = [ + "base64 0.21.7", + "bech32", + "bs58 0.5.1", + "digest 0.10.7", + "generic-array", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2 0.10.8", + "sha3 0.10.8", + "thiserror", +] + +[[package]] +name = "collectable" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08abddbaad209601e53c7dd4308d8c04c06f17bb7df006434e586a22b83be45a" + +[[package]] +name = "colorchoice" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" + +[[package]] +name = "colored" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +dependencies = [ + "lazy_static", + "windows-sys 0.48.0", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "consensus-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto", + "mysten-network", + "rand 0.8.5", + "serde", + "shared-crypto", +] + +[[package]] +name = "consensus-core" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-build", + "anemo-tower", + "anyhow", + "arc-swap", + "async-trait", + "base64 0.21.7", + "bcs", + "bytes", + "cfg-if", + "consensus-config", + "dashmap", + "enum_dispatch", + "fastcrypto", + "futures", + "http", + "hyper", + "hyper-rustls 0.24.2", + "itertools 0.10.5", + "mockall", + "mysten-common", + "mysten-metrics", + "mysten-network", + "nom", + "parking_lot 0.12.3", + "prometheus", + "prost 0.12.6", + "quinn-proto", + "rand 0.8.5", + "rustls 0.21.12", + "serde", + "shared-crypto", + "sui-macros", + "sui-protocol-config", + "sui-tls", + "tap", + "thiserror", + "tokio", + "tokio-rustls 0.24.1", + "tokio-stream", + "tokio-util 0.7.11", + "tonic 0.11.0", + "tonic-build", + "tower", + "tower-http", + "tracing", + "typed-store", +] + +[[package]] +name = "console" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.52.0", +] + +[[package]] +name = "const-hex" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-str" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3618cccc083bb987a415d85c02ca6c9994ea5b44731ec28b9ecf09658655fba9" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + +[[package]] +name = "count-min-sketch" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca319fe30d7b68949da20d78b612215708af87157d49665a4545dadcc20fecc7" +dependencies = [ + "rand 0.8.5", + "siphasher", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap 4.5.7", + "criterion-plot", + "futures", + "is-terminal", + "itertools 0.10.5", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "tokio", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools 0.10.5", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crossterm" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" +dependencies = [ + "bitflags 1.3.2", + "crossterm_winapi", + "libc", + "mio", + "parking_lot 0.12.3", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "csv" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" +dependencies = [ + "memchr", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.6.4", + "subtle-ng", + "zeroize", +] + +[[package]] +name = "darling" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core 0.14.4", + "darling_macro 0.14.4", +] + +[[package]] +name = "darling" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" +dependencies = [ + "darling_core 0.20.9", + "darling_macro 0.20.9", +] + +[[package]] +name = "darling_core" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.85", + "quote 1.0.36", + "strsim 0.10.0", + "syn 1.0.109", +] + +[[package]] +name = "darling_core" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.85", + "quote 1.0.36", + "strsim 0.11.1", + "syn 2.0.66", +] + +[[package]] +name = "darling_macro" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +dependencies = [ + "darling_core 0.14.4", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" +dependencies = [ + "darling_core 0.20.9", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + +[[package]] +name = "data-encoding-macro" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" +dependencies = [ + "data-encoding", + "syn 1.0.109", +] + +[[package]] +name = "deadpool" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "421fe0f90f2ab22016f32a9881be5134fdd71c65298917084b0c7477cbc3856e" +dependencies = [ + "async-trait", + "deadpool-runtime", + "num_cpus", + "retain_mut", + "tokio", +] + +[[package]] +name = "deadpool-runtime" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "092966b41edc516079bdf31ec78a2e0588d1d0c08f78b91d8307215928642b2b" + +[[package]] +name = "der" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +dependencies = [ + "const-oid", + "pem-rfc7468 0.6.0", + "zeroize", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "pem-rfc7468 0.7.0", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint 0.4.5", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "derive-syn-parse" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" +dependencies = [ + "darling 0.14.4", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder_macro" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" +dependencies = [ + "derive_builder_core", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "diesel" +version = "2.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff236accb9a5069572099f0b350a92e9560e8e63a9b8d546162f4a5e03026bb2" +dependencies = [ + "bitflags 2.5.0", + "byteorder", + "chrono", + "diesel_derives", + "itoa", + "pq-sys", + "r2d2", + "serde_json", +] + +[[package]] +name = "diesel-async" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e7974099f0d9bde0e010dd3a673555276a474f3362a7a52ab535a57b7c5056" +dependencies = [ + "async-trait", + "deadpool", + "diesel", + "futures-util", + "scoped-futures", + "tokio", + "tokio-postgres", +] + +[[package]] +name = "diesel-derive-enum" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81c5131a2895ef64741dad1d483f358c2a229a3a2d1b256778cdc5e146db64d4" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "diesel_derives" +version = "2.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14701062d6bed917b5c7103bdffaee1e4609279e240488ad24e7bd979ca6866c" +dependencies = [ + "diesel_table_macro_syntax", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "diesel_migrations" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6036b3f0120c5961381b570ee20a02432d7e2d27ea60de9578799cf9156914ac" +dependencies = [ + "diesel", + "migrations_internals", + "migrations_macros", +] + +[[package]] +name = "diesel_table_macro_syntax" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5" +dependencies = [ + "syn 2.0.66", +] + +[[package]] +name = "difference" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" + +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + +[[package]] +name = "diffy" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e616e59155c92257e84970156f506287853355f58cd4a6eb167385722c32b790" +dependencies = [ + "nu-ansi-term", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys 0.3.7", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys 0.4.1", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + +[[package]] +name = "downcast" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + +[[package]] +name = "ecdsa" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" +dependencies = [ + "der 0.6.1", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", +] + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der 0.7.9", + "digest 0.10.7", + "elliptic-curve 0.13.8", + "rfc6979 0.4.0", + "signature 2.2.0", + "spki 0.7.3", +] + +[[package]] +name = "ed25519" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +dependencies = [ + "pkcs8 0.9.0", + "signature 1.6.4", + "zeroize", +] + +[[package]] +name = "ed25519-consensus" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" +dependencies = [ + "curve25519-dalek-ng", + "hex", + "rand_core 0.6.4", + "serde", + "sha2 0.9.9", + "thiserror", + "zeroize", +] + +[[package]] +name = "either" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" + +[[package]] +name = "elliptic-curve" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +dependencies = [ + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.1", + "digest 0.10.7", + "ff 0.12.1", + "generic-array", + "group 0.12.1", + "rand_core 0.6.4", + "sec1 0.3.0", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct 0.2.0", + "crypto-bigint 0.5.5", + "digest 0.10.7", + "ff 0.13.0", + "generic-array", + "group 0.13.0", + "pem-rfc7468 0.7.0", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "sec1 0.7.3", + "subtle", + "zeroize", +] + +[[package]] +name = "ena" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +dependencies = [ + "log", +] + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enr" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +dependencies = [ + "base64 0.21.7", + "bytes", + "hex", + "k256 0.13.3", + "log", + "rand 0.8.5", + "rlp", + "serde", + "sha3 0.10.8", + "zeroize", +] + +[[package]] +name = "enum-compat-util" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "serde_yaml", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "erasable" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f11890ce181d47a64e5d1eb4b6caba0e7bae911a356723740d058a5d0340b7d" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "eth-keystore" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" +dependencies = [ + "aes", + "ctr", + "digest 0.10.7", + "hex", + "hmac", + "pbkdf2 0.11.0", + "rand 0.8.5", + "scrypt", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3 0.10.8", + "thiserror", + "uuid 0.8.2", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3 0.10.8", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "primitive-types 0.12.2", + "scale-info", + "uint", +] + +[[package]] +name = "ethers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" +dependencies = [ + "ethers-addressbook", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-middleware", + "ethers-providers", + "ethers-signers", + "ethers-solc", +] + +[[package]] +name = "ethers-addressbook" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" +dependencies = [ + "ethers-core", + "once_cell", + "serde", + "serde_json", +] + +[[package]] +name = "ethers-contract" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" +dependencies = [ + "const-hex", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "futures-util", + "once_cell", + "pin-project", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "ethers-contract-abigen" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" +dependencies = [ + "Inflector", + "const-hex", + "dunce", + "ethers-core", + "ethers-etherscan", + "eyre", + "prettyplease 0.2.20", + "proc-macro2 1.0.85", + "quote 1.0.36", + "regex", + "reqwest", + "serde", + "serde_json", + "syn 2.0.66", + "toml 0.8.14", + "walkdir", +] + +[[package]] +name = "ethers-contract-derive" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" +dependencies = [ + "Inflector", + "const-hex", + "ethers-contract-abigen", + "ethers-core", + "proc-macro2 1.0.85", + "quote 1.0.36", + "serde_json", + "syn 2.0.66", +] + +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" +dependencies = [ + "arrayvec", + "bytes", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve 0.13.8", + "ethabi", + "generic-array", + "k256 0.13.3", + "num_enum 0.7.2", + "once_cell", + "open-fastrlp", + "rand 0.8.5", + "rlp", + "serde", + "serde_json", + "strum 0.26.2", + "syn 2.0.66", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid 0.2.4", +] + +[[package]] +name = "ethers-etherscan" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" +dependencies = [ + "chrono", + "ethers-core", + "reqwest", + "semver", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-middleware" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" +dependencies = [ + "async-trait", + "auto_impl", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-providers", + "ethers-signers", + "futures-channel", + "futures-locks", + "futures-util", + "instant", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", +] + +[[package]] +name = "ethers-providers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.21.7", + "bytes", + "const-hex", + "enr", + "ethers-core", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "http", + "instant", + "jsonwebtoken", + "once_cell", + "pin-project", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-tungstenite", + "tracing", + "tracing-futures", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "ws_stream_wasm", +] + +[[package]] +name = "ethers-signers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" +dependencies = [ + "async-trait", + "coins-bip32", + "coins-bip39", + "const-hex", + "elliptic-curve 0.13.8", + "eth-keystore", + "ethers-core", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-solc" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" +dependencies = [ + "cfg-if", + "const-hex", + "dirs 5.0.1", + "dunce", + "ethers-core", + "glob", + "home", + "md-5", + "num_cpus", + "once_cell", + "path-slash", + "rayon", + "regex", + "semver", + "serde", + "serde_json", + "solang-parser", + "svm-rs", + "thiserror", + "tiny-keccak", + "tokio", + "tracing", + "walkdir", + "yansi", +] + +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fail" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be3c61c59fdc91f5dbc3ea31ee8623122ce80057058be560654c5d410d181a6" +dependencies = [ + "lazy_static", + "log", + "rand 0.7.3", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fast_chemail" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "495a39d30d624c2caabe6312bfead73e7717692b44e0b32df168c275a2e8e9e4" +dependencies = [ + "ascii_utils", +] + +[[package]] +name = "fastcrypto" +version = "0.1.8" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "aes", + "aes-gcm", + "ark-ec", + "ark-ff", + "ark-secp256r1", + "ark-serialize", + "auto_ops", + "base64ct", + "bech32", + "bincode", + "blake2", + "blst", + "bs58 0.4.0", + "cbc", + "ctr", + "curve25519-dalek-ng", + "derive_more", + "digest 0.10.7", + "ecdsa 0.16.9", + "ed25519-consensus", + "elliptic-curve 0.13.8", + "fastcrypto-derive", + "generic-array", + "hex", + "hex-literal", + "hkdf", + "lazy_static", + "num-bigint 0.4.5", + "once_cell", + "p256", + "rand 0.8.5", + "readonly", + "rfc6979 0.4.0", + "rsa", + "schemars", + "secp256k1", + "serde", + "serde_json", + "serde_with 2.3.3", + "sha2 0.10.8", + "sha3 0.10.8", + "signature 2.2.0", + "static_assertions", + "thiserror", + "tokio", + "typenum", + "zeroize", +] + +[[package]] +name = "fastcrypto-derive" +version = "0.1.3" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "fastcrypto-tbls" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "bcs", + "digest 0.10.7", + "fastcrypto", + "hex", + "itertools 0.10.5", + "rand 0.8.5", + "serde", + "sha3 0.10.8", + "tap", + "tracing", + "typenum", +] + +[[package]] +name = "fastcrypto-vdf" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "bcs", + "fastcrypto", + "lazy_static", + "num-bigint 0.4.5", + "num-integer", + "num-prime", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "serde", + "serde_with 2.3.3", +] + +[[package]] +name = "fastcrypto-zkp" +version = "0.1.3" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "ark-bls12-381", + "ark-bn254", + "ark-ec", + "ark-ff", + "ark-groth16", + "ark-relations", + "ark-serialize", + "ark-snark", + "blst", + "byte-slice-cast", + "derive_more", + "fastcrypto", + "ff 0.13.0", + "im", + "itertools 0.12.1", + "lazy_static", + "neptune", + "num-bigint 0.4.5", + "once_cell", + "regex", + "reqwest", + "schemars", + "serde", + "serde_json", + "typenum", +] + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fdlimit" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" +dependencies = [ + "libc", +] + +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "bitvec 1.0.1", + "byteorder", + "ff_derive", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff_derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f54704be45ed286151c5e11531316eaef5b8f5af7d597b806fdb8af108d84a" +dependencies = [ + "addchain", + "cfg-if", + "num-bigint 0.3.3", + "num-integer", + "num-traits", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "filetime" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "windows-sys 0.52.0", +] + +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fragile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" + +[[package]] +name = "framework" +version = "0.1.0" +dependencies = [ + "move-binary-format", + "move-bytecode-source-map", + "move-core-types", + "move-symbol-pool", + "move-transactional-test-runner", + "proc-macro2 1.0.85", + "quote 1.0.36", + "sui-ctf-framework", + "sui-transactional-test-runner", + "sui-types", + "threadpool", + "tokio", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "fsevent-sys" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +dependencies = [ + "libc", +] + +[[package]] +name = "funty" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-locks" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" +dependencies = [ + "futures-channel", + "futures-task", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "serde", + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "ghash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +dependencies = [ + "opaque-debug", + "polyval", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + +[[package]] +name = "git-version" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19" +dependencies = [ + "git-version-macro", +] + +[[package]] +name = "git-version-macro" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "globset" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "governor" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" +dependencies = [ + "cfg-if", + "dashmap", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot 0.12.3", + "portable-atomic", + "quanta", + "rand 0.8.5", + "smallvec", + "spinning_top", +] + +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff 0.12.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", + "rand 0.8.5", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.2.6", + "slab", + "tokio", + "tokio-util 0.7.11", + "tracing", +] + +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "handlebars" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" +dependencies = [ + "log", + "pest", + "pest_derive", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.8", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.11", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash 0.8.11", + "allocator-api2", +] + +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +dependencies = [ + "fxhash", +] + +[[package]] +name = "hdrhistogram" +version = "7.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" +dependencies = [ + "base64 0.21.7", + "byteorder", + "crossbeam-channel", + "flate2", + "nom", + "num-traits", +] + +[[package]] +name = "headers" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +dependencies = [ + "base64 0.21.7", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "hmac-sha512" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e806677ce663d0a199541030c816847b36e8dc095f70dae4a4f4ad63da5383" + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" + +[[package]] +name = "httparse" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0e7a4dd27b9476dc40cb050d3632d3bba3a70ddbff012285f7f8559a1e7e545" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.7", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +dependencies = [ + "http", + "hyper", + "log", + "rustls 0.20.9", + "rustls-native-certs", + "tokio", + "tokio-rustls 0.23.4", + "webpki-roots 0.22.6", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http", + "hyper", + "log", + "rustls 0.21.12", + "rustls-native-certs", + "tokio", + "tokio-rustls 0.24.1", + "webpki-roots 0.25.4", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed" +dependencies = [ + "icu_normalizer", + "icu_properties", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "im" +version = "15.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" +dependencies = [ + "bitmaps", + "rand_core 0.6.4", + "rand_xoshiro", + "sized-chunks", + "typenum", + "version_check", +] + +[[package]] +name = "impl-codec" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" +dependencies = [ + "parity-scale-codec 2.3.1", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec 3.6.12", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "indicatif" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +dependencies = [ + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", +] + +[[package]] +name = "inotify" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +dependencies = [ + "bitflags 1.3.2", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding 0.3.3", + "generic-array", +] + +[[package]] +name = "insta" +version = "1.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "810ae6042d48e2c9e9215043563a58a80b877bc863228a74cf10c49d4620a6f5" +dependencies = [ + "console", + "lazy_static", + "linked-hash-map", + "pest", + "pest_derive", + "serde", + "similar", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "integer-encoding" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "iri-string" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f0f7638c1e223529f1bfdc48c8b133b9e0b434094d1d28473161ee48b235f78" +dependencies = [ + "nom", +] + +[[package]] +name = "is-terminal" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jobserver" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json_to_table" +version = "0.6.0" +source = "git+https://github.com/zhiburt/tabled/?rev=e449317a1c02eb6b29e409ad6617e5d9eb7b3bd4#e449317a1c02eb6b29e409ad6617e5d9eb7b3bd4" +dependencies = [ + "serde_json", + "tabled", +] + +[[package]] +name = "jsonrpsee" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "jsonrpsee-core", + "jsonrpsee-http-client", + "jsonrpsee-proc-macros", + "jsonrpsee-server", + "jsonrpsee-types", + "jsonrpsee-ws-client", + "tracing", +] + +[[package]] +name = "jsonrpsee-client-transport" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "futures-util", + "http", + "jsonrpsee-core", + "jsonrpsee-types", + "pin-project", + "rustls-native-certs", + "soketto", + "thiserror", + "tokio", + "tokio-rustls 0.23.4", + "tokio-util 0.7.11", + "tracing", + "webpki-roots 0.22.6", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "anyhow", + "arrayvec", + "async-lock", + "async-trait", + "beef", + "futures-channel", + "futures-timer", + "futures-util", + "globset", + "hyper", + "jsonrpsee-types", + "parking_lot 0.12.3", + "rand 0.8.5", + "rustc-hash", + "serde", + "serde_json", + "soketto", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-http-client" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "async-trait", + "hyper", + "hyper-rustls 0.23.2", + "jsonrpsee-core", + "jsonrpsee-types", + "rustc-hash", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "jsonrpsee-server" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "futures-channel", + "futures-util", + "http", + "hyper", + "jsonrpsee-core", + "jsonrpsee-types", + "serde", + "serde_json", + "soketto", + "tokio", + "tokio-stream", + "tokio-util 0.7.11", + "tower", + "tracing", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "anyhow", + "beef", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "jsonrpsee-ws-client" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "http", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", +] + +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.7", + "pem", + "ring 0.16.20", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "k256" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +dependencies = [ + "cfg-if", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", + "sha2 0.10.8", + "sha3 0.10.8", +] + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "once_cell", + "sha2 0.10.8", + "signature 2.2.0", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "kqueue" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set", + "ena", + "itertools 0.11.0", + "lalrpop-util", + "petgraph 0.6.5", + "regex", + "regex-syntax 0.8.4", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid 0.2.4", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +dependencies = [ + "regex-automata 0.4.7", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libloading" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +dependencies = [ + "cfg-if", + "windows-targets 0.52.5", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.5.0", + "libc", +] + +[[package]] +name = "librocksdb-sys" +version = "0.11.0+8.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" +dependencies = [ + "bindgen", + "bzip2-sys", + "cc", + "glob", + "libc", + "libz-sys", + "lz4-sys", + "zstd-sys", +] + +[[package]] +name = "libz-sys" +version = "1.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +dependencies = [ + "serde", +] + +[[package]] +name = "lru" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" +dependencies = [ + "hashbrown 0.12.3", +] + +[[package]] +name = "lru" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" +dependencies = [ + "hashbrown 0.13.2", +] + +[[package]] +name = "lru" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" +dependencies = [ + "hashbrown 0.14.5", +] + +[[package]] +name = "lz4-sys" +version = "1.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9764018d143cc854c9f17f0b907de70f14393b1f502da6375dce70f00514eb3" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "markdown-gen" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8034621d7f1258317ca1dfb9205e3925d27ee4aa2a46620a09c567daf0310562" + +[[package]] +name = "match_opt" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "405ba1524a1e6ae755334d6966380c60ec40157e0155f9032dd3c294b6384da9" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchit" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + +[[package]] +name = "memchr" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" + +[[package]] +name = "migrations_internals" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f23f71580015254b020e856feac3df5878c2c7a8812297edd6c0a485ac9dada" +dependencies = [ + "serde", + "toml 0.7.8", +] + +[[package]] +name = "migrations_macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cce3325ac70e67bbab5bd837a31cae01f1a6db64e0e744a33cb03a543469ef08" +dependencies = [ + "migrations_internals", + "proc-macro2 1.0.85", + "quote 1.0.36", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "mockall" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "lazy_static", + "mockall_derive", + "predicates", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +dependencies = [ + "cfg-if", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "moka" +version = "0.12.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0d88686dc561d743b40de8269b26eaf0dc58781bde087b0984646602021d08" +dependencies = [ + "crossbeam-channel", + "crossbeam-epoch", + "crossbeam-utils", + "once_cell", + "parking_lot 0.12.3", + "rustc_version", + "smallvec", + "tagptr", + "thiserror", + "triomphe", + "uuid 1.8.0", +] + +[[package]] +name = "move-abstract-interpreter" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", + "move-bytecode-verifier-meter", +] + +[[package]] +name = "move-abstract-interpreter-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", +] + +[[package]] +name = "move-abstract-stack" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" + +[[package]] +name = "move-binary-format" +version = "0.0.3" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "enum-compat-util", + "move-core-types", + "move-proc-macros", + "ref-cast", + "serde", + "variant_count", +] + +[[package]] +name = "move-borrow-graph" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" + +[[package]] +name = "move-bytecode-source-map" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "move-symbol-pool", + "serde", +] + +[[package]] +name = "move-bytecode-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "move-binary-format", + "move-core-types", + "petgraph 0.5.1", + "serde-reflection", +] + +[[package]] +name = "move-bytecode-verifier" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-verifier-meter" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", + "move-core-types", + "move-vm-config", +] + +[[package]] +name = "move-bytecode-verifier-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter-v2", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-verifier-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter-v2", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-verifier-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter-v2", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-viewer" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "clap 4.5.7", + "crossterm", + "move-binary-format", + "move-bytecode-source-map", + "move-disassembler", + "regex", + "tui", +] + +[[package]] +name = "move-cli" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "codespan-reporting", + "colored", + "difference", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-viewer", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-coverage", + "move-disassembler", + "move-docgen", + "move-errmapgen", + "move-ir-types", + "move-package", + "move-prover", + "move-stdlib", + "move-stdlib-natives", + "move-unit-test", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "serde_yaml", + "tempfile", + "toml_edit 0.14.4", + "walkdir", +] + +[[package]] +name = "move-command-line-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "difference", + "dirs-next", + "hex", + "move-core-types", + "num-bigint 0.4.5", + "once_cell", + "serde", + "sha2 0.9.9", + "vfs", + "walkdir", +] + +[[package]] +name = "move-compiler" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "codespan-reporting", + "dunce", + "hex", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-source-map", + "move-bytecode-verifier", + "move-command-line-common", + "move-core-types", + "move-ir-to-bytecode", + "move-ir-types", + "move-proc-macros", + "move-symbol-pool", + "once_cell", + "petgraph 0.5.1", + "regex", + "serde", + "serde_json", + "similar", + "stacker", + "tempfile", + "vfs", +] + +[[package]] +name = "move-core-types" +version = "0.0.4" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "enum-compat-util", + "ethnum", + "hex", + "leb128", + "move-proc-macros", + "num", + "once_cell", + "primitive-types 0.10.1", + "rand 0.8.5", + "ref-cast", + "serde", + "serde_bytes", + "thiserror", + "uint", +] + +[[package]] +name = "move-coverage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "codespan", + "colored", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "petgraph 0.5.1", + "serde", +] + +[[package]] +name = "move-disassembler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "colored", + "hex", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-coverage", + "move-ir-types", +] + +[[package]] +name = "move-docgen" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "codespan", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-compiler", + "move-model", + "num", + "once_cell", + "regex", + "serde", +] + +[[package]] +name = "move-errmapgen" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "move-command-line-common", + "move-core-types", + "move-model", + "serde", +] + +[[package]] +name = "move-ir-compiler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-verifier", + "move-command-line-common", + "move-ir-to-bytecode", + "serde_json", +] + +[[package]] +name = "move-ir-to-bytecode" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "codespan-reporting", + "log", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-core-types", + "move-ir-to-bytecode-syntax", + "move-ir-types", + "move-symbol-pool", + "ouroboros", +] + +[[package]] +name = "move-ir-to-bytecode-syntax" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "hex", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "move-symbol-pool", +] + +[[package]] +name = "move-ir-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-command-line-common", + "move-core-types", + "move-symbol-pool", + "once_cell", + "serde", +] + +[[package]] +name = "move-model" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "codespan", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-disassembler", + "move-ir-types", + "move-symbol-pool", + "num", + "once_cell", + "regex", + "serde", +] + +[[package]] +name = "move-package" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "clap 4.5.7", + "colored", + "itertools 0.10.5", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-docgen", + "move-model", + "move-symbol-pool", + "named-lock", + "once_cell", + "petgraph 0.5.1", + "regex", + "serde", + "serde_yaml", + "sha2 0.9.9", + "tempfile", + "toml 0.5.11", + "toml_edit 0.14.4", + "treeline", + "vfs", + "walkdir", + "whoami", +] + +[[package]] +name = "move-proc-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "enum-compat-util", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "move-prover" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "clap 4.5.7", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-command-line-common", + "move-compiler", + "move-docgen", + "move-errmapgen", + "move-model", + "move-stackless-bytecode", + "once_cell", + "serde", + "simplelog", + "toml 0.5.11", +] + +[[package]] +name = "move-stackless-bytecode" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "codespan", + "codespan-reporting", + "ethnum", + "im", + "itertools 0.10.5", + "log", + "move-binary-format", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-model", + "num", + "petgraph 0.5.1", + "serde", +] + +[[package]] +name = "move-stdlib" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "hex", + "log", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "move-docgen", + "move-errmapgen", + "move-prover", + "move-stdlib-natives", + "move-vm-runtime", + "sha2 0.9.9", + "walkdir", +] + +[[package]] +name = "move-stdlib-natives" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-stdlib-natives-v0" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime-v0", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-stdlib-natives-v1" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime-v1", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-stdlib-natives-v2" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime-v2", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-symbol-pool" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "once_cell", + "phf", + "serde", +] + +[[package]] +name = "move-transactional-test-runner" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "clap 4.5.7", + "move-binary-format", + "move-bytecode-source-map", + "move-cli", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-disassembler", + "move-ir-compiler", + "move-ir-types", + "move-stdlib", + "move-stdlib-natives", + "move-symbol-pool", + "move-vm-config", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "once_cell", + "rayon", + "regex", + "tempfile", + "tokio", +] + +[[package]] +name = "move-unit-test" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "better_any", + "clap 4.5.7", + "codespan-reporting", + "colored", + "itertools 0.10.5", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-ir-types", + "move-model", + "move-stdlib", + "move-stdlib-natives", + "move-symbol-pool", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "once_cell", + "rand 0.8.5", + "rayon", + "regex", +] + +[[package]] +name = "move-vm-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", + "once_cell", +] + +[[package]] +name = "move-vm-profiler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-vm-config", + "once_cell", + "serde", + "serde_json", + "tracing", +] + +[[package]] +name = "move-vm-runtime" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-runtime-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier-v0", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-runtime-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier-v1", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-runtime-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier-v2", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-test-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "move-binary-format", + "move-core-types", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "serde", +] + +[[package]] +name = "move-vm-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "move-binary-format", + "move-core-types", + "move-vm-profiler", + "serde", + "smallvec", +] + +[[package]] +name = "msim" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=077b735b484cf33e79f9d621db1d0c3a5827b81e#077b735b484cf33e79f9d621db1d0c3a5827b81e" +dependencies = [ + "ahash 0.7.8", + "async-task", + "bincode", + "bytes", + "cc", + "downcast-rs", + "erasable", + "futures", + "lazy_static", + "libc", + "msim-macros", + "naive-timer", + "pin-project-lite", + "rand 0.8.5", + "real_tokio", + "serde", + "socket2 0.4.10", + "tap", + "tokio-util 0.7.10", + "toml 0.5.11", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "msim-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=077b735b484cf33e79f9d621db1d0c3a5827b81e#077b735b484cf33e79f9d621db1d0c3a5827b81e" +dependencies = [ + "darling 0.14.4", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "multer" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" +dependencies = [ + "bytes", + "encoding_rs", + "futures-util", + "http", + "httparse", + "log", + "memchr", + "mime", + "spin 0.9.8", + "version_check", +] + +[[package]] +name = "multiaddr" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "log", + "multibase", + "multihash", + "percent-encoding", + "serde", + "static_assertions", + "unsigned-varint", + "url", +] + +[[package]] +name = "multibase" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +dependencies = [ + "base-x", + "data-encoding", + "data-encoding-macro", +] + +[[package]] +name = "multihash" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" +dependencies = [ + "core2", + "multihash-derive", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "multimap" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" + +[[package]] +name = "mysten-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "parking_lot 0.12.3", + "tokio", +] + +[[package]] +name = "mysten-metrics" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "axum", + "dashmap", + "futures", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "prometheus-closure-metric", + "scopeguard", + "tap", + "tokio", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "mysten-network" +version = "0.2.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "bcs", + "bytes", + "eyre", + "futures", + "http", + "multiaddr", + "pin-project-lite", + "serde", + "snap", + "tokio", + "tokio-stream", + "tonic 0.11.0", + "tonic-health", + "tower", + "tower-http", + "tracing", +] + +[[package]] +name = "mysten-util-mem" +version = "0.11.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "cfg-if", + "ed25519-consensus", + "fastcrypto", + "fastcrypto-tbls", + "hashbrown 0.12.3", + "impl-trait-for-tuples", + "indexmap 2.2.6", + "mysten-util-mem-derive", + "once_cell", + "parking_lot 0.12.3", + "roaring", + "smallvec", +] + +[[package]] +name = "mysten-util-mem-derive" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "proc-macro2 1.0.85", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "naive-timer" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034a0ad7deebf0c2abcf2435950a6666c3c15ea9d8fad0c0f48efa8a7f843fed" + +[[package]] +name = "named-lock" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40a3eb6b7c682b65d1f631ec3176829d72ab450b3aacdd3f719bf220822e59ac" +dependencies = [ + "libc", + "once_cell", + "parking_lot 0.12.3", + "thiserror", + "widestring", + "winapi", +] + +[[package]] +name = "narwhal-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto", + "match_opt", + "mysten-network", + "mysten-util-mem", + "narwhal-crypto", + "rand 0.8.5", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "narwhal-crypto" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "fastcrypto", + "serde", + "shared-crypto", +] + +[[package]] +name = "narwhal-executor" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "bcs", + "bincode", + "bytes", + "fastcrypto", + "futures", + "mockall", + "mysten-metrics", + "narwhal-config", + "narwhal-crypto", + "narwhal-network", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "prometheus", + "serde", + "sui-protocol-config", + "thiserror", + "tokio", + "tonic 0.11.0", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-network" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "async-trait", + "axum", + "axum-server", + "backoff", + "bytes", + "dashmap", + "futures", + "mysten-common", + "mysten-metrics", + "narwhal-crypto", + "narwhal-types", + "parking_lot 0.12.3", + "prometheus", + "quinn-proto", + "rand 0.8.5", + "sui-macros", + "tokio", + "tower", + "tracing", +] + +[[package]] +name = "narwhal-node" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "arc-swap", + "async-trait", + "axum", + "bytes", + "cfg-if", + "clap 4.5.7", + "eyre", + "fastcrypto", + "futures", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "narwhal-worker", + "prometheus", + "rand 0.8.5", + "reqwest", + "sui-keys", + "sui-protocol-config", + "sui-types", + "telemetry-subscribers", + "thiserror", + "tokio", + "tokio-stream", + "tracing", + "tracing-subscriber", + "url", +] + +[[package]] +name = "narwhal-primary" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "async-trait", + "backoff", + "bcs", + "bytes", + "cfg-if", + "fastcrypto", + "futures", + "governor", + "itertools 0.10.5", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-network", + "narwhal-storage", + "narwhal-types", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "rand 0.8.5", + "sui-macros", + "sui-protocol-config", + "tap", + "thiserror", + "tokio", + "tokio-stream", + "tower", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-storage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto", + "fastcrypto-tbls", + "futures", + "lru 0.10.1", + "mysten-common", + "mysten-metrics", + "narwhal-config", + "narwhal-types", + "parking_lot 0.12.3", + "prometheus", + "sui-macros", + "tap", + "tempfile", + "tokio", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-test-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "fastcrypto", + "fdlimit", + "indexmap 2.2.6", + "itertools 0.10.5", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-node", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "narwhal-worker", + "once_cell", + "prometheus", + "rand 0.8.5", + "sui-protocol-config", + "telemetry-subscribers", + "tempfile", + "tokio", + "tonic 0.11.0", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-build", + "anyhow", + "base64 0.21.7", + "bcs", + "bytes", + "derive_builder", + "enum_dispatch", + "fastcrypto", + "futures", + "indexmap 2.2.6", + "mockall", + "mysten-common", + "mysten-metrics", + "mysten-network", + "mysten-util-mem", + "narwhal-config", + "narwhal-crypto", + "once_cell", + "prometheus", + "proptest", + "proptest-derive", + "prost 0.12.6", + "prost-build", + "protobuf-src", + "rand 0.8.5", + "roaring", + "rustversion", + "serde", + "serde_with 2.3.3", + "sui-protocol-config", + "thiserror", + "tokio", + "tonic 0.11.0", + "tonic-build", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-worker" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "arc-swap", + "async-trait", + "byteorder", + "bytes", + "eyre", + "fastcrypto", + "futures", + "governor", + "itertools 0.10.5", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-network", + "narwhal-types", + "prometheus", + "rand 0.8.5", + "sui-protocol-config", + "tap", + "thiserror", + "tokio", + "tonic 0.11.0", + "tower", + "tracing", + "typed-store", +] + +[[package]] +name = "neptune" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06626c9ac04c894e9a23d061ba1309f28506cdc5fe64156d28a15fb57fc8e438" +dependencies = [ + "bellpepper", + "bellpepper-core", + "blake2s_simd", + "blstrs", + "byteorder", + "ff 0.13.0", + "generic-array", + "log", + "pasta_curves", + "serde", + "trait-set", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nonempty" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "995defdca0a589acfdd1bd2e8e3b896b4d4f7675a31fd14c32611440c7f608e6" + +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + +[[package]] +name = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + +[[package]] +name = "notify" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" +dependencies = [ + "bitflags 2.5.0", + "crossbeam-channel", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "log", + "mio", + "walkdir", + "windows-sys 0.48.0", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint 0.4.5", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" +dependencies = [ + "num-integer", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-modular" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a5fe11d4135c3bcdf3a95b18b194afa9608a5f6ff034f5d857bc9a27fb0119" +dependencies = [ + "num-bigint 0.4.5", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-prime" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e238432a7881ec7164503ccc516c014bf009be7984cde1ba56837862543bdec3" +dependencies = [ + "bitvec 1.0.1", + "either", + "lru 0.12.3", + "num-bigint 0.4.5", + "num-integer", + "num-modular", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint 0.4.5", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.9", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", +] + +[[package]] +name = "num_enum" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +dependencies = [ + "num_enum_derive 0.7.2", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "object" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "576dfe1fc8f9df304abb159d767a29d0476f7750fbf8aa7ad07816004a207434" +dependencies = [ + "memchr", +] + +[[package]] +name = "object_store" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f930c88a43b1c3f6e776dfe495b4afab89882dbc81530c632db2ed65451ebcb4" +dependencies = [ + "async-trait", + "base64 0.21.7", + "bytes", + "chrono", + "futures", + "humantime", + "hyper", + "itertools 0.11.0", + "parking_lot 0.12.3", + "percent-encoding", + "quick-xml", + "rand 0.8.5", + "reqwest", + "ring 0.16.20", + "rustls-pemfile", + "serde", + "serde_json", + "snafu", + "tokio", + "tracing", + "url", + "walkdir", +] + +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "oorandom" +version = "11.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "opentelemetry" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9591d937bc0e6d2feb6f71a559540ab300ea49955229c347a517a28d27784c54" +dependencies = [ + "opentelemetry_api", + "opentelemetry_sdk", +] + +[[package]] +name = "opentelemetry" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a" +dependencies = [ + "futures-core", + "futures-sink", + "indexmap 2.2.6", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", + "urlencoding", +] + +[[package]] +name = "opentelemetry-otlp" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e5e5a5c4135864099f3faafbe939eb4d7f9b80ebf68a8448da961b32a7c1275" +dependencies = [ + "async-trait", + "futures-core", + "http", + "opentelemetry-proto", + "opentelemetry-semantic-conventions", + "opentelemetry_api", + "opentelemetry_sdk", + "prost 0.11.9", + "thiserror", + "tokio", + "tonic 0.9.2", +] + +[[package]] +name = "opentelemetry-proto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e3f814aa9f8c905d0ee4bde026afd3b2577a97c10e1699912e3e44f0c4cbeb" +dependencies = [ + "opentelemetry_api", + "opentelemetry_sdk", + "prost 0.11.9", + "tonic 0.9.2", +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73c9f9340ad135068800e7f1b24e9e09ed9e7143f5bf8518ded3d3ec69789269" +dependencies = [ + "opentelemetry 0.20.0", +] + +[[package]] +name = "opentelemetry_api" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a81f725323db1b1206ca3da8bb19874bbd3f57c3bcd59471bfb04525b265b9b" +dependencies = [ + "futures-channel", + "futures-util", + "indexmap 1.9.3", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", + "urlencoding", +] + +[[package]] +name = "opentelemetry_sdk" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa8e705a0612d48139799fcbaba0d4a90f06277153e43dd2bdc16c6f0edd8026" +dependencies = [ + "async-trait", + "crossbeam-channel", + "futures-channel", + "futures-executor", + "futures-util", + "once_cell", + "opentelemetry_api", + "ordered-float", + "percent-encoding", + "rand 0.8.5", + "regex", + "serde_json", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-float" +version = "3.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc" +dependencies = [ + "num-traits", +] + +[[package]] +name = "os_str_bytes" +version = "6.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" + +[[package]] +name = "ouroboros" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2ba07320d39dfea882faa70554b4bd342a5f273ed59ba7c1c6b4c840492c954" +dependencies = [ + "aliasable", + "ouroboros_macro", + "static_assertions", +] + +[[package]] +name = "ouroboros_macro" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec4c6225c69b4ca778c0aea097321a64c421cf4577b331c61b229267edabb6f8" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "primeorder", + "sha2 0.10.8", +] + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group 0.13.0", +] + +[[package]] +name = "papergrid" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae7891b22598926e4398790c8fe6447930c72a67d36d983a49d6ce682ce83290" +dependencies = [ + "bytecount", + "fnv", + "unicode-width", +] + +[[package]] +name = "parity-scale-codec" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" +dependencies = [ + "arrayvec", + "bitvec 0.20.4", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive 2.3.1", + "serde", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +dependencies = [ + "arrayvec", + "bitvec 1.0.1", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive 3.6.12", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.1", + "smallvec", + "windows-targets 0.52.5", +] + +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "pasta_curves" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" +dependencies = [ + "blake2b_simd", + "ff 0.13.0", + "group 0.13.0", + "hex", + "lazy_static", + "rand 0.8.5", + "serde", + "static_assertions", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", + "hmac", + "password-hash", + "sha2 0.10.8", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "pem-rfc7468" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac" +dependencies = [ + "base64ct", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "pest_meta" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" +dependencies = [ + "once_cell", + "pest", + "sha2 0.10.8", +] + +[[package]] +name = "petgraph" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +dependencies = [ + "fixedbitset 0.2.0", + "indexmap 1.9.3", +] + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset 0.4.2", + "indexmap 2.2.6", +] + +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared 0.11.2", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs1" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719" +dependencies = [ + "der 0.6.1", + "pkcs8 0.9.0", + "spki 0.6.0", + "zeroize", +] + +[[package]] +name = "pkcs8" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +dependencies = [ + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.9", + "spki 0.7.3", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "plotters" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7" + +[[package]] +name = "plotters-svg" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81b30686a7d9c3e010b84284bdd26a29f2138574f52f5eb6f794fc0ad924e705" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "portable-atomic" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" + +[[package]] +name = "postgres-protocol" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520" +dependencies = [ + "base64 0.21.7", + "byteorder", + "bytes", + "fallible-iterator", + "hmac", + "md-5", + "memchr", + "rand 0.8.5", + "sha2 0.10.8", + "stringprep", +] + +[[package]] +name = "postgres-types" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d2234cdee9408b523530a9b6d2d6b373d1db34f6a8e51dc03ded1828d7fb67c" +dependencies = [ + "bytes", + "fallible-iterator", + "postgres-protocol", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "pq-sys" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c0052426df997c0cbd30789eb44ca097e3541717a7b8fa36b1c464ee7edebd" +dependencies = [ + "vcpkg", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "predicates" +version = "2.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +dependencies = [ + "difflib", + "float-cmp", + "itertools 0.10.5", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" + +[[package]] +name = "predicates-tree" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +dependencies = [ + "predicates-core", + "termtree", +] + +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2 1.0.85", + "syn 1.0.109", +] + +[[package]] +name = "prettyplease" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +dependencies = [ + "proc-macro2 1.0.85", + "syn 2.0.66", +] + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve 0.13.8", +] + +[[package]] +name = "primitive-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +dependencies = [ + "fixed-hash 0.7.0", + "impl-codec 0.5.1", + "impl-serde 0.3.2", + "uint", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "scale-info", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml 0.5.11", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", +] + +[[package]] +name = "proc-macro2" +version = "1.0.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prometheus" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" +dependencies = [ + "cfg-if", + "fnv", + "lazy_static", + "memchr", + "parking_lot 0.12.3", + "protobuf", + "thiserror", +] + +[[package]] +name = "prometheus-closure-metric" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "prometheus", + "protobuf", +] + +[[package]] +name = "proptest" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags 2.5.0", + "lazy_static", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_xorshift", + "regex-syntax 0.8.4", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "proptest-derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90b46295382dc76166cb7cf2bb4a97952464e4b7ed5a43e6cd34e1fec3349ddc" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", +] + +[[package]] +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive 0.12.6", +] + +[[package]] +name = "prost-build" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" +dependencies = [ + "bytes", + "heck 0.5.0", + "itertools 0.12.1", + "log", + "multimap", + "once_cell", + "petgraph 0.6.5", + "prettyplease 0.2.20", + "prost 0.12.6", + "prost-types", + "regex", + "syn 2.0.66", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "prost-types" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +dependencies = [ + "prost 0.12.6", +] + +[[package]] +name = "protobuf" +version = "2.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" +dependencies = [ + "bytes", +] + +[[package]] +name = "protobuf-src" +version = "1.1.0+21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7ac8852baeb3cc6fb83b93646fb93c0ffe5d14bf138c945ceb4b9948ee0e3c1" +dependencies = [ + "autotools", +] + +[[package]] +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] + +[[package]] +name = "quanta" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi 0.11.0+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quick-xml" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "quinn" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75" +dependencies = [ + "bytes", + "futures-io", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls 0.21.12", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a" +dependencies = [ + "bytes", + "rand 0.8.5", + "ring 0.16.20", + "rustc-hash", + "rustls 0.21.12", + "slab", + "thiserror", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" +dependencies = [ + "bytes", + "libc", + "socket2 0.5.7", + "tracing", + "windows-sys 0.48.0", +] + +[[package]] +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2 0.4.30", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2 1.0.85", +] + +[[package]] +name = "r2d2" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93" +dependencies = [ + "log", + "parking_lot 0.12.3", + "scheduled-thread-pool", +] + +[[package]] +name = "radium" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "rand_xoshiro" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "raw-cpuid" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e29830cbb1290e404f24c73af91c5d8d631ce7e128691e9477556b540cd01ecd" +dependencies = [ + "bitflags 2.5.0", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rcgen" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +dependencies = [ + "pem", + "ring 0.16.20", + "time", + "yasna", +] + +[[package]] +name = "readonly" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a25d631e41bfb5fdcde1d4e2215f62f7f0afa3ff11e26563765bd6ea1d229aeb" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "real_tokio" +version = "1.36.0" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=e47aafebf98e9c1734a8848a1876d5946c44bdd1#e47aafebf98e9c1734a8848a1876d5946c44bdd1" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot 0.12.3", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.7", + "tokio-macros 2.2.0", + "windows-sys 0.48.0", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +dependencies = [ + "bitflags 2.5.0", +] + +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror", +] + +[[package]] +name = "ref-cast" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "regex" +version = "1.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-rustls 0.24.2", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-rustls 0.24.1", + "tokio-util 0.7.11", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots 0.25.4", + "winreg", +] + +[[package]] +name = "retain_mut" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0" + +[[package]] +name = "rfc6979" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +dependencies = [ + "crypto-bigint 0.4.9", + "hmac", + "zeroize", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.15", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "roaring" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1c77081a55300e016cb86f2864415b7518741879db925b8d488a0ee0d2da6bf" +dependencies = [ + "bytemuck", + "byteorder", +] + +[[package]] +name = "rocksdb" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" +dependencies = [ + "libc", + "librocksdb-sys", +] + +[[package]] +name = "rsa" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55a77d189da1fee555ad95b7e50e7457d91c0e089ec68ca69ad2989413bbdab4" +dependencies = [ + "byteorder", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-iter", + "num-traits", + "pkcs1", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "sha2 0.10.8", + "signature 2.2.0", + "subtle", + "zeroize", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.5.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +dependencies = [ + "log", + "ring 0.16.20", + "sct", + "webpki", +] + +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scale-info" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +dependencies = [ + "cfg-if", + "derive_more", + "parity-scale-codec 3.6.12", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "scheduled-thread-pool" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19" +dependencies = [ + "parking_lot 0.12.3", +] + +[[package]] +name = "schemars" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +dependencies = [ + "dyn-clone", + "either", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "serde_derive_internals", + "syn 2.0.66", +] + +[[package]] +name = "scoped-futures" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1473e24c637950c9bd38763220bea91ec3e095a89f672bbd7a10d03e77ba467" +dependencies = [ + "cfg-if", + "pin-utils", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scrypt" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" +dependencies = [ + "hmac", + "pbkdf2 0.11.0", + "salsa20", + "sha2 0.10.8", +] + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "sec1" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +dependencies = [ + "base16ct 0.1.1", + "der 0.6.1", + "generic-array", + "subtle", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.9", + "generic-array", + "pkcs8 0.10.2", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "bitcoin_hashes", + "rand 0.8.5", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +dependencies = [ + "cc", +] + +[[package]] +name = "secrecy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +dependencies = [ + "bitflags 2.5.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + +[[package]] +name = "serde" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-name" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b5b14ebbcc4e4f2b3642fa99c388649da58d1dc3308c7d109f39f565d1710f0" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "serde-reflection" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05a5f801ac62a51a49d378fdb3884480041b99aced450b28990673e8ff99895" +dependencies = [ + "once_cell", + "serde", + "thiserror", +] + +[[package]] +name = "serde_bytes" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_json" +version = "1.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +dependencies = [ + "indexmap 2.2.6", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_spanned" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +dependencies = [ + "base64 0.13.1", + "chrono", + "hex", + "indexmap 1.9.3", + "serde", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "serde", + "serde_derive", + "serde_json", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" +dependencies = [ + "darling 0.20.9", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_yaml" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +dependencies = [ + "indexmap 1.9.3", + "ryu", + "serde", + "yaml-rust", +] + +[[package]] +name = "serial_test" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e56dd856803e253c8f298af3f4d7eb0ae5e23a737252cd90bb4f3b435033b2d" +dependencies = [ + "dashmap", + "futures", + "lazy_static", + "log", + "parking_lot 0.12.3", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shared-crypto" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "eyre", + "fastcrypto", + "serde", + "serde_repr", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "similar" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640" + +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint 0.4.5", + "num-traits", + "thiserror", + "time", +] + +[[package]] +name = "simplelog" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bc0ffd69814a9b251d43afcabf96dad1b29f5028378056257be9e3fecc9f720" +dependencies = [ + "chrono", + "log", + "termcolor", +] + +[[package]] +name = "simulacrum" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "fastcrypto", + "futures", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "once_cell", + "prometheus", + "rand 0.8.5", + "serde", + "shared-crypto", + "sui-config", + "sui-execution", + "sui-framework", + "sui-genesis-builder", + "sui-keys", + "sui-protocol-config", + "sui-storage", + "sui-swarm-config", + "sui-transaction-checks", + "sui-types", + "tracing", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "sized-chunks" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" +dependencies = [ + "bitmaps", + "typenum", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slip10_ed25519" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be0ff28bf14f9610a342169084e87a4f435ad798ec528dc7579a3678fa9dc9a" +dependencies = [ + "hmac-sha512", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "snafu" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6" +dependencies = [ + "doc-comment", + "snafu-derive", +] + +[[package]] +name = "snafu-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "soketto" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +dependencies = [ + "base64 0.13.1", + "bytes", + "futures", + "http", + "httparse", + "log", + "rand 0.8.5", + "sha-1", +] + +[[package]] +name = "solang-parser" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" +dependencies = [ + "itertools 0.11.0", + "lalrpop", + "lalrpop-util", + "phf", + "thiserror", + "unicode-xid 0.2.4", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spinning_top" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +dependencies = [ + "base64ct", + "der 0.6.1", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der 0.7.9", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "stacker" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "winapi", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot 0.12.3", + "phf_shared 0.10.0", + "precomputed-hash", +] + +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros 0.24.3", +] + +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +dependencies = [ + "strum_macros 0.25.3", +] + +[[package]] +name = "strum" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" +dependencies = [ + "strum_macros 0.26.4", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustversion", + "syn 2.0.66", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustversion", + "syn 2.0.66", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "subtle-ng" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + +[[package]] +name = "sui-adapter-latest" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-types", + "mysten-metrics", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-latest", + "sui-protocol-config", + "sui-types", + "sui-verifier-latest", + "tracing", +] + +[[package]] +name = "sui-adapter-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v0", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime-v0", + "move-vm-types", + "once_cell", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-v0", + "sui-protocol-config", + "sui-types", + "sui-verifier-v0", + "tracing", +] + +[[package]] +name = "sui-adapter-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v1", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime-v1", + "move-vm-types", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-v1", + "sui-protocol-config", + "sui-types", + "sui-verifier-v1", + "tracing", +] + +[[package]] +name = "sui-adapter-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v2", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime-v2", + "move-vm-types", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-v2", + "sui-protocol-config", + "sui-types", + "sui-verifier-v2", + "tracing", +] + +[[package]] +name = "sui-archival" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "byteorder", + "bytes", + "fastcrypto", + "futures", + "indicatif", + "num_enum 0.6.1", + "object_store", + "prometheus", + "rand 0.8.5", + "serde", + "serde_json", + "sui-config", + "sui-simulator", + "sui-storage", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "sui-authority-aggregation" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "mysten-metrics", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "sui-bridge" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "arc-swap", + "async-trait", + "axum", + "backoff", + "bcs", + "bin-version", + "clap 4.5.7", + "enum_dispatch", + "ethers", + "eyre", + "fastcrypto", + "futures", + "lru 0.10.1", + "move-core-types", + "mysten-metrics", + "num_enum 0.6.1", + "once_cell", + "prometheus", + "rand 0.8.5", + "reqwest", + "rocksdb", + "serde", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "sui-common", + "sui-config", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-keys", + "sui-sdk 1.27.0", + "sui-test-transaction-builder", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tracing", + "typed-store", + "typed-store-derive", + "url", +] + +[[package]] +name = "sui-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "mysten-metrics", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "sui-config" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "bcs", + "clap 4.5.7", + "csv", + "dirs 4.0.0", + "fastcrypto", + "narwhal-config", + "object_store", + "once_cell", + "prometheus", + "rand 0.8.5", + "reqwest", + "serde", + "serde_with 2.3.3", + "serde_yaml", + "sui-keys", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-core" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "arc-swap", + "async-trait", + "axum", + "bcs", + "bytes", + "chrono", + "consensus-config", + "consensus-core", + "count-min-sketch", + "dashmap", + "diffy", + "either", + "enum_dispatch", + "eyre", + "fastcrypto", + "fastcrypto-tbls", + "fastcrypto-zkp", + "futures", + "im", + "indexmap 2.2.6", + "itertools 0.10.5", + "jsonrpsee", + "lru 0.10.1", + "mockall", + "moka", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-package", + "move-symbol-pool", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-node", + "narwhal-test-utils", + "narwhal-types", + "narwhal-worker", + "num_cpus", + "object_store", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "rand 0.8.5", + "reqwest", + "roaring", + "rocksdb", + "scopeguard", + "serde", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "signature 1.6.4", + "static_assertions", + "sui-archival", + "sui-authority-aggregation", + "sui-config", + "sui-execution", + "sui-framework", + "sui-genesis-builder", + "sui-json-rpc-types", + "sui-macros", + "sui-move-build", + "sui-network", + "sui-protocol-config", + "sui-rest-api", + "sui-simulator", + "sui-storage", + "sui-swarm-config", + "sui-transaction-checks", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "thiserror", + "tokio", + "tokio-retry", + "tokio-stream", + "tracing", + "twox-hash", + "typed-store", + "typed-store-derive", + "zeroize", +] + +[[package]] +name = "sui-ctf-framework" +version = "0.1.0" +source = "git+https://github.com/otter-sec/sui-ctf-framework?branch=justctf2024#2d35e09413445ce624aa9447d0f49bf368126cd8" +dependencies = [ + "clap 3.2.25", + "diesel-async", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-stdlib", + "move-symbol-pool", + "move-transactional-test-runner", + "once_cell", + "sui-protocol-config", + "sui-transactional-test-runner", + "sui-types", + "tempfile", +] + +[[package]] +name = "sui-data-ingestion-core" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "backoff", + "bcs", + "futures", + "mysten-metrics", + "notify", + "object_store", + "prometheus", + "serde", + "serde_json", + "sui-rest-api", + "sui-storage", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "sui-enum-compat-util" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "serde_yaml", +] + +[[package]] +name = "sui-execution" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter", + "move-abstract-interpreter-v2", + "move-binary-format", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v0", + "move-bytecode-verifier-v1", + "move-bytecode-verifier-v2", + "move-vm-config", + "move-vm-runtime", + "move-vm-runtime-v0", + "move-vm-runtime-v1", + "move-vm-runtime-v2", + "sui-adapter-latest", + "sui-adapter-v0", + "sui-adapter-v1", + "sui-adapter-v2", + "sui-move-natives-latest", + "sui-move-natives-v0", + "sui-move-natives-v1", + "sui-move-natives-v2", + "sui-protocol-config", + "sui-types", + "sui-verifier-latest", + "sui-verifier-v0", + "sui-verifier-v1", + "sui-verifier-v2", +] + +[[package]] +name = "sui-framework" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "move-binary-format", + "move-compiler", + "move-core-types", + "move-package", + "once_cell", + "regex", + "serde", + "sui-move-build", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-framework-snapshot" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "bin-version", + "serde", + "serde_json", + "sui-framework", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-genesis-builder" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "camino", + "fastcrypto", + "move-binary-format", + "move-core-types", + "prometheus", + "rand 0.8.5", + "serde", + "serde_with 2.3.3", + "serde_yaml", + "shared-crypto", + "sui-config", + "sui-execution", + "sui-framework", + "sui-framework-snapshot", + "sui-protocol-config", + "sui-simulator", + "sui-types", + "tempfile", + "tracing", +] + +[[package]] +name = "sui-graphql-rpc" +version = "2024.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-graphql", + "async-graphql-axum", + "async-graphql-value", + "async-trait", + "axum", + "bcs", + "bin-version", + "chrono", + "clap 4.5.7", + "const-str", + "diesel", + "downcast", + "either", + "fastcrypto", + "fastcrypto-zkp", + "futures", + "hex", + "http", + "hyper", + "im", + "itertools 0.10.5", + "lru 0.10.1", + "markdown-gen", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-disassembler", + "move-ir-types", + "mysten-metrics", + "mysten-network", + "once_cell", + "prometheus", + "rand 0.8.5", + "regex", + "reqwest", + "serde", + "serde_json", + "serde_with 2.3.3", + "serde_yaml", + "serial_test", + "shared-crypto", + "similar", + "simulacrum", + "sui-graphql-rpc-client", + "sui-graphql-rpc-headers", + "sui-indexer", + "sui-json-rpc", + "sui-json-rpc-types", + "sui-package-resolver", + "sui-protocol-config", + "sui-rest-api", + "sui-sdk 1.27.0", + "sui-swarm-config", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "test-cluster", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "toml 0.7.8", + "tower", + "tower-http", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "sui-graphql-rpc-client" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-graphql", + "axum", + "hyper", + "reqwest", + "serde_json", + "sui-graphql-rpc-headers", + "thiserror", +] + +[[package]] +name = "sui-graphql-rpc-headers" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "axum", +] + +[[package]] +name = "sui-indexer" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "axum", + "backoff", + "bcs", + "cached", + "chrono", + "clap 4.5.7", + "diesel", + "diesel-derive-enum", + "diesel_migrations", + "downcast", + "fastcrypto", + "futures", + "itertools 0.10.5", + "jsonrpsee", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "mysten-metrics", + "prometheus", + "rayon", + "regex", + "secrecy", + "serde", + "serde_json", + "serde_with 2.3.3", + "sui-data-ingestion-core", + "sui-json", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-open-rpc", + "sui-package-resolver", + "sui-protocol-config", + "sui-rest-api", + "sui-sdk 1.27.0", + "sui-transaction-builder", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "tracing", + "url", +] + +[[package]] +name = "sui-json" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "fastcrypto", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "schemars", + "serde", + "serde_json", + "sui-types", +] + +[[package]] +name = "sui-json-rpc" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "arc-swap", + "async-trait", + "axum", + "bcs", + "cached", + "chrono", + "eyre", + "fastcrypto", + "futures", + "hyper", + "indexmap 2.2.6", + "itertools 0.10.5", + "jsonrpsee", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-package", + "mysten-metrics", + "once_cell", + "prometheus", + "serde", + "serde_json", + "shared-crypto", + "signature 1.6.4", + "sui-core", + "sui-json", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-macros", + "sui-open-rpc", + "sui-open-rpc-macros", + "sui-protocol-config", + "sui-storage", + "sui-transaction-builder", + "sui-types", + "tap", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "tower", + "tower-http", + "tracing", + "typed-store-error", +] + +[[package]] +name = "sui-json-rpc-api" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "fastcrypto", + "jsonrpsee", + "mysten-metrics", + "once_cell", + "prometheus", + "sui-json", + "sui-json-rpc-types", + "sui-open-rpc", + "sui-open-rpc-macros", + "sui-types", + "tap", + "tracing", +] + +[[package]] +name = "sui-json-rpc-types" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "colored", + "enum_dispatch", + "fastcrypto", + "itertools 0.10.5", + "json_to_table", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "mysten-metrics", + "schemars", + "serde", + "serde_json", + "serde_with 2.3.3", + "sui-enum-compat-util", + "sui-json", + "sui-macros", + "sui-package-resolver", + "sui-protocol-config", + "sui-types", + "tabled", + "tracing", +] + +[[package]] +name = "sui-keys" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bip32", + "fastcrypto", + "rand 0.8.5", + "regex", + "serde", + "serde_json", + "shared-crypto", + "signature 1.6.4", + "slip10_ed25519", + "sui-types", + "tiny-bip39", +] + +[[package]] +name = "sui-macros" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "once_cell", + "sui-proc-macros", + "tracing", +] + +[[package]] +name = "sui-move-build" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "fastcrypto", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-ir-types", + "move-package", + "move-symbol-pool", + "serde-reflection", + "sui-protocol-config", + "sui-types", + "sui-verifier-latest", + "tempfile", +] + +[[package]] +name = "sui-move-natives-latest" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-vdf", + "fastcrypto-zkp", + "indexmap 2.2.6", + "move-binary-format", + "move-core-types", + "move-stdlib-natives", + "move-vm-runtime", + "move-vm-types", + "rand 0.8.5", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-move-natives-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-zkp", + "linked-hash-map", + "move-binary-format", + "move-core-types", + "move-stdlib-natives-v0", + "move-vm-runtime-v0", + "move-vm-types", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-move-natives-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-zkp", + "linked-hash-map", + "move-binary-format", + "move-core-types", + "move-stdlib-natives-v1", + "move-vm-runtime-v1", + "move-vm-types", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-move-natives-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-zkp", + "indexmap 2.2.6", + "move-binary-format", + "move-core-types", + "move-stdlib-natives-v2", + "move-vm-runtime-v2", + "move-vm-types", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-network" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-build", + "anemo-tower", + "anyhow", + "arc-swap", + "bcs", + "bytes", + "dashmap", + "fastcrypto", + "fastcrypto-tbls", + "futures", + "governor", + "mysten-metrics", + "mysten-network", + "prometheus", + "rand 0.8.5", + "serde", + "sui-archival", + "sui-config", + "sui-macros", + "sui-storage", + "sui-swarm-config", + "sui-types", + "tap", + "tokio", + "tonic 0.11.0", + "tonic-build", + "tower", + "tracing", +] + +[[package]] +name = "sui-node" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "arc-swap", + "axum", + "bin-version", + "clap 4.5.7", + "fastcrypto", + "fastcrypto-zkp", + "futures", + "humantime", + "move-vm-profiler", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-network", + "narwhal-worker", + "prometheus", + "reqwest", + "serde", + "snap", + "sui-archival", + "sui-config", + "sui-core", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-macros", + "sui-network", + "sui-protocol-config", + "sui-rest-api", + "sui-simulator", + "sui-snapshot", + "sui-storage", + "sui-telemetry", + "sui-tls", + "sui-types", + "tap", + "telemetry-subscribers", + "tokio", + "tower", + "tracing", + "typed-store", + "url", +] + +[[package]] +name = "sui-open-rpc" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "schemars", + "serde", + "serde_json", + "versions", +] + +[[package]] +name = "sui-open-rpc-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "derive-syn-parse", + "itertools 0.10.5", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "unescape", +] + +[[package]] +name = "sui-package-resolver" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "bcs", + "eyre", + "lru 0.10.1", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "serde", + "sui-rest-api", + "sui-types", + "thiserror", + "tokio", +] + +[[package]] +name = "sui-proc-macros" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "msim-macros", + "proc-macro2 1.0.85", + "quote 1.0.36", + "sui-enum-compat-util", + "syn 2.0.66", +] + +[[package]] +name = "sui-protocol-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "clap 4.5.7", + "insta", + "move-vm-config", + "schemars", + "serde", + "serde_with 2.3.3", + "sui-protocol-config-macros", + "tracing", +] + +[[package]] +name = "sui-protocol-config-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "sui-rest-api" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "axum", + "bcs", + "fastcrypto", + "itertools 0.10.5", + "mime", + "mysten-network", + "prometheus", + "rand 0.8.5", + "reqwest", + "serde", + "serde_json", + "serde_with 2.3.3", + "sui-sdk 0.0.0", + "sui-types", + "tap", + "thiserror", +] + +[[package]] +name = "sui-sdk" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/sui-rust-sdk.git?rev=ec4236befe57c15fba0dae9e6881c18231882151#ec4236befe57c15fba0dae9e6881c18231882151" +dependencies = [ + "base64ct", + "bcs", + "bnum", + "bs58 0.5.1", + "hex", + "roaring", + "serde", + "serde_derive", + "serde_with 3.8.1", + "winnow 0.6.13", +] + +[[package]] +name = "sui-sdk" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "base64 0.21.7", + "bcs", + "clap 4.5.7", + "colored", + "fastcrypto", + "futures", + "futures-core", + "jsonrpsee", + "move-core-types", + "reqwest", + "serde", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "sui-config", + "sui-json", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-keys", + "sui-transaction-builder", + "sui-types", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "sui-simulator" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "bcs", + "fastcrypto", + "lru 0.10.1", + "move-package", + "msim", + "narwhal-network", + "rand 0.8.5", + "serde", + "sui-framework", + "sui-move-build", + "sui-types", + "telemetry-subscribers", + "tempfile", + "tower", + "tracing", +] + +[[package]] +name = "sui-snapshot" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "byteorder", + "bytes", + "fastcrypto", + "futures", + "indicatif", + "integer-encoding", + "num_enum 0.6.1", + "object_store", + "prometheus", + "serde", + "serde_json", + "sui-config", + "sui-core", + "sui-protocol-config", + "sui-storage", + "sui-types", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "sui-storage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "backoff", + "base64-url", + "bcs", + "byteorder", + "bytes", + "chrono", + "clap 4.5.7", + "eyre", + "fastcrypto", + "futures", + "hyper", + "hyper-rustls 0.24.2", + "indicatif", + "integer-encoding", + "itertools 0.10.5", + "lru 0.10.1", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "mysten-metrics", + "num_enum 0.6.1", + "object_store", + "parking_lot 0.12.3", + "percent-encoding", + "prometheus", + "reqwest", + "rocksdb", + "serde", + "serde_json", + "sui-config", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tracing", + "typed-store", + "typed-store-derive", + "url", + "zstd 0.12.4", +] + +[[package]] +name = "sui-swarm" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "futures", + "mysten-metrics", + "mysten-network", + "prometheus", + "rand 0.8.5", + "sui-config", + "sui-macros", + "sui-node", + "sui-protocol-config", + "sui-simulator", + "sui-swarm-config", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tonic-health", + "tracing", +] + +[[package]] +name = "sui-swarm-config" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "fastcrypto", + "move-bytecode-utils", + "narwhal-config", + "prometheus", + "rand 0.8.5", + "serde", + "serde_with 2.3.3", + "serde_yaml", + "shared-crypto", + "sui-config", + "sui-genesis-builder", + "sui-macros", + "sui-protocol-config", + "sui-simulator", + "sui-types", + "tempfile", + "tracing", +] + +[[package]] +name = "sui-telemetry" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "reqwest", + "serde", + "sui-core", + "tracing", +] + +[[package]] +name = "sui-test-transaction-builder" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "move-core-types", + "shared-crypto", + "sui-genesis-builder", + "sui-move-build", + "sui-sdk 1.27.0", + "sui-types", +] + +[[package]] +name = "sui-tls" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "axum", + "axum-server", + "ed25519", + "fastcrypto", + "pkcs8 0.9.0", + "rcgen", + "reqwest", + "rustls 0.21.12", + "rustls-webpki", + "tokio", + "tokio-rustls 0.24.1", + "tower-layer", + "x509-parser", +] + +[[package]] +name = "sui-transaction-builder" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "futures", + "move-binary-format", + "move-core-types", + "sui-json", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-transaction-checks" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto-zkp", + "once_cell", + "sui-config", + "sui-execution", + "sui-macros", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-transactional-test-runner" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "bimap", + "clap 4.5.7", + "criterion", + "eyre", + "fastcrypto", + "futures", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-stdlib", + "move-symbol-pool", + "move-transactional-test-runner", + "move-vm-runtime", + "msim", + "once_cell", + "rand 0.8.5", + "regex", + "rocksdb", + "serde_json", + "simulacrum", + "sui-config", + "sui-core", + "sui-framework", + "sui-framework-snapshot", + "sui-graphql-rpc", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-rest-api", + "sui-storage", + "sui-swarm-config", + "sui-types", + "telemetry-subscribers", + "tempfile", + "tokio", + "typed-store", + "typed-store-derive", +] + +[[package]] +name = "sui-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "bcs", + "better_any", + "bincode", + "byteorder", + "chrono", + "consensus-config", + "derivative", + "derive_more", + "enum_dispatch", + "eyre", + "fastcrypto", + "fastcrypto-tbls", + "fastcrypto-zkp", + "im", + "indexmap 2.2.6", + "itertools 0.10.5", + "jsonrpsee", + "lru 0.10.1", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-core-types", + "move-disassembler", + "move-ir-types", + "move-vm-profiler", + "move-vm-test-utils", + "move-vm-types", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "nonempty", + "num-bigint 0.4.5", + "num-traits", + "num_enum 0.6.1", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "proptest", + "proptest-derive", + "rand 0.8.5", + "roaring", + "schemars", + "serde", + "serde-name", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "signature 1.6.4", + "static_assertions", + "strum 0.24.1", + "strum_macros 0.24.3", + "sui-enum-compat-util", + "sui-macros", + "sui-protocol-config", + "sui-sdk 0.0.0", + "tap", + "thiserror", + "tonic 0.11.0", + "tracing", + "typed-store-error", +] + +[[package]] +name = "sui-verifier-latest" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter", + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-verifier-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v0", + "move-core-types", + "move-vm-config", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-verifier-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v1", + "move-core-types", + "move-vm-config", + "sui-types", +] + +[[package]] +name = "sui-verifier-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v2", + "move-core-types", + "move-vm-config", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "svm-rs" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" +dependencies = [ + "dirs 5.0.1", + "fs2", + "hex", + "once_cell", + "reqwest", + "semver", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "url", + "zip", +] + +[[package]] +name = "syn" +version = "0.15.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "unicode-xid 0.2.4", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tabled" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce69a5028cd9576063ec1f48edb2c75339fd835e6094ef3e05b3a079bf594a6" +dependencies = [ + "papergrid", + "tabled_derive", + "unicode-width", +] + +[[package]] +name = "tabled_derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99f688a08b54f4f02f0a3c382aefdb7884d3d69609f785bd253dc033243e3fe4" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "tagptr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "telemetry-subscribers" +version = "0.2.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "atomic_float", + "bytes", + "bytes-varint", + "clap 4.5.7", + "crossterm", + "futures", + "once_cell", + "opentelemetry 0.20.0", + "opentelemetry-otlp", + "opentelemetry-proto", + "opentelemetry_api", + "prometheus", + "prost 0.11.9", + "tokio", + "tonic 0.9.2", + "tracing", + "tracing-appender", + "tracing-opentelemetry", + "tracing-subscriber", +] + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terminal_size" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +dependencies = [ + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + +[[package]] +name = "test-cluster" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "fastcrypto", + "fastcrypto-zkp", + "futures", + "jsonrpsee", + "move-binary-format", + "prometheus", + "rand 0.8.5", + "sui-bridge", + "sui-config", + "sui-core", + "sui-framework", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-keys", + "sui-node", + "sui-protocol-config", + "sui-sdk 1.27.0", + "sui-simulator", + "sui-swarm", + "sui-swarm-config", + "sui-test-transaction-builder", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "textwrap" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" + +[[package]] +name = "thiserror" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-bip39" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" +dependencies = [ + "anyhow", + "hmac", + "once_cell", + "pbkdf2 0.11.0", + "rand 0.8.5", + "rustc-hash", + "sha2 0.10.8", + "thiserror", + "unicode-normalization", + "wasm-bindgen", + "zeroize", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot 0.12.3", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.7", + "tokio-macros 2.3.0", + "tracing", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=e47aafebf98e9c1734a8848a1876d5946c44bdd1#e47aafebf98e9c1734a8848a1876d5946c44bdd1" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tokio-macros" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tokio-postgres" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d340244b32d920260ae7448cb72b6e238bddc3d4f7603394e7dd46ed8e48f5b8" +dependencies = [ + "async-trait", + "byteorder", + "bytes", + "fallible-iterator", + "futures-channel", + "futures-util", + "log", + "parking_lot 0.12.3", + "percent-encoding", + "phf", + "pin-project-lite", + "postgres-protocol", + "postgres-types", + "rand 0.8.5", + "socket2 0.5.7", + "tokio", + "tokio-util 0.7.11", + "whoami", +] + +[[package]] +name = "tokio-retry" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +dependencies = [ + "pin-project", + "rand 0.8.5", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls 0.20.9", + "tokio", + "webpki", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util 0.7.11", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", + "tungstenite", + "webpki-roots 0.25.4", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=e47aafebf98e9c1734a8848a1876d5946c44bdd1#e47aafebf98e9c1734a8848a1876d5946c44bdd1" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "futures-util", + "hashbrown 0.14.5", + "pin-project-lite", + "real_tokio", + "slab", + "tracing", +] + +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "futures-util", + "hashbrown 0.14.5", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.14", +] + +[[package]] +name = "toml_datetime" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5376256e44f2443f8896ac012507c19a012df0fe8758b55246ae51a2279db51f" +dependencies = [ + "combine", + "indexmap 1.9.3", + "itertools 0.10.5", + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.13", +] + +[[package]] +name = "tonic" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" +dependencies = [ + "async-trait", + "axum", + "base64 0.21.7", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost 0.11.9", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.21.7", + "bytes", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost 0.12.6", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-build" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2" +dependencies = [ + "prettyplease 0.2.20", + "proc-macro2 1.0.85", + "prost-build", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tonic-health" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cef6e24bc96871001a7e48e820ab240b3de2201e59b517cf52835df2f1d2350" +dependencies = [ + "async-stream", + "prost 0.12.6", + "tokio", + "tokio-stream", + "tonic 0.11.0", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "hdrhistogram", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util 0.7.11", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" +dependencies = [ + "async-compression", + "base64 0.13.1", + "bitflags 1.3.2", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "httpdate", + "iri-string", + "mime", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "tokio", + "tokio-util 0.7.11", + "tower", + "tower-layer", + "tower-service", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-appender" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +dependencies = [ + "crossbeam-channel", + "thiserror", + "time", + "tracing-subscriber", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "futures", + "futures-task", + "pin-project", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-opentelemetry" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75327c6b667828ddc28f5e3f169036cb793c3f588d83bf0f262a7f062ffed3c8" +dependencies = [ + "once_cell", + "opentelemetry 0.20.0", + "opentelemetry_sdk", + "smallvec", + "tracing", + "tracing-core", + "tracing-log 0.1.4", + "tracing-subscriber", +] + +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "serde", + "serde_json", + "sharded-slab", + "smallvec", + "thread_local", + "time", + "tracing", + "tracing-core", + "tracing-log 0.2.0", + "tracing-serde", +] + +[[package]] +name = "trait-set" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b79e2e9c9ab44c6d7c20d5976961b47e8f49ac199154daa514b77cd1ab536625" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "treeline" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" + +[[package]] +name = "triomphe" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b2cb4fbb9995eeb36ac86fadf24031ccd58f99d6b4b2d7b911db70bddb80d90" + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tui" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccdd26cbd674007e649a272da4475fb666d3aa0ad0531da7136db6fab0e5bad1" +dependencies = [ + "bitflags 1.3.2", + "cassowary", + "crossterm", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.8.5", + "rustls 0.21.12", + "sha1", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "rand 0.8.5", + "static_assertions", +] + +[[package]] +name = "typed-store" +version = "0.4.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "bcs", + "bincode", + "collectable", + "eyre", + "fdlimit", + "hdrhistogram", + "itertools 0.10.5", + "msim", + "once_cell", + "ouroboros", + "prometheus", + "rand 0.8.5", + "rocksdb", + "serde", + "sui-macros", + "tap", + "thiserror", + "tokio", + "tracing", + "typed-store-error", +] + +[[package]] +name = "typed-store-derive" +version = "0.3.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "itertools 0.10.5", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "typed-store-error" +version = "0.4.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unescape" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e" + +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-properties" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291" + +[[package]] +name = "unicode-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + +[[package]] +name = "unicode-width" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" + +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "unsigned-varint" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom 0.2.15", + "serde", +] + +[[package]] +name = "uuid" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" +dependencies = [ + "getrandom 0.2.15", + "rand 0.8.5", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "variant_count" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae2faf80ac463422992abf4de234731279c058aaf33171ca70277c98406b124" +dependencies = [ + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "versions" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee97e1d97bd593fb513912a07691b742361b3dd64ad56f2c694ea2dbfe0665d3" +dependencies = [ + "itertools 0.10.5", + "nom", +] + +[[package]] +name = "vfs" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e4fe92cfc1bad19c19925d5eee4b30584dbbdee4ff10183b261acccbef74e2d" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote 1.0.36", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "wasm-streams" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "webpki-roots" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +dependencies = [ + "webpki", +] + +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + +[[package]] +name = "whoami" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9" +dependencies = [ + "redox_syscall 0.4.1", + "wasite", + "web-sys", +] + +[[package]] +name = "widestring" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "x509-parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +dependencies = [ + "asn1-rs", + "base64 0.13.1", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time", +] + +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "synstructure 0.13.1", +] + +[[package]] +name = "zerocopy" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "synstructure 0.13.1", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "zerovec" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "aes", + "byteorder", + "bzip2", + "constant_time_eq 0.1.5", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac", + "pbkdf2 0.11.0", + "sha1", + "time", + "zstd 0.11.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe 5.0.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +dependencies = [ + "zstd-safe 6.0.6", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-safe" +version = "6.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.10+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/mover/Xeonacid/code/db/sources/framework/Cargo.toml b/mover/Xeonacid/code/db/sources/framework/Cargo.toml new file mode 100644 index 000000000..7812092d6 --- /dev/null +++ b/mover/Xeonacid/code/db/sources/framework/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "framework" +version = "0.1.0" +edition = "2021" +exclude = ["chall/"] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +quote = "1.0.26" +threadpool = "1.8.1" +proc-macro2 = "1.0.66" + +tokio = { version = "1", features = ["full"] } + +move-core-types = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-core-types" } +move-bytecode-source-map = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-bytecode-source-map" } +move-binary-format = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-binary-format" } +move-symbol-pool = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-symbol-pool" } +move-transactional-test-runner = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-transactional-test-runner" } + +sui-types = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "sui-types"} +sui-transactional-test-runner = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "sui-transactional-test-runner"} + +sui-ctf-framework = { git = "https://github.com/otter-sec/sui-ctf-framework", branch = "justctf2024" } diff --git a/mover/Xeonacid/code/db/sources/framework/chall/Move.lock b/mover/Xeonacid/code/db/sources/framework/chall/Move.lock new file mode 100644 index 000000000..c313f90f1 --- /dev/null +++ b/mover/Xeonacid/code/db/sources/framework/chall/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C1FECA3B112600A783F9F421CC2BF9CE00CE66320440DD4E76D8CD5B87B3AD2C" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet-v1.27.0", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet-v1.27.0", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xef05161fe552f24f553a2583bc2c9aa202fc8501dc0a176f49715226e9acb833" +latest-published-id = "0xef05161fe552f24f553a2583bc2c9aa202fc8501dc0a176f49715226e9acb833" +published-version = "1" diff --git a/mover/Xeonacid/code/db/sources/framework/chall/Move.toml b/mover/Xeonacid/code/db/sources/framework/chall/Move.toml new file mode 100644 index 000000000..919e3960d --- /dev/null +++ b/mover/Xeonacid/code/db/sources/framework/chall/Move.toml @@ -0,0 +1,11 @@ +[package] +name = "challenge" +version = "0.0.1" +edition = "2024.beta" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[addresses] +challenge = "0x0" +admin = "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e" diff --git a/mover/Xeonacid/code/db/sources/framework/chall/sources/dark_brotterhood.move b/mover/Xeonacid/code/db/sources/framework/chall/sources/dark_brotterhood.move new file mode 100644 index 000000000..92c50aca0 --- /dev/null +++ b/mover/Xeonacid/code/db/sources/framework/chall/sources/dark_brotterhood.move @@ -0,0 +1,250 @@ +module challenge::Otter { + + // --------------------------------------------------- + // DEPENDENCIES + // --------------------------------------------------- + + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply}; + use sui::url; + use sui::random::{Self, Random}; + use sui::table::{Self, Table}; + + // --------------------------------------------------- + // CONST + // --------------------------------------------------- + + const NEW: u64 = 1; + const WON: u64 = 2; + const FINISHED: u64 = 3; + + const WRONG_AMOUNT: u64 = 1337; + const BETTER_BRING_A_KNIFE_TO_A_GUNFIGHT: u64 = 1338; + const WRONG_STATE: u64 = 1339; + const ALREADY_REGISTERED: u64 = 1340; + const NOT_REGISTERED: u64 = 1341; + const TOO_MUCH_MONSTERS: u64 = 1342; + const NOT_SOLVED: u64 = 1343; + + const QUEST_LIMIT: u64 = 25; + // --------------------------------------------------- + // STRUCTS + // --------------------------------------------------- + + public struct OTTER has drop {} + + public struct OsecSuply has key { + id: UID, + supply: Supply + } + + public struct Vault has key { + id: UID, + cash: Coin + } + + public struct Monster has store { + fight_status: u64, + reward: u8, + power: u8 + } + + public struct QuestBoard has key, store { + id: UID, + quests: vector, + players: Table + } + + public struct Flag has key, store { + id: UID, + user: address, + flag: bool + } + + public struct Player has key, store { + id: UID, + user: address, + coins: Coin, + power: u8 + } + + // --------------------------------------------------- + // MINT CASH + // --------------------------------------------------- + + fun init(witness: OTTER, ctx: &mut TxContext) { + let (mut treasury, metadata) = coin::create_currency( + witness, 9, b"OSEC", b"Osec", b"Otter ca$h", option::some(url::new_unsafe_from_bytes(b"https://osec.io/")), ctx + ); + transfer::public_freeze_object(metadata); + + let pool_liquidity = coin::mint(&mut treasury, 50000, ctx); + + let vault = Vault { + id: object::new(ctx), + cash: pool_liquidity + }; + + let supply = coin::treasury_into_supply(treasury); + + let osec_supply = OsecSuply { + id: object::new(ctx), + supply + }; + + transfer::transfer(osec_supply, tx_context::sender(ctx)); + + transfer::share_object(QuestBoard { + id: object::new(ctx), + quests: vector::empty(), + players: table::new(ctx) + }); + + transfer::share_object(vault); + } + + public fun mint(sup: &mut OsecSuply, amount: u64, ctx: &mut TxContext): Coin { + let osecBalance = balance::increase_supply(&mut sup.supply, amount); + coin::from_balance(osecBalance, ctx) + } + + public entry fun mint_to(sup: &mut OsecSuply, amount: u64, to: address, ctx: &mut TxContext) { + let osec = mint(sup, amount, ctx); + transfer::public_transfer(osec, to); + } + + public fun burn(sup: &mut OsecSuply, c: Coin): u64 { + balance::decrease_supply(&mut sup.supply, coin::into_balance(c)) + } + + // --------------------------------------------------- + // REGISTER + // --------------------------------------------------- + + public fun register(sup: &mut OsecSuply, board: &mut QuestBoard, player: address, ctx: &mut TxContext) { + assert!(!table::contains(&board.players, player), ALREADY_REGISTERED); + + table::add(&mut board.players, player, false); + + transfer::transfer(Player { + id: object::new(ctx), + user: tx_context::sender(ctx), + coins: mint(sup, 137, ctx), + power: 10 + }, player); + } + + // --------------------------------------------------- + // SHOP + // --------------------------------------------------- + + #[allow(lint(self_transfer))] + public fun buy_flag(vault: &mut Vault, player: &mut Player, ctx: &mut TxContext): Flag { + assert!(coin::value(&player.coins) >= 1337, WRONG_AMOUNT); + + let coins = coin::split(&mut player.coins, 1337, ctx); + coin::join(&mut vault.cash, coins); + + Flag { + id: object::new(ctx), + user: tx_context::sender(ctx), + flag: true + } + } + + public fun buy_sword(vault: &mut Vault, player: &mut Player, ctx: &mut TxContext) { + assert!(coin::value(&player.coins) >= 137, WRONG_AMOUNT); + + let coins = coin::split(&mut player.coins, 137, ctx); + coin::join(&mut vault.cash, coins); + + player.power = player.power + 100; + } + + // --------------------------------------------------- + // ADVENTURE TIME + // --------------------------------------------------- + + #[allow(lint(public_random))] + public fun find_a_monster(board: &mut QuestBoard, r: &Random, ctx: &mut TxContext) { + assert!(vector::length(&board.quests) <= QUEST_LIMIT, TOO_MUCH_MONSTERS); + + let mut generator = random::new_generator(r, ctx); + + let quest = Monster { + fight_status: NEW, + reward: random::generate_u8_in_range(&mut generator, 13, 37), + power: random::generate_u8_in_range(&mut generator, 13, 73) + }; + + vector::push_back(&mut board.quests, quest); + + } + + public fun fight_monster(board: &mut QuestBoard, player: &mut Player, quest_id: u64) { + let quest = vector::borrow_mut(&mut board.quests, quest_id); + assert!(quest.fight_status == NEW, WRONG_STATE); + assert!(player.power > quest.power, BETTER_BRING_A_KNIFE_TO_A_GUNFIGHT); + + player.power = 10; // sword breaks after fighting the monster :c + + quest.fight_status = WON; + } + + public fun return_home(board: &mut QuestBoard, quest_id: u64) { + let quest_to_finish = vector::borrow_mut(&mut board.quests, quest_id); + assert!(quest_to_finish.fight_status == WON, WRONG_STATE); + + quest_to_finish.fight_status = FINISHED; + } + + #[allow(lint(self_transfer))] + public fun get_the_reward( + vault: &mut Vault, + board: &mut QuestBoard, + player: &mut Player, + quest_id: u64, + ctx: &mut TxContext, + ) { + let quest_to_claim = vector::borrow_mut(&mut board.quests, quest_id); + assert!(quest_to_claim.fight_status == FINISHED, WRONG_STATE); + + let monster = vector::pop_back(&mut board.quests); + + let Monster { + fight_status: _, + reward: reward, + power: _ + } = monster; + + let coins = coin::split(&mut vault.cash, (reward as u64), ctx); + coin::join(&mut player.coins, coins); + } + + // --------------------------------------------------- + // PROVE SOLUTION + // --------------------------------------------------- + + public fun prove(board: &mut QuestBoard, flag: Flag) { + let Flag { + id, + user, + flag + } = flag; + + object::delete(id); + + assert!(table::contains(&board.players, user), NOT_REGISTERED); + assert!(flag, NOT_SOLVED); + *table::borrow_mut(&mut board.players, user) = true; + } + + // --------------------------------------------------- + // CHECK WINNER + // --------------------------------------------------- + + public fun check_winner(board: &QuestBoard, player: address) { + assert!(*table::borrow(&board.players, player) == true, NOT_SOLVED); + } + +} diff --git a/mover/Xeonacid/code/db/sources/framework/run.sh b/mover/Xeonacid/code/db/sources/framework/run.sh new file mode 100755 index 000000000..a62fa9ce3 --- /dev/null +++ b/mover/Xeonacid/code/db/sources/framework/run.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +sed -i \ + -E 's/(host[[:space:]]+all[[:space:]]+all[[:space:]]+127.0.0.1\/32[[:space:]]+)scram-sha-256/\1trust/' \ + /etc/postgresql/16/main/pg_hba.conf + +sed -i \ + -E 's/(host[[:space:]]+all[[:space:]]+all[[:space:]]+::1\/128[[:space:]]+)scram-sha-256/\1trust/' \ + /etc/postgresql/16/main/pg_hba.conf + +/etc/init.d/postgresql restart + +sudo -u postgres psql postgres -c "ALTER ROLE postgres WITH SUPERUSER LOGIN PASSWORD 'postgrespw';" +sudo -u postgres psql postgres -c "CREATE DATABASE sui_indexer_v2;" -c "ALTER SYSTEM SET max_connections = 500;" + +cargo r --release diff --git a/mover/Xeonacid/code/db/sources/framework/rust-toolchain.toml b/mover/Xeonacid/code/db/sources/framework/rust-toolchain.toml new file mode 100644 index 000000000..83a52c383 --- /dev/null +++ b/mover/Xeonacid/code/db/sources/framework/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.76" diff --git a/mover/Xeonacid/code/db/sources/framework/src/main.rs b/mover/Xeonacid/code/db/sources/framework/src/main.rs new file mode 100644 index 000000000..fac9a1c72 --- /dev/null +++ b/mover/Xeonacid/code/db/sources/framework/src/main.rs @@ -0,0 +1,302 @@ +use std::env; +use std::error::Error; +use std::fmt; +use std::io::{Read, Write}; +use std::mem::drop; +use std::net::{TcpListener, TcpStream}; +use std::path::Path; + +use tokio; + +use move_transactional_test_runner::framework::{MaybeNamedCompiledModule, MoveTestAdapter}; +use move_bytecode_source_map::{source_map::SourceMap, utils::source_map_from_file}; +use move_binary_format::file_format::CompiledModule; +use move_symbol_pool::Symbol; +use move_core_types::{ + u256::U256, + account_address::AccountAddress, + language_storage::TypeTag, + runtime_value::MoveValue +}; +use sui_types::base_types::SuiAddress; + +use sui_ctf_framework::NumericalAddress; +use sui_transactional_test_runner::{args::SuiValue, test_adapter::FakeID}; + +async fn handle_client(mut stream: TcpStream) -> Result<(), Box> { + + // Initialize SuiTestAdapter + let modules = vec!["Otter"]; + let mut deployed_modules: Vec = Vec::new(); + + let named_addresses = vec![ + ( + "challenge".to_string(), + NumericalAddress::parse_str( + "0x0", + )?, + ), + ( + "solve".to_string(), + NumericalAddress::parse_str( + "0x0", + )?, + ), + ( + "admin".to_string(), + NumericalAddress::parse_str( + "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e", + )?, + ), + ]; + + let mut adapter = sui_ctf_framework::initialize( + named_addresses, + Some(vec!["challenger".to_string(), "solver".to_string()]), + ).await; + + // Check Admin Account + let object_output1 = sui_ctf_framework::view_object(&mut adapter, FakeID::Enumerated(0, 0)).await; + println!("Object Output: {:#?}", object_output1); + + let mut mncp_modules : Vec = Vec::new(); + + for i in 0..modules.len() { + + let module = &modules[i]; + + let mod_path = format!("./chall/build/challenge/bytecode_modules/{}.mv", module); + let src_path = format!("./chall/build/challenge/source_maps/{}.mvsm", module); + let mod_bytes: Vec = std::fs::read(mod_path)?; + + let module: CompiledModule = match CompiledModule::deserialize_with_defaults(&mod_bytes) { + Ok(data) => data, + Err(e) => { + return Err(Box::new(e)) + } + }; + let named_addr_opt: Option = Some(Symbol::from("challenge")); + let source_map: Option = match source_map_from_file(Path::new(&src_path)) { + Ok(data) => Some(data), + Err(e) => { + let _ = adapter.cleanup_resources().await; + println!("error: {:?}, src_path: {}", e, src_path); + return Err("error when generating source map".into()) + } + }; + + let maybe_ncm = MaybeNamedCompiledModule { + named_address: named_addr_opt, + module, + source_map, + }; + + mncp_modules.push( maybe_ncm ); + } + + // Publish Challenge Module + let chall_dependencies: Vec = Vec::new(); + let chall_addr = sui_ctf_framework::publish_compiled_module( + &mut adapter, + mncp_modules, + chall_dependencies, + Some(String::from("challenger")), + ).await; + deployed_modules.push(chall_addr); + println!("[SERVER] Module published at: {:?}", chall_addr); + + let mut solution_data = [0 as u8; 2000]; + let _solution_size = stream.read(&mut solution_data)?; + + // Send Challenge Address + let mut output = String::new(); + fmt::write( + &mut output, + format_args!( + "[SERVER] Challenge modules published at: {}", + chall_addr.to_string().as_str(), + ), + ) + .unwrap(); + stream.write(output.as_bytes()).unwrap(); + + // Publish Solution Module + let mut sol_dependencies: Vec = Vec::new(); + sol_dependencies.push(String::from("challenge")); + + let mut mncp_solution : Vec = Vec::new(); + let module: CompiledModule = match CompiledModule::deserialize_with_defaults(&solution_data.to_vec()) { + Ok(data) => data, + Err(e) => { + let _ = adapter.cleanup_resources().await; + return Err(Box::new(e)) + } + }; + let named_addr_opt: Option = Some(Symbol::from("solve")); + let source_map : Option = None; + + let maybe_ncm = MaybeNamedCompiledModule { + named_address: named_addr_opt, + module, + source_map, + }; + mncp_solution.push( maybe_ncm ); + + let sol_addr = sui_ctf_framework::publish_compiled_module( + &mut adapter, + mncp_solution, + sol_dependencies, + Some(String::from("solver")), + ).await; + println!("[SERVER] Solution published at: {:?}", sol_addr); + + // Send Solution Address + output = String::new(); + fmt::write( + &mut output, + format_args!( + "[SERVER] Solution published at {}", + sol_addr.to_string().as_str() + ), + ) + .unwrap(); + stream.write(output.as_bytes()).unwrap(); + + // Prepare Function Call Arguments + let mut args_reg: Vec = Vec::new(); + let supply = SuiValue::Object(FakeID::Enumerated(2, 1), None); + let questboard = SuiValue::Object(FakeID::Enumerated(2, 2), None); + let player_addr = SuiValue::MoveValue(MoveValue::Address(adapter.compiled_state().resolve_named_address("solver"))); + args_reg.push(supply.clone()); + args_reg.push(questboard.clone()); + args_reg.push(player_addr.clone()); + + let type_args: Vec = Vec::new(); + + // Call Add Liquidity Function + let ret_val = match sui_ctf_framework::call_function( + &mut adapter, + chall_addr, + "Otter", + "register", + args_reg, + type_args, + Some("challenger".to_string()), + ).await { + Ok(output) => output, + Err(e) => { + let _ = adapter.cleanup_resources().await; + println!("[SERVER] error: {e}"); + return Err("error during call to Otter::register".into()) + } + }; + println!("[SERVER] Return value {:#?}", ret_val); + println!(""); + + // Prepare Function Call Arguments + let mut u256_bytes = U256::from(8_u64).to_le_bytes().to_vec(); + u256_bytes.reverse(); + let address: SuiAddress = SuiAddress::from_bytes(&u256_bytes).unwrap(); + let random = SuiValue::ImmShared(FakeID::Known(address.into()), None); + let mut args_solve: Vec = Vec::new(); + let player = SuiValue::Object(FakeID::Enumerated(4, 0), None); + let vault = SuiValue::Object(FakeID::Enumerated(2, 3), None); + args_solve.push(vault.clone()); + args_solve.push(questboard.clone()); + args_solve.push(player.clone()); + args_solve.push(random.clone()); + + let type_args_solve: Vec = Vec::new(); + + // Call solve Function + let ret_val = match sui_ctf_framework::call_function( + &mut adapter, + sol_addr, + "solve", + "solve", + args_solve, + type_args_solve, + Some("solver".to_string()), + ).await { + Ok(output) => output, + Err(e) => { + let _ = adapter.cleanup_resources().await; + println!("[SERVER] error: {e}"); + return Err("error during call to solve::solve".into()) + } + }; + println!("[SERVER] Return value {:#?}", ret_val); + println!(""); + + // Check Solution + let mut args_check: Vec = Vec::new(); + args_check.push(questboard.clone()); + args_check.push(player_addr.clone()); + + let type_args_check: Vec = Vec::new(); + + let sol_ret = sui_ctf_framework::call_function( + &mut adapter, + chall_addr, + "Otter", + "check_winner", + args_check, + type_args_check, + Some("solver".to_string()), + ).await; + println!("[SERVER] Return value {:#?}", sol_ret); + println!(""); + + // Validate Solution + match sol_ret { + Ok(_) => { + println!("[SERVER] Correct Solution!"); + println!(""); + if let Ok(flag) = env::var("FLAG") { + let message = format!("[SERVER] Congrats, flag: {}", flag); + stream.write(message.as_bytes()).unwrap(); + } else { + stream.write("[SERVER] Flag not found, please contact admin".as_bytes()).unwrap(); + } + } + Err(_) => { + println!("[SERVER] Invalid Solution!"); + println!(""); + stream.write("[SERVER] Invalid Solution!".as_bytes()).unwrap(); + } + }; + + let _ = adapter.cleanup_resources().await; + Ok(()) +} + +#[tokio::main] +async fn main() -> Result<(), Box> { + // Create Socket - Port 31337 + let listener = TcpListener::bind("0.0.0.0:31337")?; + println!("[SERVER] Starting server at port 31337!"); + + let local = tokio::task::LocalSet::new(); + + // Wait For Incoming Solution + for stream in listener.incoming() { + match stream { + Ok(stream) => { + println!("[SERVER] New connection: {}", stream.peer_addr()?); + let result = local.run_until( async move { + tokio::task::spawn_local( async { + handle_client(stream).await + }).await + }).await; + println!("[SERVER] Result: {:?}", result); + } + Err(e) => { + println!("[SERVER] Error: {}", e); + } + } + } + + // Close Socket Server + drop(listener); + Ok(()) +} diff --git a/mover/Xeonacid/code/db/sources/run_client.sh b/mover/Xeonacid/code/db/sources/run_client.sh new file mode 100755 index 000000000..1f78679ba --- /dev/null +++ b/mover/Xeonacid/code/db/sources/run_client.sh @@ -0,0 +1,5 @@ +set -eux + +cd framework-solve/solve && sui move build +cd .. +cargo r --release diff --git a/mover/Xeonacid/code/db/sources/run_server.sh b/mover/Xeonacid/code/db/sources/run_server.sh new file mode 100755 index 000000000..d0f9be966 --- /dev/null +++ b/mover/Xeonacid/code/db/sources/run_server.sh @@ -0,0 +1,5 @@ +set -eux + +cd framework/chall && sui move build +cd .. +cargo r --release diff --git a/mover/Xeonacid/code/readme.md b/mover/Xeonacid/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Xeonacid/code/tos/.dockerignore b/mover/Xeonacid/code/tos/.dockerignore new file mode 100644 index 000000000..ec21d0f47 --- /dev/null +++ b/mover/Xeonacid/code/tos/.dockerignore @@ -0,0 +1,2 @@ +**/target +**/build diff --git a/mover/Xeonacid/code/tos/Dockerfile b/mover/Xeonacid/code/tos/Dockerfile new file mode 100644 index 000000000..de77cf555 --- /dev/null +++ b/mover/Xeonacid/code/tos/Dockerfile @@ -0,0 +1,16 @@ +FROM embe221ed/otter_template:latest + +ADD ./sources/framework/chall /work/framework/chall +ADD ./sources/framework/src/main.rs /work/framework/src/ + +# build the challenge contracts +WORKDIR /work/framework/chall +RUN sui move build + +WORKDIR /work/framework + +# build the framework +RUN touch src/main.rs +RUN cargo build --locked --release + +CMD ./run.sh diff --git a/mover/Xeonacid/code/tos/docker-compose.yml b/mover/Xeonacid/code/tos/docker-compose.yml new file mode 100644 index 000000000..0d3ef59b5 --- /dev/null +++ b/mover/Xeonacid/code/tos/docker-compose.yml @@ -0,0 +1,11 @@ +services: + tos: + environment: + FLAG: justCTF{REDACTED} + PORT: 31337 + build: + context: ./ + dockerfile: ./Dockerfile + ports: + - "31337:31337" + restart: always diff --git a/mover/Xeonacid/code/tos/sources/framework-solve/Cargo.lock b/mover/Xeonacid/code/tos/sources/framework-solve/Cargo.lock new file mode 100644 index 000000000..d8b563e5e --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/framework-solve/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "solve-framework" +version = "0.1.0" diff --git a/mover/Xeonacid/code/tos/sources/framework-solve/Cargo.toml b/mover/Xeonacid/code/tos/sources/framework-solve/Cargo.toml new file mode 100644 index 000000000..9fc89b2dd --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/framework-solve/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "solve-framework" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/mover/Xeonacid/code/tos/sources/framework-solve/dependency/Move.toml b/mover/Xeonacid/code/tos/sources/framework-solve/dependency/Move.toml new file mode 100644 index 000000000..e32f4b879 --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/framework-solve/dependency/Move.toml @@ -0,0 +1,11 @@ +[package] +name = "challenge" +version = "0.0.1" +edition = "2024.beta" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[addresses] +admin = "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e" +challenge = "0x542fe29e11d10314d3330e060c64f8fb9cd341981279432b03b2bd51cf5d489b" diff --git a/mover/Xeonacid/code/tos/sources/framework-solve/dependency/sources/the_otter_scrolls.move b/mover/Xeonacid/code/tos/sources/framework-solve/dependency/sources/the_otter_scrolls.move new file mode 100644 index 000000000..79822618a --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/framework-solve/dependency/sources/the_otter_scrolls.move @@ -0,0 +1,127 @@ +module challenge::theotterscrolls { + + // --------------------------------------------------- + // DEPENDENCIES + // --------------------------------------------------- + + use sui::table::{Self, Table}; + use std::string::{Self, String}; + use std::debug; + + // --------------------------------------------------- + // STRUCTS + // --------------------------------------------------- + + public struct Spellbook has key { + id: UID, + casted: bool, + spells: Table> + } + + // --------------------------------------------------- + // FUNCTIONS + // --------------------------------------------------- + + //The spell consists of five magic words, which have to be read in the correct order! + + fun init(ctx: &mut TxContext) { + + let mut all_words = table::new(ctx); + + let fire = vector[ + string::utf8(b"Blast"), + string::utf8(b"Inferno"), + string::utf8(b"Pyre"), + string::utf8(b"Fenix"), + string::utf8(b"Ember") + ]; + + let wind = vector[ + string::utf8(b"Zephyr"), + string::utf8(b"Swirl"), + string::utf8(b"Breeze"), + string::utf8(b"Gust"), + string::utf8(b"Sigil") + ]; + + let water = vector[ + string::utf8(b"Aquarius"), + string::utf8(b"Mistwalker"), + string::utf8(b"Waves"), + string::utf8(b"Call"), + string::utf8(b"Storm") + ]; + + let earth = vector[ + string::utf8(b"Tremor"), + string::utf8(b"Stoneheart"), + string::utf8(b"Grip"), + string::utf8(b"Granite"), + string::utf8(b"Mudslide") + ]; + + let power = vector[ + string::utf8(b"Alakazam"), + string::utf8(b"Hocus"), + string::utf8(b"Pocus"), + string::utf8(b"Wazzup"), + string::utf8(b"Wrath") + ]; + + table::add(&mut all_words, 0, fire); + table::add(&mut all_words, 1, wind); + table::add(&mut all_words, 2, water); + table::add(&mut all_words, 3, earth); + table::add(&mut all_words, 4, power); + + let spellbook = Spellbook { + id: object::new(ctx), + casted: false, + spells: all_words + }; + + transfer::share_object(spellbook); + } + + public fun cast_spell(spell_sequence: vector, book: &mut Spellbook) { + + let fire = table::remove(&mut book.spells, 0); + let wind = table::remove(&mut book.spells, 1); + let water = table::remove(&mut book.spells, 2); + let earth = table::remove(&mut book.spells, 3); + let power = table::remove(&mut book.spells, 4); + + let fire_word_id = *vector::borrow(&spell_sequence, 0); + let wind_word_id = *vector::borrow(&spell_sequence, 1); + let water_word_id = *vector::borrow(&spell_sequence, 2); + let earth_word_id = *vector::borrow(&spell_sequence, 3); + let power_word_id = *vector::borrow(&spell_sequence, 4); + + let fire_word = vector::borrow(&fire, fire_word_id); + let wind_word = vector::borrow(&wind, wind_word_id); + let water_word = vector::borrow(&water, water_word_id); + let earth_word = vector::borrow(&earth, earth_word_id); + let power_word = vector::borrow(&power, power_word_id); + + if (fire_word == string::utf8(b"Inferno")) { + if (wind_word == string::utf8(b"Zephyr")) { + if (water_word == string::utf8(b"Call")) { + if (earth_word == string::utf8(b"Granite")) { + if (power_word == string::utf8(b"Wazzup")) { + book.casted = true; + } + } + } + } + } + + } + + public fun check_if_spell_casted(book: &Spellbook): bool { + let casted = book.casted; + assert!(casted == true, 1337); + casted + } + +} + diff --git a/mover/Xeonacid/code/tos/sources/framework-solve/solve/Move.lock b/mover/Xeonacid/code/tos/sources/framework-solve/solve/Move.lock new file mode 100644 index 000000000..1155d02a0 --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/framework-solve/solve/Move.lock @@ -0,0 +1,35 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C1C769E1590ECAC605B85346BAF2BF5B22DC430C53C041491F155F033B979257" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "challenge" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet-v1.27.0", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet-v1.27.0", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "challenge" +source = { local = "../dependency" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.alpha" +flavor = "sui" diff --git a/mover/Xeonacid/code/tos/sources/framework-solve/solve/Move.toml b/mover/Xeonacid/code/tos/sources/framework-solve/solve/Move.toml new file mode 100644 index 000000000..506465652 --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/framework-solve/solve/Move.toml @@ -0,0 +1,14 @@ +[package] +name = "solve" +version = "0.0.1" +edition = "2024.alpha" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[dependencies.challenge] +version = '1.0.0' +local = '../dependency' + +[addresses] +solve = "0x0" diff --git a/mover/Xeonacid/code/tos/sources/framework-solve/solve/sources/solve.move b/mover/Xeonacid/code/tos/sources/framework-solve/solve/sources/solve.move new file mode 100644 index 000000000..7883a14d3 --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/framework-solve/solve/sources/solve.move @@ -0,0 +1,14 @@ +module solve::solve { + + // [*] Import dependencies + use challenge::theotterscrolls; + + public fun solve( + _spellbook: &mut theotterscrolls::Spellbook, + _ctx: &mut TxContext + ) { + let spell_sequence = vector[1, 0, 3, 3, 3]; + challenge::theotterscrolls::cast_spell(spell_sequence, _spellbook); + } + +} diff --git a/mover/Xeonacid/code/tos/sources/framework-solve/src/main.rs b/mover/Xeonacid/code/tos/sources/framework-solve/src/main.rs new file mode 100644 index 000000000..b887217f8 --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/framework-solve/src/main.rs @@ -0,0 +1,59 @@ +use std::net::TcpStream; +use std::io::{Read, Write}; +use std::str::from_utf8; +use std::{error::Error, fs}; +use std::env; + +fn main() -> Result<(), Box> { + + let host = env::var("HOST").unwrap_or_else(|_| "127.0.0.1".to_string()); // replace with remote ip + let port = env::var("PORT").unwrap_or_else(|_| "31337".to_string()); + + match TcpStream::connect(format!("{}:{}", host, port)) { + Ok(mut stream) => { + println!(" - Connected!"); + + let mod_data : Vec = fs::read("./solve/build/solve/bytecode_modules/solve.mv").unwrap(); + println!(" - Loaded solution!"); + + stream.write_all(&mod_data)?; + stream.flush()?; + println!(" - Sent solution!"); + + let mut return_data1 = [0 as u8; 200]; + match stream.read(&mut return_data1) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&return_data1).unwrap()); // Get module address + let mut return_data2 = [0 as u8; 200]; + match stream.read(&mut return_data2) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&return_data2).unwrap()); // Get module address + let mut flag = [0 as u8; 200]; + match stream.read(&mut flag) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&flag).unwrap()); // Get flag + + }, + Err(e) => { + println!(" - Failed to receive data: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to receive data: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to connect: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to connect: {}", e); + } + } + println!(" - Terminated."); + + Ok(()) +} diff --git a/mover/Xeonacid/code/tos/sources/framework/Cargo.lock b/mover/Xeonacid/code/tos/sources/framework/Cargo.lock new file mode 100644 index 000000000..f720c1806 --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/framework/Cargo.lock @@ -0,0 +1,12692 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "addchain" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" +dependencies = [ + "num-bigint 0.3.3", + "num-integer", + "num-traits", +] + +[[package]] +name = "addr2line" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom 0.2.15", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "aliasable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anemo" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" +dependencies = [ + "anyhow", + "async-trait", + "bincode", + "bytes", + "ed25519", + "futures", + "hex", + "http", + "matchit 0.5.0", + "pin-project-lite", + "pkcs8 0.9.0", + "quinn", + "quinn-proto", + "rand 0.8.5", + "rcgen", + "ring 0.16.20", + "rustls 0.21.12", + "rustls-webpki", + "serde", + "serde_json", + "socket2 0.5.7", + "tap", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "tower", + "tracing", + "x509-parser", +] + +[[package]] +name = "anemo-build" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" +dependencies = [ + "prettyplease 0.1.25", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "anemo-tower" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" +dependencies = [ + "anemo", + "bytes", + "dashmap", + "futures", + "governor", + "nonzero_ext", + "pin-project-lite", + "tokio", + "tower", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "anstream" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" + +[[package]] +name = "anstyle-parse" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +dependencies = [ + "backtrace", +] + +[[package]] +name = "arc-swap" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" +dependencies = [ + "serde", +] + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-crypto-primitives" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-snark", + "ark-std", + "blake2", + "derivative", + "digest 0.10.7", + "sha2 0.10.8", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.5", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.5", + "num-traits", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "ark-groth16" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" +dependencies = [ + "ark-crypto-primitives", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-relations", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-relations" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" +dependencies = [ + "ark-ff", + "ark-std", + "tracing", +] + +[[package]] +name = "ark-secp256r1" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3975a01b0a6e3eae0f72ec7ca8598a6620fc72fa5981f6f5cca33b7cd788f633" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint 0.4.5", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "ark-snark" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" +dependencies = [ + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "ascii_utils" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71938f30533e4d95a6d17aa530939da3842c2ab6f4f84b9dae68447e4129f74a" + +[[package]] +name = "asn1-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "async-compression" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "async-graphql" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298a5d587d6e6fdb271bf56af2dc325a80eb291fd0fc979146584b9a05494a8c" +dependencies = [ + "async-graphql-derive", + "async-graphql-parser", + "async-graphql-value", + "async-stream", + "async-trait", + "base64 0.13.1", + "bytes", + "chrono", + "fast_chemail", + "fnv", + "futures-channel", + "futures-timer", + "futures-util", + "handlebars", + "http", + "indexmap 2.2.6", + "lru 0.7.8", + "mime", + "multer", + "num-traits", + "once_cell", + "opentelemetry 0.21.0", + "pin-project-lite", + "regex", + "serde", + "serde_json", + "serde_urlencoded", + "static_assertions", + "tempfile", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "async-graphql-axum" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a1c20a2059bffbc95130715b23435a05168c518fba9709c81fa2a38eed990c" +dependencies = [ + "async-graphql", + "async-trait", + "axum", + "bytes", + "futures-util", + "serde_json", + "tokio", + "tokio-stream", + "tokio-util 0.7.11", + "tower-service", +] + +[[package]] +name = "async-graphql-derive" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f329c7eb9b646a72f70c9c4b516c70867d356ec46cb00dcac8ad343fd006b0" +dependencies = [ + "Inflector", + "async-graphql-parser", + "darling 0.20.9", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "strum 0.25.0", + "syn 2.0.66", + "thiserror", +] + +[[package]] +name = "async-graphql-parser" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6139181845757fd6a73fbb8839f3d036d7150b798db0e9bb3c6e83cdd65bd53b" +dependencies = [ + "async-graphql-value", + "pest", + "serde", + "serde_json", +] + +[[package]] +name = "async-graphql-value" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "323a5143f5bdd2030f45e3f2e0c821c9b1d36e79cf382129c64299c50a7f3750" +dependencies = [ + "bytes", + "indexmap 2.2.6", + "serde", + "serde_json", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "async-task" +version = "4.3.0" +source = "git+https://github.com/mystenmark/async-task?rev=4e45b26e11126b191701b9b2ce5e2346b8d7682f#4e45b26e11126b191701b9b2ce5e2346b8d7682f" + +[[package]] +name = "async-trait" +version = "0.1.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version", +] + +[[package]] +name = "async_once" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ce4f10ea3abcd6617873bae9f91d1c5332b4a778bd9ce34d0cd517474c1de82" + +[[package]] +name = "atomic_float" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62af46d040ba9df09edc6528dae9d8e49f5f3e82f55b7d2ec31a733c38dbc49d" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "auto_ops" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7460f7dd8e100147b82a63afca1a20eb6c231ee36b90ba7272e14951cb58af59" + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "autotools" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef941527c41b0fc0dd48511a8154cd5fc7e29200a0ff8b7203c5d777dbc795cf" +dependencies = [ + "cc", +] + +[[package]] +name = "axum" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core", + "base64 0.21.7", + "bitflags 1.3.2", + "bytes", + "futures-util", + "headers", + "http", + "http-body", + "hyper", + "itoa", + "matchit 0.7.3", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sha1", + "sync_wrapper", + "tokio", + "tokio-tungstenite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-server" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "447f28c85900215cc1bea282f32d4a2f22d55c5a300afdfbc661c8d6a632e063" +dependencies = [ + "arc-swap", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile", + "tokio", + "tokio-rustls 0.24.1", + "tower-service", +] + +[[package]] +name = "backoff" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +dependencies = [ + "futures-core", + "getrandom 0.2.15", + "instant", + "pin-project-lite", + "rand 0.8.5", + "tokio", +] + +[[package]] +name = "backtrace" +version = "0.3.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64-url" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb9fb9fb058cc3063b5fc88d9a21eefa2735871498a04e1650da76ed511c8569" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bcs" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" +dependencies = [ + "serde", +] + +[[package]] +name = "bellpepper" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae286c2cb403324ab644c7cc68dceb25fe52ca9429908a726d7ed272c1edf7b" +dependencies = [ + "bellpepper-core", + "byteorder", + "ff 0.13.0", +] + +[[package]] +name = "bellpepper-core" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d8abb418570756396d722841b19edfec21d4e89e1cf8990610663040ecb1aea" +dependencies = [ + "blake2s_simd", + "byteorder", + "ff 0.13.0", + "serde", + "thiserror", +] + +[[package]] +name = "better_any" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b359aebd937c17c725e19efcb661200883f04c49c53e7132224dac26da39d4a0" +dependencies = [ + "better_typeid_derive", +] + +[[package]] +name = "better_typeid_derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3deeecb812ca5300b7d3f66f730cc2ebd3511c3d36c691dd79c165d5b19a26e3" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "bimap" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" + +[[package]] +name = "bin-version" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "const-str", + "git-version", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.65.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" +dependencies = [ + "bitflags 1.3.2", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "peeking_take_while", + "prettyplease 0.2.20", + "proc-macro2 1.0.85", + "quote 1.0.36", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.66", +] + +[[package]] +name = "bip32" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b30ed1d6f8437a487a266c8293aeb95b61a23261273e3e02912cdb8b68bf798b" +dependencies = [ + "bs58 0.4.0", + "hmac", + "k256 0.11.6", + "once_cell", + "pbkdf2 0.11.0", + "rand_core 0.6.4", + "ripemd", + "sha2 0.10.8", + "subtle", + "zeroize", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitcoin-private" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57" + +[[package]] +name = "bitcoin_hashes" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d7066118b13d4b20b23645932dfb3a81ce7e29f95726c2036fa33cd7b092501" +dependencies = [ + "bitcoin-private", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + +[[package]] +name = "bitmaps" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" +dependencies = [ + "typenum", +] + +[[package]] +name = "bitvec" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" +dependencies = [ + "funty 1.1.0", + "radium 0.6.2", + "tap", + "wyz 0.2.0", +] + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty 2.0.0", + "radium 0.7.0", + "tap", + "wyz 0.5.1", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "block-padding 0.2.1", + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blst" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62dc83a094a71d43eeadd254b1ec2d24cb6a0bb6cadce00df51f0db594711a32" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff 0.13.0", + "group 0.13.0", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[package]] +name = "bnum" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56953345e39537a3e18bdaeba4cb0c58a78c1f61f361dc0fa7c5c7340ae87c5f" + +[[package]] +name = "brotli" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +dependencies = [ + "sha2 0.9.9", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2 0.10.8", + "tinyvec", +] + +[[package]] +name = "bstr" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "bytecount" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" + +[[package]] +name = "bytemuck" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +dependencies = [ + "serde", +] + +[[package]] +name = "bytes-varint" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54c1820c7c366b9d26c47143e1604454105a59969aade54e4f695d96acc8332f" +dependencies = [ + "bytes", +] + +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "cached" +version = "0.43.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc2fafddf188d13788e7099295a59b99e99b2148ab2195cae454e754cc099925" +dependencies = [ + "async-trait", + "async_once", + "cached_proc_macro", + "cached_proc_macro_types", + "futures", + "hashbrown 0.13.2", + "instant", + "lazy_static", + "once_cell", + "thiserror", + "tokio", +] + +[[package]] +name = "cached_proc_macro" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10ca87c81aaa3a949dbbe2b5e6c2c45dbc94ba4897e45ea31ff9ec5087be3dc" +dependencies = [ + "cached_proc_macro_types", + "darling 0.14.4", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "cached_proc_macro_types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0" + +[[package]] +name = "camino" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cassowary" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.0.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" +dependencies = [ + "jobserver", + "libc", + "once_cell", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-targets 0.52.5", +] + +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" +dependencies = [ + "atty", + "bitflags 1.3.2", + "clap_derive 3.2.25", + "clap_lex 0.2.4", + "indexmap 1.9.3", + "once_cell", + "strsim 0.10.0", + "termcolor", + "textwrap", +] + +[[package]] +name = "clap" +version = "4.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" +dependencies = [ + "clap_builder", + "clap_derive 4.5.5", +] + +[[package]] +name = "clap_builder" +version = "4.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" +dependencies = [ + "anstream", + "anstyle", + "clap_lex 0.7.1", + "strsim 0.11.1", + "terminal_size", +] + +[[package]] +name = "clap_derive" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "clap_derive" +version = "4.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" +dependencies = [ + "heck 0.5.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "clap_lex" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" + +[[package]] +name = "codespan" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3362992a0d9f1dd7c3d0e89e0ab2bb540b7a95fea8cd798090e758fda2899b5e" +dependencies = [ + "codespan-reporting", + "serde", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "serde", + "termcolor", + "unicode-width", +] + +[[package]] +name = "coins-bip32" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +dependencies = [ + "bs58 0.5.1", + "coins-core", + "digest 0.10.7", + "hmac", + "k256 0.13.3", + "serde", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-bip39" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +dependencies = [ + "bitvec 1.0.1", + "coins-bip32", + "hmac", + "once_cell", + "pbkdf2 0.12.2", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-core" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +dependencies = [ + "base64 0.21.7", + "bech32", + "bs58 0.5.1", + "digest 0.10.7", + "generic-array", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2 0.10.8", + "sha3 0.10.8", + "thiserror", +] + +[[package]] +name = "collectable" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08abddbaad209601e53c7dd4308d8c04c06f17bb7df006434e586a22b83be45a" + +[[package]] +name = "colorchoice" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" + +[[package]] +name = "colored" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +dependencies = [ + "lazy_static", + "windows-sys 0.48.0", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "consensus-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto", + "mysten-network", + "rand 0.8.5", + "serde", + "shared-crypto", +] + +[[package]] +name = "consensus-core" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-build", + "anemo-tower", + "anyhow", + "arc-swap", + "async-trait", + "base64 0.21.7", + "bcs", + "bytes", + "cfg-if", + "consensus-config", + "dashmap", + "enum_dispatch", + "fastcrypto", + "futures", + "http", + "hyper", + "hyper-rustls 0.24.2", + "itertools 0.10.5", + "mockall", + "mysten-common", + "mysten-metrics", + "mysten-network", + "nom", + "parking_lot 0.12.3", + "prometheus", + "prost 0.12.6", + "quinn-proto", + "rand 0.8.5", + "rustls 0.21.12", + "serde", + "shared-crypto", + "sui-macros", + "sui-protocol-config", + "sui-tls", + "tap", + "thiserror", + "tokio", + "tokio-rustls 0.24.1", + "tokio-stream", + "tokio-util 0.7.11", + "tonic 0.11.0", + "tonic-build", + "tower", + "tower-http", + "tracing", + "typed-store", +] + +[[package]] +name = "console" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.52.0", +] + +[[package]] +name = "const-hex" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-str" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3618cccc083bb987a415d85c02ca6c9994ea5b44731ec28b9ecf09658655fba9" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + +[[package]] +name = "count-min-sketch" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca319fe30d7b68949da20d78b612215708af87157d49665a4545dadcc20fecc7" +dependencies = [ + "rand 0.8.5", + "siphasher", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap 4.5.7", + "criterion-plot", + "futures", + "is-terminal", + "itertools 0.10.5", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "tokio", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools 0.10.5", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crossterm" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" +dependencies = [ + "bitflags 1.3.2", + "crossterm_winapi", + "libc", + "mio", + "parking_lot 0.12.3", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "csv" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" +dependencies = [ + "memchr", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.6.4", + "subtle-ng", + "zeroize", +] + +[[package]] +name = "darling" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core 0.14.4", + "darling_macro 0.14.4", +] + +[[package]] +name = "darling" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" +dependencies = [ + "darling_core 0.20.9", + "darling_macro 0.20.9", +] + +[[package]] +name = "darling_core" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.85", + "quote 1.0.36", + "strsim 0.10.0", + "syn 1.0.109", +] + +[[package]] +name = "darling_core" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.85", + "quote 1.0.36", + "strsim 0.11.1", + "syn 2.0.66", +] + +[[package]] +name = "darling_macro" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +dependencies = [ + "darling_core 0.14.4", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" +dependencies = [ + "darling_core 0.20.9", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + +[[package]] +name = "data-encoding-macro" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" +dependencies = [ + "data-encoding", + "syn 1.0.109", +] + +[[package]] +name = "deadpool" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "421fe0f90f2ab22016f32a9881be5134fdd71c65298917084b0c7477cbc3856e" +dependencies = [ + "async-trait", + "deadpool-runtime", + "num_cpus", + "retain_mut", + "tokio", +] + +[[package]] +name = "deadpool-runtime" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "092966b41edc516079bdf31ec78a2e0588d1d0c08f78b91d8307215928642b2b" + +[[package]] +name = "der" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +dependencies = [ + "const-oid", + "pem-rfc7468 0.6.0", + "zeroize", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "pem-rfc7468 0.7.0", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint 0.4.5", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "derive-syn-parse" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" +dependencies = [ + "darling 0.14.4", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder_macro" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" +dependencies = [ + "derive_builder_core", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "diesel" +version = "2.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff236accb9a5069572099f0b350a92e9560e8e63a9b8d546162f4a5e03026bb2" +dependencies = [ + "bitflags 2.5.0", + "byteorder", + "chrono", + "diesel_derives", + "itoa", + "pq-sys", + "r2d2", + "serde_json", +] + +[[package]] +name = "diesel-async" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e7974099f0d9bde0e010dd3a673555276a474f3362a7a52ab535a57b7c5056" +dependencies = [ + "async-trait", + "deadpool", + "diesel", + "futures-util", + "scoped-futures", + "tokio", + "tokio-postgres", +] + +[[package]] +name = "diesel-derive-enum" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81c5131a2895ef64741dad1d483f358c2a229a3a2d1b256778cdc5e146db64d4" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "diesel_derives" +version = "2.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14701062d6bed917b5c7103bdffaee1e4609279e240488ad24e7bd979ca6866c" +dependencies = [ + "diesel_table_macro_syntax", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "diesel_migrations" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6036b3f0120c5961381b570ee20a02432d7e2d27ea60de9578799cf9156914ac" +dependencies = [ + "diesel", + "migrations_internals", + "migrations_macros", +] + +[[package]] +name = "diesel_table_macro_syntax" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5" +dependencies = [ + "syn 2.0.66", +] + +[[package]] +name = "difference" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" + +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + +[[package]] +name = "diffy" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e616e59155c92257e84970156f506287853355f58cd4a6eb167385722c32b790" +dependencies = [ + "nu-ansi-term", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys 0.3.7", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys 0.4.1", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + +[[package]] +name = "downcast" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + +[[package]] +name = "ecdsa" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" +dependencies = [ + "der 0.6.1", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", +] + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der 0.7.9", + "digest 0.10.7", + "elliptic-curve 0.13.8", + "rfc6979 0.4.0", + "signature 2.2.0", + "spki 0.7.3", +] + +[[package]] +name = "ed25519" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +dependencies = [ + "pkcs8 0.9.0", + "signature 1.6.4", + "zeroize", +] + +[[package]] +name = "ed25519-consensus" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" +dependencies = [ + "curve25519-dalek-ng", + "hex", + "rand_core 0.6.4", + "serde", + "sha2 0.9.9", + "thiserror", + "zeroize", +] + +[[package]] +name = "either" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" + +[[package]] +name = "elliptic-curve" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +dependencies = [ + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.1", + "digest 0.10.7", + "ff 0.12.1", + "generic-array", + "group 0.12.1", + "rand_core 0.6.4", + "sec1 0.3.0", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct 0.2.0", + "crypto-bigint 0.5.5", + "digest 0.10.7", + "ff 0.13.0", + "generic-array", + "group 0.13.0", + "pem-rfc7468 0.7.0", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "sec1 0.7.3", + "subtle", + "zeroize", +] + +[[package]] +name = "ena" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +dependencies = [ + "log", +] + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enr" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +dependencies = [ + "base64 0.21.7", + "bytes", + "hex", + "k256 0.13.3", + "log", + "rand 0.8.5", + "rlp", + "serde", + "sha3 0.10.8", + "zeroize", +] + +[[package]] +name = "enum-compat-util" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "serde_yaml", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "erasable" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f11890ce181d47a64e5d1eb4b6caba0e7bae911a356723740d058a5d0340b7d" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "eth-keystore" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" +dependencies = [ + "aes", + "ctr", + "digest 0.10.7", + "hex", + "hmac", + "pbkdf2 0.11.0", + "rand 0.8.5", + "scrypt", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3 0.10.8", + "thiserror", + "uuid 0.8.2", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3 0.10.8", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "primitive-types 0.12.2", + "scale-info", + "uint", +] + +[[package]] +name = "ethers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" +dependencies = [ + "ethers-addressbook", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-middleware", + "ethers-providers", + "ethers-signers", + "ethers-solc", +] + +[[package]] +name = "ethers-addressbook" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" +dependencies = [ + "ethers-core", + "once_cell", + "serde", + "serde_json", +] + +[[package]] +name = "ethers-contract" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" +dependencies = [ + "const-hex", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "futures-util", + "once_cell", + "pin-project", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "ethers-contract-abigen" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" +dependencies = [ + "Inflector", + "const-hex", + "dunce", + "ethers-core", + "ethers-etherscan", + "eyre", + "prettyplease 0.2.20", + "proc-macro2 1.0.85", + "quote 1.0.36", + "regex", + "reqwest", + "serde", + "serde_json", + "syn 2.0.66", + "toml 0.8.14", + "walkdir", +] + +[[package]] +name = "ethers-contract-derive" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" +dependencies = [ + "Inflector", + "const-hex", + "ethers-contract-abigen", + "ethers-core", + "proc-macro2 1.0.85", + "quote 1.0.36", + "serde_json", + "syn 2.0.66", +] + +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" +dependencies = [ + "arrayvec", + "bytes", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve 0.13.8", + "ethabi", + "generic-array", + "k256 0.13.3", + "num_enum 0.7.2", + "once_cell", + "open-fastrlp", + "rand 0.8.5", + "rlp", + "serde", + "serde_json", + "strum 0.26.2", + "syn 2.0.66", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid 0.2.4", +] + +[[package]] +name = "ethers-etherscan" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" +dependencies = [ + "chrono", + "ethers-core", + "reqwest", + "semver", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-middleware" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" +dependencies = [ + "async-trait", + "auto_impl", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-providers", + "ethers-signers", + "futures-channel", + "futures-locks", + "futures-util", + "instant", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", +] + +[[package]] +name = "ethers-providers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.21.7", + "bytes", + "const-hex", + "enr", + "ethers-core", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "http", + "instant", + "jsonwebtoken", + "once_cell", + "pin-project", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-tungstenite", + "tracing", + "tracing-futures", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "ws_stream_wasm", +] + +[[package]] +name = "ethers-signers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" +dependencies = [ + "async-trait", + "coins-bip32", + "coins-bip39", + "const-hex", + "elliptic-curve 0.13.8", + "eth-keystore", + "ethers-core", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-solc" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" +dependencies = [ + "cfg-if", + "const-hex", + "dirs 5.0.1", + "dunce", + "ethers-core", + "glob", + "home", + "md-5", + "num_cpus", + "once_cell", + "path-slash", + "rayon", + "regex", + "semver", + "serde", + "serde_json", + "solang-parser", + "svm-rs", + "thiserror", + "tiny-keccak", + "tokio", + "tracing", + "walkdir", + "yansi", +] + +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fail" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be3c61c59fdc91f5dbc3ea31ee8623122ce80057058be560654c5d410d181a6" +dependencies = [ + "lazy_static", + "log", + "rand 0.7.3", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fast_chemail" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "495a39d30d624c2caabe6312bfead73e7717692b44e0b32df168c275a2e8e9e4" +dependencies = [ + "ascii_utils", +] + +[[package]] +name = "fastcrypto" +version = "0.1.8" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "aes", + "aes-gcm", + "ark-ec", + "ark-ff", + "ark-secp256r1", + "ark-serialize", + "auto_ops", + "base64ct", + "bech32", + "bincode", + "blake2", + "blst", + "bs58 0.4.0", + "cbc", + "ctr", + "curve25519-dalek-ng", + "derive_more", + "digest 0.10.7", + "ecdsa 0.16.9", + "ed25519-consensus", + "elliptic-curve 0.13.8", + "fastcrypto-derive", + "generic-array", + "hex", + "hex-literal", + "hkdf", + "lazy_static", + "num-bigint 0.4.5", + "once_cell", + "p256", + "rand 0.8.5", + "readonly", + "rfc6979 0.4.0", + "rsa", + "schemars", + "secp256k1", + "serde", + "serde_json", + "serde_with 2.3.3", + "sha2 0.10.8", + "sha3 0.10.8", + "signature 2.2.0", + "static_assertions", + "thiserror", + "tokio", + "typenum", + "zeroize", +] + +[[package]] +name = "fastcrypto-derive" +version = "0.1.3" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "fastcrypto-tbls" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "bcs", + "digest 0.10.7", + "fastcrypto", + "hex", + "itertools 0.10.5", + "rand 0.8.5", + "serde", + "sha3 0.10.8", + "tap", + "tracing", + "typenum", +] + +[[package]] +name = "fastcrypto-vdf" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "bcs", + "fastcrypto", + "lazy_static", + "num-bigint 0.4.5", + "num-integer", + "num-prime", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "serde", + "serde_with 2.3.3", +] + +[[package]] +name = "fastcrypto-zkp" +version = "0.1.3" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "ark-bls12-381", + "ark-bn254", + "ark-ec", + "ark-ff", + "ark-groth16", + "ark-relations", + "ark-serialize", + "ark-snark", + "blst", + "byte-slice-cast", + "derive_more", + "fastcrypto", + "ff 0.13.0", + "im", + "itertools 0.12.1", + "lazy_static", + "neptune", + "num-bigint 0.4.5", + "once_cell", + "regex", + "reqwest", + "schemars", + "serde", + "serde_json", + "typenum", +] + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fdlimit" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" +dependencies = [ + "libc", +] + +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "bitvec 1.0.1", + "byteorder", + "ff_derive", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff_derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f54704be45ed286151c5e11531316eaef5b8f5af7d597b806fdb8af108d84a" +dependencies = [ + "addchain", + "cfg-if", + "num-bigint 0.3.3", + "num-integer", + "num-traits", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "filetime" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "windows-sys 0.52.0", +] + +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fragile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" + +[[package]] +name = "framework" +version = "0.1.0" +dependencies = [ + "move-binary-format", + "move-bytecode-source-map", + "move-core-types", + "move-symbol-pool", + "move-transactional-test-runner", + "proc-macro2 1.0.85", + "quote 1.0.36", + "sui-ctf-framework", + "sui-transactional-test-runner", + "sui-types", + "threadpool", + "tokio", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "fsevent-sys" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +dependencies = [ + "libc", +] + +[[package]] +name = "funty" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-locks" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" +dependencies = [ + "futures-channel", + "futures-task", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "serde", + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "ghash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +dependencies = [ + "opaque-debug", + "polyval", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + +[[package]] +name = "git-version" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19" +dependencies = [ + "git-version-macro", +] + +[[package]] +name = "git-version-macro" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "globset" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "governor" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" +dependencies = [ + "cfg-if", + "dashmap", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot 0.12.3", + "portable-atomic", + "quanta", + "rand 0.8.5", + "smallvec", + "spinning_top", +] + +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff 0.12.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", + "rand 0.8.5", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.2.6", + "slab", + "tokio", + "tokio-util 0.7.11", + "tracing", +] + +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "handlebars" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" +dependencies = [ + "log", + "pest", + "pest_derive", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.8", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.11", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash 0.8.11", + "allocator-api2", +] + +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +dependencies = [ + "fxhash", +] + +[[package]] +name = "hdrhistogram" +version = "7.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" +dependencies = [ + "base64 0.21.7", + "byteorder", + "crossbeam-channel", + "flate2", + "nom", + "num-traits", +] + +[[package]] +name = "headers" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +dependencies = [ + "base64 0.21.7", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "hmac-sha512" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e806677ce663d0a199541030c816847b36e8dc095f70dae4a4f4ad63da5383" + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" + +[[package]] +name = "httparse" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0e7a4dd27b9476dc40cb050d3632d3bba3a70ddbff012285f7f8559a1e7e545" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.7", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +dependencies = [ + "http", + "hyper", + "log", + "rustls 0.20.9", + "rustls-native-certs", + "tokio", + "tokio-rustls 0.23.4", + "webpki-roots 0.22.6", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http", + "hyper", + "log", + "rustls 0.21.12", + "rustls-native-certs", + "tokio", + "tokio-rustls 0.24.1", + "webpki-roots 0.25.4", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed" +dependencies = [ + "icu_normalizer", + "icu_properties", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "im" +version = "15.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" +dependencies = [ + "bitmaps", + "rand_core 0.6.4", + "rand_xoshiro", + "sized-chunks", + "typenum", + "version_check", +] + +[[package]] +name = "impl-codec" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" +dependencies = [ + "parity-scale-codec 2.3.1", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec 3.6.12", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "indicatif" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +dependencies = [ + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", +] + +[[package]] +name = "inotify" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +dependencies = [ + "bitflags 1.3.2", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding 0.3.3", + "generic-array", +] + +[[package]] +name = "insta" +version = "1.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "810ae6042d48e2c9e9215043563a58a80b877bc863228a74cf10c49d4620a6f5" +dependencies = [ + "console", + "lazy_static", + "linked-hash-map", + "pest", + "pest_derive", + "serde", + "similar", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "integer-encoding" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "iri-string" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f0f7638c1e223529f1bfdc48c8b133b9e0b434094d1d28473161ee48b235f78" +dependencies = [ + "nom", +] + +[[package]] +name = "is-terminal" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jobserver" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json_to_table" +version = "0.6.0" +source = "git+https://github.com/zhiburt/tabled/?rev=e449317a1c02eb6b29e409ad6617e5d9eb7b3bd4#e449317a1c02eb6b29e409ad6617e5d9eb7b3bd4" +dependencies = [ + "serde_json", + "tabled", +] + +[[package]] +name = "jsonrpsee" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "jsonrpsee-core", + "jsonrpsee-http-client", + "jsonrpsee-proc-macros", + "jsonrpsee-server", + "jsonrpsee-types", + "jsonrpsee-ws-client", + "tracing", +] + +[[package]] +name = "jsonrpsee-client-transport" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "futures-util", + "http", + "jsonrpsee-core", + "jsonrpsee-types", + "pin-project", + "rustls-native-certs", + "soketto", + "thiserror", + "tokio", + "tokio-rustls 0.23.4", + "tokio-util 0.7.11", + "tracing", + "webpki-roots 0.22.6", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "anyhow", + "arrayvec", + "async-lock", + "async-trait", + "beef", + "futures-channel", + "futures-timer", + "futures-util", + "globset", + "hyper", + "jsonrpsee-types", + "parking_lot 0.12.3", + "rand 0.8.5", + "rustc-hash", + "serde", + "serde_json", + "soketto", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-http-client" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "async-trait", + "hyper", + "hyper-rustls 0.23.2", + "jsonrpsee-core", + "jsonrpsee-types", + "rustc-hash", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "jsonrpsee-server" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "futures-channel", + "futures-util", + "http", + "hyper", + "jsonrpsee-core", + "jsonrpsee-types", + "serde", + "serde_json", + "soketto", + "tokio", + "tokio-stream", + "tokio-util 0.7.11", + "tower", + "tracing", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "anyhow", + "beef", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "jsonrpsee-ws-client" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "http", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", +] + +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.7", + "pem", + "ring 0.16.20", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "k256" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +dependencies = [ + "cfg-if", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", + "sha2 0.10.8", + "sha3 0.10.8", +] + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "once_cell", + "sha2 0.10.8", + "signature 2.2.0", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "kqueue" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set", + "ena", + "itertools 0.11.0", + "lalrpop-util", + "petgraph 0.6.5", + "regex", + "regex-syntax 0.8.4", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid 0.2.4", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +dependencies = [ + "regex-automata 0.4.7", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libloading" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +dependencies = [ + "cfg-if", + "windows-targets 0.52.5", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.5.0", + "libc", +] + +[[package]] +name = "librocksdb-sys" +version = "0.11.0+8.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" +dependencies = [ + "bindgen", + "bzip2-sys", + "cc", + "glob", + "libc", + "libz-sys", + "lz4-sys", + "zstd-sys", +] + +[[package]] +name = "libz-sys" +version = "1.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +dependencies = [ + "serde", +] + +[[package]] +name = "lru" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" +dependencies = [ + "hashbrown 0.12.3", +] + +[[package]] +name = "lru" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" +dependencies = [ + "hashbrown 0.13.2", +] + +[[package]] +name = "lru" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" +dependencies = [ + "hashbrown 0.14.5", +] + +[[package]] +name = "lz4-sys" +version = "1.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9764018d143cc854c9f17f0b907de70f14393b1f502da6375dce70f00514eb3" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "markdown-gen" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8034621d7f1258317ca1dfb9205e3925d27ee4aa2a46620a09c567daf0310562" + +[[package]] +name = "match_opt" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "405ba1524a1e6ae755334d6966380c60ec40157e0155f9032dd3c294b6384da9" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchit" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + +[[package]] +name = "memchr" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" + +[[package]] +name = "migrations_internals" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f23f71580015254b020e856feac3df5878c2c7a8812297edd6c0a485ac9dada" +dependencies = [ + "serde", + "toml 0.7.8", +] + +[[package]] +name = "migrations_macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cce3325ac70e67bbab5bd837a31cae01f1a6db64e0e744a33cb03a543469ef08" +dependencies = [ + "migrations_internals", + "proc-macro2 1.0.85", + "quote 1.0.36", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "mockall" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "lazy_static", + "mockall_derive", + "predicates", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +dependencies = [ + "cfg-if", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "moka" +version = "0.12.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0d88686dc561d743b40de8269b26eaf0dc58781bde087b0984646602021d08" +dependencies = [ + "crossbeam-channel", + "crossbeam-epoch", + "crossbeam-utils", + "once_cell", + "parking_lot 0.12.3", + "rustc_version", + "smallvec", + "tagptr", + "thiserror", + "triomphe", + "uuid 1.8.0", +] + +[[package]] +name = "move-abstract-interpreter" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", + "move-bytecode-verifier-meter", +] + +[[package]] +name = "move-abstract-interpreter-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", +] + +[[package]] +name = "move-abstract-stack" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" + +[[package]] +name = "move-binary-format" +version = "0.0.3" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "enum-compat-util", + "move-core-types", + "move-proc-macros", + "ref-cast", + "serde", + "variant_count", +] + +[[package]] +name = "move-borrow-graph" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" + +[[package]] +name = "move-bytecode-source-map" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "move-symbol-pool", + "serde", +] + +[[package]] +name = "move-bytecode-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "move-binary-format", + "move-core-types", + "petgraph 0.5.1", + "serde-reflection", +] + +[[package]] +name = "move-bytecode-verifier" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-verifier-meter" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", + "move-core-types", + "move-vm-config", +] + +[[package]] +name = "move-bytecode-verifier-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter-v2", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-verifier-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter-v2", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-verifier-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter-v2", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-viewer" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "clap 4.5.7", + "crossterm", + "move-binary-format", + "move-bytecode-source-map", + "move-disassembler", + "regex", + "tui", +] + +[[package]] +name = "move-cli" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "codespan-reporting", + "colored", + "difference", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-viewer", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-coverage", + "move-disassembler", + "move-docgen", + "move-errmapgen", + "move-ir-types", + "move-package", + "move-prover", + "move-stdlib", + "move-stdlib-natives", + "move-unit-test", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "serde_yaml", + "tempfile", + "toml_edit 0.14.4", + "walkdir", +] + +[[package]] +name = "move-command-line-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "difference", + "dirs-next", + "hex", + "move-core-types", + "num-bigint 0.4.5", + "once_cell", + "serde", + "sha2 0.9.9", + "vfs", + "walkdir", +] + +[[package]] +name = "move-compiler" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "codespan-reporting", + "dunce", + "hex", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-source-map", + "move-bytecode-verifier", + "move-command-line-common", + "move-core-types", + "move-ir-to-bytecode", + "move-ir-types", + "move-proc-macros", + "move-symbol-pool", + "once_cell", + "petgraph 0.5.1", + "regex", + "serde", + "serde_json", + "similar", + "stacker", + "tempfile", + "vfs", +] + +[[package]] +name = "move-core-types" +version = "0.0.4" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "enum-compat-util", + "ethnum", + "hex", + "leb128", + "move-proc-macros", + "num", + "once_cell", + "primitive-types 0.10.1", + "rand 0.8.5", + "ref-cast", + "serde", + "serde_bytes", + "thiserror", + "uint", +] + +[[package]] +name = "move-coverage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "codespan", + "colored", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "petgraph 0.5.1", + "serde", +] + +[[package]] +name = "move-disassembler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "colored", + "hex", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-coverage", + "move-ir-types", +] + +[[package]] +name = "move-docgen" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "codespan", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-compiler", + "move-model", + "num", + "once_cell", + "regex", + "serde", +] + +[[package]] +name = "move-errmapgen" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "move-command-line-common", + "move-core-types", + "move-model", + "serde", +] + +[[package]] +name = "move-ir-compiler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-verifier", + "move-command-line-common", + "move-ir-to-bytecode", + "serde_json", +] + +[[package]] +name = "move-ir-to-bytecode" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "codespan-reporting", + "log", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-core-types", + "move-ir-to-bytecode-syntax", + "move-ir-types", + "move-symbol-pool", + "ouroboros", +] + +[[package]] +name = "move-ir-to-bytecode-syntax" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "hex", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "move-symbol-pool", +] + +[[package]] +name = "move-ir-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-command-line-common", + "move-core-types", + "move-symbol-pool", + "once_cell", + "serde", +] + +[[package]] +name = "move-model" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "codespan", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-disassembler", + "move-ir-types", + "move-symbol-pool", + "num", + "once_cell", + "regex", + "serde", +] + +[[package]] +name = "move-package" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "clap 4.5.7", + "colored", + "itertools 0.10.5", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-docgen", + "move-model", + "move-symbol-pool", + "named-lock", + "once_cell", + "petgraph 0.5.1", + "regex", + "serde", + "serde_yaml", + "sha2 0.9.9", + "tempfile", + "toml 0.5.11", + "toml_edit 0.14.4", + "treeline", + "vfs", + "walkdir", + "whoami", +] + +[[package]] +name = "move-proc-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "enum-compat-util", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "move-prover" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "clap 4.5.7", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-command-line-common", + "move-compiler", + "move-docgen", + "move-errmapgen", + "move-model", + "move-stackless-bytecode", + "once_cell", + "serde", + "simplelog", + "toml 0.5.11", +] + +[[package]] +name = "move-stackless-bytecode" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "codespan", + "codespan-reporting", + "ethnum", + "im", + "itertools 0.10.5", + "log", + "move-binary-format", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-model", + "num", + "petgraph 0.5.1", + "serde", +] + +[[package]] +name = "move-stdlib" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "hex", + "log", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "move-docgen", + "move-errmapgen", + "move-prover", + "move-stdlib-natives", + "move-vm-runtime", + "sha2 0.9.9", + "walkdir", +] + +[[package]] +name = "move-stdlib-natives" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-stdlib-natives-v0" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime-v0", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-stdlib-natives-v1" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime-v1", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-stdlib-natives-v2" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime-v2", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-symbol-pool" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "once_cell", + "phf", + "serde", +] + +[[package]] +name = "move-transactional-test-runner" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "clap 4.5.7", + "move-binary-format", + "move-bytecode-source-map", + "move-cli", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-disassembler", + "move-ir-compiler", + "move-ir-types", + "move-stdlib", + "move-stdlib-natives", + "move-symbol-pool", + "move-vm-config", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "once_cell", + "rayon", + "regex", + "tempfile", + "tokio", +] + +[[package]] +name = "move-unit-test" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "better_any", + "clap 4.5.7", + "codespan-reporting", + "colored", + "itertools 0.10.5", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-ir-types", + "move-model", + "move-stdlib", + "move-stdlib-natives", + "move-symbol-pool", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "once_cell", + "rand 0.8.5", + "rayon", + "regex", +] + +[[package]] +name = "move-vm-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", + "once_cell", +] + +[[package]] +name = "move-vm-profiler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-vm-config", + "once_cell", + "serde", + "serde_json", + "tracing", +] + +[[package]] +name = "move-vm-runtime" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-runtime-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier-v0", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-runtime-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier-v1", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-runtime-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier-v2", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-test-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "move-binary-format", + "move-core-types", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "serde", +] + +[[package]] +name = "move-vm-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "move-binary-format", + "move-core-types", + "move-vm-profiler", + "serde", + "smallvec", +] + +[[package]] +name = "msim" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=077b735b484cf33e79f9d621db1d0c3a5827b81e#077b735b484cf33e79f9d621db1d0c3a5827b81e" +dependencies = [ + "ahash 0.7.8", + "async-task", + "bincode", + "bytes", + "cc", + "downcast-rs", + "erasable", + "futures", + "lazy_static", + "libc", + "msim-macros", + "naive-timer", + "pin-project-lite", + "rand 0.8.5", + "real_tokio", + "serde", + "socket2 0.4.10", + "tap", + "tokio-util 0.7.10", + "toml 0.5.11", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "msim-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=077b735b484cf33e79f9d621db1d0c3a5827b81e#077b735b484cf33e79f9d621db1d0c3a5827b81e" +dependencies = [ + "darling 0.14.4", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "multer" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" +dependencies = [ + "bytes", + "encoding_rs", + "futures-util", + "http", + "httparse", + "log", + "memchr", + "mime", + "spin 0.9.8", + "version_check", +] + +[[package]] +name = "multiaddr" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "log", + "multibase", + "multihash", + "percent-encoding", + "serde", + "static_assertions", + "unsigned-varint", + "url", +] + +[[package]] +name = "multibase" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +dependencies = [ + "base-x", + "data-encoding", + "data-encoding-macro", +] + +[[package]] +name = "multihash" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" +dependencies = [ + "core2", + "multihash-derive", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "multimap" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" + +[[package]] +name = "mysten-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "parking_lot 0.12.3", + "tokio", +] + +[[package]] +name = "mysten-metrics" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "axum", + "dashmap", + "futures", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "prometheus-closure-metric", + "scopeguard", + "tap", + "tokio", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "mysten-network" +version = "0.2.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "bcs", + "bytes", + "eyre", + "futures", + "http", + "multiaddr", + "pin-project-lite", + "serde", + "snap", + "tokio", + "tokio-stream", + "tonic 0.11.0", + "tonic-health", + "tower", + "tower-http", + "tracing", +] + +[[package]] +name = "mysten-util-mem" +version = "0.11.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "cfg-if", + "ed25519-consensus", + "fastcrypto", + "fastcrypto-tbls", + "hashbrown 0.12.3", + "impl-trait-for-tuples", + "indexmap 2.2.6", + "mysten-util-mem-derive", + "once_cell", + "parking_lot 0.12.3", + "roaring", + "smallvec", +] + +[[package]] +name = "mysten-util-mem-derive" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "proc-macro2 1.0.85", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "naive-timer" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034a0ad7deebf0c2abcf2435950a6666c3c15ea9d8fad0c0f48efa8a7f843fed" + +[[package]] +name = "named-lock" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40a3eb6b7c682b65d1f631ec3176829d72ab450b3aacdd3f719bf220822e59ac" +dependencies = [ + "libc", + "once_cell", + "parking_lot 0.12.3", + "thiserror", + "widestring", + "winapi", +] + +[[package]] +name = "narwhal-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto", + "match_opt", + "mysten-network", + "mysten-util-mem", + "narwhal-crypto", + "rand 0.8.5", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "narwhal-crypto" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "fastcrypto", + "serde", + "shared-crypto", +] + +[[package]] +name = "narwhal-executor" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "bcs", + "bincode", + "bytes", + "fastcrypto", + "futures", + "mockall", + "mysten-metrics", + "narwhal-config", + "narwhal-crypto", + "narwhal-network", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "prometheus", + "serde", + "sui-protocol-config", + "thiserror", + "tokio", + "tonic 0.11.0", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-network" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "async-trait", + "axum", + "axum-server", + "backoff", + "bytes", + "dashmap", + "futures", + "mysten-common", + "mysten-metrics", + "narwhal-crypto", + "narwhal-types", + "parking_lot 0.12.3", + "prometheus", + "quinn-proto", + "rand 0.8.5", + "sui-macros", + "tokio", + "tower", + "tracing", +] + +[[package]] +name = "narwhal-node" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "arc-swap", + "async-trait", + "axum", + "bytes", + "cfg-if", + "clap 4.5.7", + "eyre", + "fastcrypto", + "futures", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "narwhal-worker", + "prometheus", + "rand 0.8.5", + "reqwest", + "sui-keys", + "sui-protocol-config", + "sui-types", + "telemetry-subscribers", + "thiserror", + "tokio", + "tokio-stream", + "tracing", + "tracing-subscriber", + "url", +] + +[[package]] +name = "narwhal-primary" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "async-trait", + "backoff", + "bcs", + "bytes", + "cfg-if", + "fastcrypto", + "futures", + "governor", + "itertools 0.10.5", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-network", + "narwhal-storage", + "narwhal-types", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "rand 0.8.5", + "sui-macros", + "sui-protocol-config", + "tap", + "thiserror", + "tokio", + "tokio-stream", + "tower", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-storage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto", + "fastcrypto-tbls", + "futures", + "lru 0.10.1", + "mysten-common", + "mysten-metrics", + "narwhal-config", + "narwhal-types", + "parking_lot 0.12.3", + "prometheus", + "sui-macros", + "tap", + "tempfile", + "tokio", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-test-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "fastcrypto", + "fdlimit", + "indexmap 2.2.6", + "itertools 0.10.5", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-node", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "narwhal-worker", + "once_cell", + "prometheus", + "rand 0.8.5", + "sui-protocol-config", + "telemetry-subscribers", + "tempfile", + "tokio", + "tonic 0.11.0", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-build", + "anyhow", + "base64 0.21.7", + "bcs", + "bytes", + "derive_builder", + "enum_dispatch", + "fastcrypto", + "futures", + "indexmap 2.2.6", + "mockall", + "mysten-common", + "mysten-metrics", + "mysten-network", + "mysten-util-mem", + "narwhal-config", + "narwhal-crypto", + "once_cell", + "prometheus", + "proptest", + "proptest-derive", + "prost 0.12.6", + "prost-build", + "protobuf-src", + "rand 0.8.5", + "roaring", + "rustversion", + "serde", + "serde_with 2.3.3", + "sui-protocol-config", + "thiserror", + "tokio", + "tonic 0.11.0", + "tonic-build", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-worker" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "arc-swap", + "async-trait", + "byteorder", + "bytes", + "eyre", + "fastcrypto", + "futures", + "governor", + "itertools 0.10.5", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-network", + "narwhal-types", + "prometheus", + "rand 0.8.5", + "sui-protocol-config", + "tap", + "thiserror", + "tokio", + "tonic 0.11.0", + "tower", + "tracing", + "typed-store", +] + +[[package]] +name = "neptune" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06626c9ac04c894e9a23d061ba1309f28506cdc5fe64156d28a15fb57fc8e438" +dependencies = [ + "bellpepper", + "bellpepper-core", + "blake2s_simd", + "blstrs", + "byteorder", + "ff 0.13.0", + "generic-array", + "log", + "pasta_curves", + "serde", + "trait-set", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nonempty" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "995defdca0a589acfdd1bd2e8e3b896b4d4f7675a31fd14c32611440c7f608e6" + +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + +[[package]] +name = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + +[[package]] +name = "notify" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" +dependencies = [ + "bitflags 2.5.0", + "crossbeam-channel", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "log", + "mio", + "walkdir", + "windows-sys 0.48.0", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint 0.4.5", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" +dependencies = [ + "num-integer", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-modular" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a5fe11d4135c3bcdf3a95b18b194afa9608a5f6ff034f5d857bc9a27fb0119" +dependencies = [ + "num-bigint 0.4.5", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-prime" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e238432a7881ec7164503ccc516c014bf009be7984cde1ba56837862543bdec3" +dependencies = [ + "bitvec 1.0.1", + "either", + "lru 0.12.3", + "num-bigint 0.4.5", + "num-integer", + "num-modular", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint 0.4.5", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.9", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", +] + +[[package]] +name = "num_enum" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +dependencies = [ + "num_enum_derive 0.7.2", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "object" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "576dfe1fc8f9df304abb159d767a29d0476f7750fbf8aa7ad07816004a207434" +dependencies = [ + "memchr", +] + +[[package]] +name = "object_store" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f930c88a43b1c3f6e776dfe495b4afab89882dbc81530c632db2ed65451ebcb4" +dependencies = [ + "async-trait", + "base64 0.21.7", + "bytes", + "chrono", + "futures", + "humantime", + "hyper", + "itertools 0.11.0", + "parking_lot 0.12.3", + "percent-encoding", + "quick-xml", + "rand 0.8.5", + "reqwest", + "ring 0.16.20", + "rustls-pemfile", + "serde", + "serde_json", + "snafu", + "tokio", + "tracing", + "url", + "walkdir", +] + +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "oorandom" +version = "11.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "opentelemetry" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9591d937bc0e6d2feb6f71a559540ab300ea49955229c347a517a28d27784c54" +dependencies = [ + "opentelemetry_api", + "opentelemetry_sdk", +] + +[[package]] +name = "opentelemetry" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a" +dependencies = [ + "futures-core", + "futures-sink", + "indexmap 2.2.6", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", + "urlencoding", +] + +[[package]] +name = "opentelemetry-otlp" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e5e5a5c4135864099f3faafbe939eb4d7f9b80ebf68a8448da961b32a7c1275" +dependencies = [ + "async-trait", + "futures-core", + "http", + "opentelemetry-proto", + "opentelemetry-semantic-conventions", + "opentelemetry_api", + "opentelemetry_sdk", + "prost 0.11.9", + "thiserror", + "tokio", + "tonic 0.9.2", +] + +[[package]] +name = "opentelemetry-proto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e3f814aa9f8c905d0ee4bde026afd3b2577a97c10e1699912e3e44f0c4cbeb" +dependencies = [ + "opentelemetry_api", + "opentelemetry_sdk", + "prost 0.11.9", + "tonic 0.9.2", +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73c9f9340ad135068800e7f1b24e9e09ed9e7143f5bf8518ded3d3ec69789269" +dependencies = [ + "opentelemetry 0.20.0", +] + +[[package]] +name = "opentelemetry_api" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a81f725323db1b1206ca3da8bb19874bbd3f57c3bcd59471bfb04525b265b9b" +dependencies = [ + "futures-channel", + "futures-util", + "indexmap 1.9.3", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", + "urlencoding", +] + +[[package]] +name = "opentelemetry_sdk" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa8e705a0612d48139799fcbaba0d4a90f06277153e43dd2bdc16c6f0edd8026" +dependencies = [ + "async-trait", + "crossbeam-channel", + "futures-channel", + "futures-executor", + "futures-util", + "once_cell", + "opentelemetry_api", + "ordered-float", + "percent-encoding", + "rand 0.8.5", + "regex", + "serde_json", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-float" +version = "3.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc" +dependencies = [ + "num-traits", +] + +[[package]] +name = "os_str_bytes" +version = "6.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" + +[[package]] +name = "ouroboros" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2ba07320d39dfea882faa70554b4bd342a5f273ed59ba7c1c6b4c840492c954" +dependencies = [ + "aliasable", + "ouroboros_macro", + "static_assertions", +] + +[[package]] +name = "ouroboros_macro" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec4c6225c69b4ca778c0aea097321a64c421cf4577b331c61b229267edabb6f8" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "primeorder", + "sha2 0.10.8", +] + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group 0.13.0", +] + +[[package]] +name = "papergrid" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae7891b22598926e4398790c8fe6447930c72a67d36d983a49d6ce682ce83290" +dependencies = [ + "bytecount", + "fnv", + "unicode-width", +] + +[[package]] +name = "parity-scale-codec" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" +dependencies = [ + "arrayvec", + "bitvec 0.20.4", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive 2.3.1", + "serde", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +dependencies = [ + "arrayvec", + "bitvec 1.0.1", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive 3.6.12", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.1", + "smallvec", + "windows-targets 0.52.5", +] + +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "pasta_curves" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" +dependencies = [ + "blake2b_simd", + "ff 0.13.0", + "group 0.13.0", + "hex", + "lazy_static", + "rand 0.8.5", + "serde", + "static_assertions", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", + "hmac", + "password-hash", + "sha2 0.10.8", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "pem-rfc7468" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac" +dependencies = [ + "base64ct", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "pest_meta" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" +dependencies = [ + "once_cell", + "pest", + "sha2 0.10.8", +] + +[[package]] +name = "petgraph" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +dependencies = [ + "fixedbitset 0.2.0", + "indexmap 1.9.3", +] + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset 0.4.2", + "indexmap 2.2.6", +] + +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared 0.11.2", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs1" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719" +dependencies = [ + "der 0.6.1", + "pkcs8 0.9.0", + "spki 0.6.0", + "zeroize", +] + +[[package]] +name = "pkcs8" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +dependencies = [ + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.9", + "spki 0.7.3", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "plotters" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7" + +[[package]] +name = "plotters-svg" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81b30686a7d9c3e010b84284bdd26a29f2138574f52f5eb6f794fc0ad924e705" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "portable-atomic" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" + +[[package]] +name = "postgres-protocol" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520" +dependencies = [ + "base64 0.21.7", + "byteorder", + "bytes", + "fallible-iterator", + "hmac", + "md-5", + "memchr", + "rand 0.8.5", + "sha2 0.10.8", + "stringprep", +] + +[[package]] +name = "postgres-types" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d2234cdee9408b523530a9b6d2d6b373d1db34f6a8e51dc03ded1828d7fb67c" +dependencies = [ + "bytes", + "fallible-iterator", + "postgres-protocol", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "pq-sys" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c0052426df997c0cbd30789eb44ca097e3541717a7b8fa36b1c464ee7edebd" +dependencies = [ + "vcpkg", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "predicates" +version = "2.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +dependencies = [ + "difflib", + "float-cmp", + "itertools 0.10.5", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" + +[[package]] +name = "predicates-tree" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +dependencies = [ + "predicates-core", + "termtree", +] + +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2 1.0.85", + "syn 1.0.109", +] + +[[package]] +name = "prettyplease" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +dependencies = [ + "proc-macro2 1.0.85", + "syn 2.0.66", +] + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve 0.13.8", +] + +[[package]] +name = "primitive-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +dependencies = [ + "fixed-hash 0.7.0", + "impl-codec 0.5.1", + "impl-serde 0.3.2", + "uint", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "scale-info", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml 0.5.11", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", +] + +[[package]] +name = "proc-macro2" +version = "1.0.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prometheus" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" +dependencies = [ + "cfg-if", + "fnv", + "lazy_static", + "memchr", + "parking_lot 0.12.3", + "protobuf", + "thiserror", +] + +[[package]] +name = "prometheus-closure-metric" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "prometheus", + "protobuf", +] + +[[package]] +name = "proptest" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags 2.5.0", + "lazy_static", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_xorshift", + "regex-syntax 0.8.4", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "proptest-derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90b46295382dc76166cb7cf2bb4a97952464e4b7ed5a43e6cd34e1fec3349ddc" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", +] + +[[package]] +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive 0.12.6", +] + +[[package]] +name = "prost-build" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" +dependencies = [ + "bytes", + "heck 0.5.0", + "itertools 0.12.1", + "log", + "multimap", + "once_cell", + "petgraph 0.6.5", + "prettyplease 0.2.20", + "prost 0.12.6", + "prost-types", + "regex", + "syn 2.0.66", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "prost-types" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +dependencies = [ + "prost 0.12.6", +] + +[[package]] +name = "protobuf" +version = "2.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" +dependencies = [ + "bytes", +] + +[[package]] +name = "protobuf-src" +version = "1.1.0+21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7ac8852baeb3cc6fb83b93646fb93c0ffe5d14bf138c945ceb4b9948ee0e3c1" +dependencies = [ + "autotools", +] + +[[package]] +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] + +[[package]] +name = "quanta" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi 0.11.0+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quick-xml" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "quinn" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75" +dependencies = [ + "bytes", + "futures-io", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls 0.21.12", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a" +dependencies = [ + "bytes", + "rand 0.8.5", + "ring 0.16.20", + "rustc-hash", + "rustls 0.21.12", + "slab", + "thiserror", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" +dependencies = [ + "bytes", + "libc", + "socket2 0.5.7", + "tracing", + "windows-sys 0.48.0", +] + +[[package]] +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2 0.4.30", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2 1.0.85", +] + +[[package]] +name = "r2d2" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93" +dependencies = [ + "log", + "parking_lot 0.12.3", + "scheduled-thread-pool", +] + +[[package]] +name = "radium" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "rand_xoshiro" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "raw-cpuid" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e29830cbb1290e404f24c73af91c5d8d631ce7e128691e9477556b540cd01ecd" +dependencies = [ + "bitflags 2.5.0", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rcgen" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +dependencies = [ + "pem", + "ring 0.16.20", + "time", + "yasna", +] + +[[package]] +name = "readonly" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a25d631e41bfb5fdcde1d4e2215f62f7f0afa3ff11e26563765bd6ea1d229aeb" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "real_tokio" +version = "1.36.0" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=e47aafebf98e9c1734a8848a1876d5946c44bdd1#e47aafebf98e9c1734a8848a1876d5946c44bdd1" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot 0.12.3", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.7", + "tokio-macros 2.2.0", + "windows-sys 0.48.0", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +dependencies = [ + "bitflags 2.5.0", +] + +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror", +] + +[[package]] +name = "ref-cast" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "regex" +version = "1.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-rustls 0.24.2", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-rustls 0.24.1", + "tokio-util 0.7.11", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots 0.25.4", + "winreg", +] + +[[package]] +name = "retain_mut" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0" + +[[package]] +name = "rfc6979" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +dependencies = [ + "crypto-bigint 0.4.9", + "hmac", + "zeroize", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.15", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "roaring" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1c77081a55300e016cb86f2864415b7518741879db925b8d488a0ee0d2da6bf" +dependencies = [ + "bytemuck", + "byteorder", +] + +[[package]] +name = "rocksdb" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" +dependencies = [ + "libc", + "librocksdb-sys", +] + +[[package]] +name = "rsa" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55a77d189da1fee555ad95b7e50e7457d91c0e089ec68ca69ad2989413bbdab4" +dependencies = [ + "byteorder", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-iter", + "num-traits", + "pkcs1", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "sha2 0.10.8", + "signature 2.2.0", + "subtle", + "zeroize", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.5.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +dependencies = [ + "log", + "ring 0.16.20", + "sct", + "webpki", +] + +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scale-info" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +dependencies = [ + "cfg-if", + "derive_more", + "parity-scale-codec 3.6.12", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "scheduled-thread-pool" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19" +dependencies = [ + "parking_lot 0.12.3", +] + +[[package]] +name = "schemars" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +dependencies = [ + "dyn-clone", + "either", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "serde_derive_internals", + "syn 2.0.66", +] + +[[package]] +name = "scoped-futures" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1473e24c637950c9bd38763220bea91ec3e095a89f672bbd7a10d03e77ba467" +dependencies = [ + "cfg-if", + "pin-utils", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scrypt" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" +dependencies = [ + "hmac", + "pbkdf2 0.11.0", + "salsa20", + "sha2 0.10.8", +] + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "sec1" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +dependencies = [ + "base16ct 0.1.1", + "der 0.6.1", + "generic-array", + "subtle", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.9", + "generic-array", + "pkcs8 0.10.2", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "bitcoin_hashes", + "rand 0.8.5", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +dependencies = [ + "cc", +] + +[[package]] +name = "secrecy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +dependencies = [ + "bitflags 2.5.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + +[[package]] +name = "serde" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-name" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b5b14ebbcc4e4f2b3642fa99c388649da58d1dc3308c7d109f39f565d1710f0" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "serde-reflection" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05a5f801ac62a51a49d378fdb3884480041b99aced450b28990673e8ff99895" +dependencies = [ + "once_cell", + "serde", + "thiserror", +] + +[[package]] +name = "serde_bytes" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_json" +version = "1.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +dependencies = [ + "indexmap 2.2.6", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_spanned" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +dependencies = [ + "base64 0.13.1", + "chrono", + "hex", + "indexmap 1.9.3", + "serde", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "serde", + "serde_derive", + "serde_json", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" +dependencies = [ + "darling 0.20.9", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_yaml" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +dependencies = [ + "indexmap 1.9.3", + "ryu", + "serde", + "yaml-rust", +] + +[[package]] +name = "serial_test" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e56dd856803e253c8f298af3f4d7eb0ae5e23a737252cd90bb4f3b435033b2d" +dependencies = [ + "dashmap", + "futures", + "lazy_static", + "log", + "parking_lot 0.12.3", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shared-crypto" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "eyre", + "fastcrypto", + "serde", + "serde_repr", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "similar" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640" + +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint 0.4.5", + "num-traits", + "thiserror", + "time", +] + +[[package]] +name = "simplelog" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bc0ffd69814a9b251d43afcabf96dad1b29f5028378056257be9e3fecc9f720" +dependencies = [ + "chrono", + "log", + "termcolor", +] + +[[package]] +name = "simulacrum" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "fastcrypto", + "futures", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "once_cell", + "prometheus", + "rand 0.8.5", + "serde", + "shared-crypto", + "sui-config", + "sui-execution", + "sui-framework", + "sui-genesis-builder", + "sui-keys", + "sui-protocol-config", + "sui-storage", + "sui-swarm-config", + "sui-transaction-checks", + "sui-types", + "tracing", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "sized-chunks" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" +dependencies = [ + "bitmaps", + "typenum", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slip10_ed25519" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be0ff28bf14f9610a342169084e87a4f435ad798ec528dc7579a3678fa9dc9a" +dependencies = [ + "hmac-sha512", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "snafu" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6" +dependencies = [ + "doc-comment", + "snafu-derive", +] + +[[package]] +name = "snafu-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "soketto" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +dependencies = [ + "base64 0.13.1", + "bytes", + "futures", + "http", + "httparse", + "log", + "rand 0.8.5", + "sha-1", +] + +[[package]] +name = "solang-parser" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" +dependencies = [ + "itertools 0.11.0", + "lalrpop", + "lalrpop-util", + "phf", + "thiserror", + "unicode-xid 0.2.4", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spinning_top" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +dependencies = [ + "base64ct", + "der 0.6.1", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der 0.7.9", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "stacker" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "winapi", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot 0.12.3", + "phf_shared 0.10.0", + "precomputed-hash", +] + +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros 0.24.3", +] + +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +dependencies = [ + "strum_macros 0.25.3", +] + +[[package]] +name = "strum" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" +dependencies = [ + "strum_macros 0.26.4", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustversion", + "syn 2.0.66", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustversion", + "syn 2.0.66", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "subtle-ng" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + +[[package]] +name = "sui-adapter-latest" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-types", + "mysten-metrics", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-latest", + "sui-protocol-config", + "sui-types", + "sui-verifier-latest", + "tracing", +] + +[[package]] +name = "sui-adapter-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v0", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime-v0", + "move-vm-types", + "once_cell", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-v0", + "sui-protocol-config", + "sui-types", + "sui-verifier-v0", + "tracing", +] + +[[package]] +name = "sui-adapter-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v1", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime-v1", + "move-vm-types", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-v1", + "sui-protocol-config", + "sui-types", + "sui-verifier-v1", + "tracing", +] + +[[package]] +name = "sui-adapter-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v2", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime-v2", + "move-vm-types", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-v2", + "sui-protocol-config", + "sui-types", + "sui-verifier-v2", + "tracing", +] + +[[package]] +name = "sui-archival" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "byteorder", + "bytes", + "fastcrypto", + "futures", + "indicatif", + "num_enum 0.6.1", + "object_store", + "prometheus", + "rand 0.8.5", + "serde", + "serde_json", + "sui-config", + "sui-simulator", + "sui-storage", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "sui-authority-aggregation" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "mysten-metrics", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "sui-bridge" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "arc-swap", + "async-trait", + "axum", + "backoff", + "bcs", + "bin-version", + "clap 4.5.7", + "enum_dispatch", + "ethers", + "eyre", + "fastcrypto", + "futures", + "lru 0.10.1", + "move-core-types", + "mysten-metrics", + "num_enum 0.6.1", + "once_cell", + "prometheus", + "rand 0.8.5", + "reqwest", + "rocksdb", + "serde", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "sui-common", + "sui-config", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-keys", + "sui-sdk 1.27.0", + "sui-test-transaction-builder", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tracing", + "typed-store", + "typed-store-derive", + "url", +] + +[[package]] +name = "sui-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "mysten-metrics", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "sui-config" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "bcs", + "clap 4.5.7", + "csv", + "dirs 4.0.0", + "fastcrypto", + "narwhal-config", + "object_store", + "once_cell", + "prometheus", + "rand 0.8.5", + "reqwest", + "serde", + "serde_with 2.3.3", + "serde_yaml", + "sui-keys", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-core" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "arc-swap", + "async-trait", + "axum", + "bcs", + "bytes", + "chrono", + "consensus-config", + "consensus-core", + "count-min-sketch", + "dashmap", + "diffy", + "either", + "enum_dispatch", + "eyre", + "fastcrypto", + "fastcrypto-tbls", + "fastcrypto-zkp", + "futures", + "im", + "indexmap 2.2.6", + "itertools 0.10.5", + "jsonrpsee", + "lru 0.10.1", + "mockall", + "moka", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-package", + "move-symbol-pool", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-node", + "narwhal-test-utils", + "narwhal-types", + "narwhal-worker", + "num_cpus", + "object_store", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "rand 0.8.5", + "reqwest", + "roaring", + "rocksdb", + "scopeguard", + "serde", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "signature 1.6.4", + "static_assertions", + "sui-archival", + "sui-authority-aggregation", + "sui-config", + "sui-execution", + "sui-framework", + "sui-genesis-builder", + "sui-json-rpc-types", + "sui-macros", + "sui-move-build", + "sui-network", + "sui-protocol-config", + "sui-rest-api", + "sui-simulator", + "sui-storage", + "sui-swarm-config", + "sui-transaction-checks", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "thiserror", + "tokio", + "tokio-retry", + "tokio-stream", + "tracing", + "twox-hash", + "typed-store", + "typed-store-derive", + "zeroize", +] + +[[package]] +name = "sui-ctf-framework" +version = "0.1.0" +source = "git+https://github.com/otter-sec/sui-ctf-framework?branch=justctf2024#2d35e09413445ce624aa9447d0f49bf368126cd8" +dependencies = [ + "clap 3.2.25", + "diesel-async", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-stdlib", + "move-symbol-pool", + "move-transactional-test-runner", + "once_cell", + "sui-protocol-config", + "sui-transactional-test-runner", + "sui-types", + "tempfile", +] + +[[package]] +name = "sui-data-ingestion-core" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "backoff", + "bcs", + "futures", + "mysten-metrics", + "notify", + "object_store", + "prometheus", + "serde", + "serde_json", + "sui-rest-api", + "sui-storage", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "sui-enum-compat-util" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "serde_yaml", +] + +[[package]] +name = "sui-execution" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter", + "move-abstract-interpreter-v2", + "move-binary-format", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v0", + "move-bytecode-verifier-v1", + "move-bytecode-verifier-v2", + "move-vm-config", + "move-vm-runtime", + "move-vm-runtime-v0", + "move-vm-runtime-v1", + "move-vm-runtime-v2", + "sui-adapter-latest", + "sui-adapter-v0", + "sui-adapter-v1", + "sui-adapter-v2", + "sui-move-natives-latest", + "sui-move-natives-v0", + "sui-move-natives-v1", + "sui-move-natives-v2", + "sui-protocol-config", + "sui-types", + "sui-verifier-latest", + "sui-verifier-v0", + "sui-verifier-v1", + "sui-verifier-v2", +] + +[[package]] +name = "sui-framework" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "move-binary-format", + "move-compiler", + "move-core-types", + "move-package", + "once_cell", + "regex", + "serde", + "sui-move-build", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-framework-snapshot" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "bin-version", + "serde", + "serde_json", + "sui-framework", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-genesis-builder" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "camino", + "fastcrypto", + "move-binary-format", + "move-core-types", + "prometheus", + "rand 0.8.5", + "serde", + "serde_with 2.3.3", + "serde_yaml", + "shared-crypto", + "sui-config", + "sui-execution", + "sui-framework", + "sui-framework-snapshot", + "sui-protocol-config", + "sui-simulator", + "sui-types", + "tempfile", + "tracing", +] + +[[package]] +name = "sui-graphql-rpc" +version = "2024.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-graphql", + "async-graphql-axum", + "async-graphql-value", + "async-trait", + "axum", + "bcs", + "bin-version", + "chrono", + "clap 4.5.7", + "const-str", + "diesel", + "downcast", + "either", + "fastcrypto", + "fastcrypto-zkp", + "futures", + "hex", + "http", + "hyper", + "im", + "itertools 0.10.5", + "lru 0.10.1", + "markdown-gen", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-disassembler", + "move-ir-types", + "mysten-metrics", + "mysten-network", + "once_cell", + "prometheus", + "rand 0.8.5", + "regex", + "reqwest", + "serde", + "serde_json", + "serde_with 2.3.3", + "serde_yaml", + "serial_test", + "shared-crypto", + "similar", + "simulacrum", + "sui-graphql-rpc-client", + "sui-graphql-rpc-headers", + "sui-indexer", + "sui-json-rpc", + "sui-json-rpc-types", + "sui-package-resolver", + "sui-protocol-config", + "sui-rest-api", + "sui-sdk 1.27.0", + "sui-swarm-config", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "test-cluster", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "toml 0.7.8", + "tower", + "tower-http", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "sui-graphql-rpc-client" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-graphql", + "axum", + "hyper", + "reqwest", + "serde_json", + "sui-graphql-rpc-headers", + "thiserror", +] + +[[package]] +name = "sui-graphql-rpc-headers" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "axum", +] + +[[package]] +name = "sui-indexer" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "axum", + "backoff", + "bcs", + "cached", + "chrono", + "clap 4.5.7", + "diesel", + "diesel-derive-enum", + "diesel_migrations", + "downcast", + "fastcrypto", + "futures", + "itertools 0.10.5", + "jsonrpsee", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "mysten-metrics", + "prometheus", + "rayon", + "regex", + "secrecy", + "serde", + "serde_json", + "serde_with 2.3.3", + "sui-data-ingestion-core", + "sui-json", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-open-rpc", + "sui-package-resolver", + "sui-protocol-config", + "sui-rest-api", + "sui-sdk 1.27.0", + "sui-transaction-builder", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "tracing", + "url", +] + +[[package]] +name = "sui-json" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "fastcrypto", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "schemars", + "serde", + "serde_json", + "sui-types", +] + +[[package]] +name = "sui-json-rpc" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "arc-swap", + "async-trait", + "axum", + "bcs", + "cached", + "chrono", + "eyre", + "fastcrypto", + "futures", + "hyper", + "indexmap 2.2.6", + "itertools 0.10.5", + "jsonrpsee", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-package", + "mysten-metrics", + "once_cell", + "prometheus", + "serde", + "serde_json", + "shared-crypto", + "signature 1.6.4", + "sui-core", + "sui-json", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-macros", + "sui-open-rpc", + "sui-open-rpc-macros", + "sui-protocol-config", + "sui-storage", + "sui-transaction-builder", + "sui-types", + "tap", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "tower", + "tower-http", + "tracing", + "typed-store-error", +] + +[[package]] +name = "sui-json-rpc-api" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "fastcrypto", + "jsonrpsee", + "mysten-metrics", + "once_cell", + "prometheus", + "sui-json", + "sui-json-rpc-types", + "sui-open-rpc", + "sui-open-rpc-macros", + "sui-types", + "tap", + "tracing", +] + +[[package]] +name = "sui-json-rpc-types" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "colored", + "enum_dispatch", + "fastcrypto", + "itertools 0.10.5", + "json_to_table", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "mysten-metrics", + "schemars", + "serde", + "serde_json", + "serde_with 2.3.3", + "sui-enum-compat-util", + "sui-json", + "sui-macros", + "sui-package-resolver", + "sui-protocol-config", + "sui-types", + "tabled", + "tracing", +] + +[[package]] +name = "sui-keys" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bip32", + "fastcrypto", + "rand 0.8.5", + "regex", + "serde", + "serde_json", + "shared-crypto", + "signature 1.6.4", + "slip10_ed25519", + "sui-types", + "tiny-bip39", +] + +[[package]] +name = "sui-macros" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "once_cell", + "sui-proc-macros", + "tracing", +] + +[[package]] +name = "sui-move-build" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "fastcrypto", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-ir-types", + "move-package", + "move-symbol-pool", + "serde-reflection", + "sui-protocol-config", + "sui-types", + "sui-verifier-latest", + "tempfile", +] + +[[package]] +name = "sui-move-natives-latest" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-vdf", + "fastcrypto-zkp", + "indexmap 2.2.6", + "move-binary-format", + "move-core-types", + "move-stdlib-natives", + "move-vm-runtime", + "move-vm-types", + "rand 0.8.5", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-move-natives-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-zkp", + "linked-hash-map", + "move-binary-format", + "move-core-types", + "move-stdlib-natives-v0", + "move-vm-runtime-v0", + "move-vm-types", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-move-natives-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-zkp", + "linked-hash-map", + "move-binary-format", + "move-core-types", + "move-stdlib-natives-v1", + "move-vm-runtime-v1", + "move-vm-types", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-move-natives-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-zkp", + "indexmap 2.2.6", + "move-binary-format", + "move-core-types", + "move-stdlib-natives-v2", + "move-vm-runtime-v2", + "move-vm-types", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-network" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-build", + "anemo-tower", + "anyhow", + "arc-swap", + "bcs", + "bytes", + "dashmap", + "fastcrypto", + "fastcrypto-tbls", + "futures", + "governor", + "mysten-metrics", + "mysten-network", + "prometheus", + "rand 0.8.5", + "serde", + "sui-archival", + "sui-config", + "sui-macros", + "sui-storage", + "sui-swarm-config", + "sui-types", + "tap", + "tokio", + "tonic 0.11.0", + "tonic-build", + "tower", + "tracing", +] + +[[package]] +name = "sui-node" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "arc-swap", + "axum", + "bin-version", + "clap 4.5.7", + "fastcrypto", + "fastcrypto-zkp", + "futures", + "humantime", + "move-vm-profiler", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-network", + "narwhal-worker", + "prometheus", + "reqwest", + "serde", + "snap", + "sui-archival", + "sui-config", + "sui-core", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-macros", + "sui-network", + "sui-protocol-config", + "sui-rest-api", + "sui-simulator", + "sui-snapshot", + "sui-storage", + "sui-telemetry", + "sui-tls", + "sui-types", + "tap", + "telemetry-subscribers", + "tokio", + "tower", + "tracing", + "typed-store", + "url", +] + +[[package]] +name = "sui-open-rpc" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "schemars", + "serde", + "serde_json", + "versions", +] + +[[package]] +name = "sui-open-rpc-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "derive-syn-parse", + "itertools 0.10.5", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "unescape", +] + +[[package]] +name = "sui-package-resolver" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "bcs", + "eyre", + "lru 0.10.1", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "serde", + "sui-rest-api", + "sui-types", + "thiserror", + "tokio", +] + +[[package]] +name = "sui-proc-macros" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "msim-macros", + "proc-macro2 1.0.85", + "quote 1.0.36", + "sui-enum-compat-util", + "syn 2.0.66", +] + +[[package]] +name = "sui-protocol-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "clap 4.5.7", + "insta", + "move-vm-config", + "schemars", + "serde", + "serde_with 2.3.3", + "sui-protocol-config-macros", + "tracing", +] + +[[package]] +name = "sui-protocol-config-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "sui-rest-api" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "axum", + "bcs", + "fastcrypto", + "itertools 0.10.5", + "mime", + "mysten-network", + "prometheus", + "rand 0.8.5", + "reqwest", + "serde", + "serde_json", + "serde_with 2.3.3", + "sui-sdk 0.0.0", + "sui-types", + "tap", + "thiserror", +] + +[[package]] +name = "sui-sdk" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/sui-rust-sdk.git?rev=ec4236befe57c15fba0dae9e6881c18231882151#ec4236befe57c15fba0dae9e6881c18231882151" +dependencies = [ + "base64ct", + "bcs", + "bnum", + "bs58 0.5.1", + "hex", + "roaring", + "serde", + "serde_derive", + "serde_with 3.8.1", + "winnow 0.6.13", +] + +[[package]] +name = "sui-sdk" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "base64 0.21.7", + "bcs", + "clap 4.5.7", + "colored", + "fastcrypto", + "futures", + "futures-core", + "jsonrpsee", + "move-core-types", + "reqwest", + "serde", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "sui-config", + "sui-json", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-keys", + "sui-transaction-builder", + "sui-types", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "sui-simulator" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "bcs", + "fastcrypto", + "lru 0.10.1", + "move-package", + "msim", + "narwhal-network", + "rand 0.8.5", + "serde", + "sui-framework", + "sui-move-build", + "sui-types", + "telemetry-subscribers", + "tempfile", + "tower", + "tracing", +] + +[[package]] +name = "sui-snapshot" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "byteorder", + "bytes", + "fastcrypto", + "futures", + "indicatif", + "integer-encoding", + "num_enum 0.6.1", + "object_store", + "prometheus", + "serde", + "serde_json", + "sui-config", + "sui-core", + "sui-protocol-config", + "sui-storage", + "sui-types", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "sui-storage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "backoff", + "base64-url", + "bcs", + "byteorder", + "bytes", + "chrono", + "clap 4.5.7", + "eyre", + "fastcrypto", + "futures", + "hyper", + "hyper-rustls 0.24.2", + "indicatif", + "integer-encoding", + "itertools 0.10.5", + "lru 0.10.1", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "mysten-metrics", + "num_enum 0.6.1", + "object_store", + "parking_lot 0.12.3", + "percent-encoding", + "prometheus", + "reqwest", + "rocksdb", + "serde", + "serde_json", + "sui-config", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tracing", + "typed-store", + "typed-store-derive", + "url", + "zstd 0.12.4", +] + +[[package]] +name = "sui-swarm" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "futures", + "mysten-metrics", + "mysten-network", + "prometheus", + "rand 0.8.5", + "sui-config", + "sui-macros", + "sui-node", + "sui-protocol-config", + "sui-simulator", + "sui-swarm-config", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tonic-health", + "tracing", +] + +[[package]] +name = "sui-swarm-config" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "fastcrypto", + "move-bytecode-utils", + "narwhal-config", + "prometheus", + "rand 0.8.5", + "serde", + "serde_with 2.3.3", + "serde_yaml", + "shared-crypto", + "sui-config", + "sui-genesis-builder", + "sui-macros", + "sui-protocol-config", + "sui-simulator", + "sui-types", + "tempfile", + "tracing", +] + +[[package]] +name = "sui-telemetry" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "reqwest", + "serde", + "sui-core", + "tracing", +] + +[[package]] +name = "sui-test-transaction-builder" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "move-core-types", + "shared-crypto", + "sui-genesis-builder", + "sui-move-build", + "sui-sdk 1.27.0", + "sui-types", +] + +[[package]] +name = "sui-tls" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "axum", + "axum-server", + "ed25519", + "fastcrypto", + "pkcs8 0.9.0", + "rcgen", + "reqwest", + "rustls 0.21.12", + "rustls-webpki", + "tokio", + "tokio-rustls 0.24.1", + "tower-layer", + "x509-parser", +] + +[[package]] +name = "sui-transaction-builder" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "futures", + "move-binary-format", + "move-core-types", + "sui-json", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-transaction-checks" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto-zkp", + "once_cell", + "sui-config", + "sui-execution", + "sui-macros", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-transactional-test-runner" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "bimap", + "clap 4.5.7", + "criterion", + "eyre", + "fastcrypto", + "futures", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-stdlib", + "move-symbol-pool", + "move-transactional-test-runner", + "move-vm-runtime", + "msim", + "once_cell", + "rand 0.8.5", + "regex", + "rocksdb", + "serde_json", + "simulacrum", + "sui-config", + "sui-core", + "sui-framework", + "sui-framework-snapshot", + "sui-graphql-rpc", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-rest-api", + "sui-storage", + "sui-swarm-config", + "sui-types", + "telemetry-subscribers", + "tempfile", + "tokio", + "typed-store", + "typed-store-derive", +] + +[[package]] +name = "sui-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "bcs", + "better_any", + "bincode", + "byteorder", + "chrono", + "consensus-config", + "derivative", + "derive_more", + "enum_dispatch", + "eyre", + "fastcrypto", + "fastcrypto-tbls", + "fastcrypto-zkp", + "im", + "indexmap 2.2.6", + "itertools 0.10.5", + "jsonrpsee", + "lru 0.10.1", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-core-types", + "move-disassembler", + "move-ir-types", + "move-vm-profiler", + "move-vm-test-utils", + "move-vm-types", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "nonempty", + "num-bigint 0.4.5", + "num-traits", + "num_enum 0.6.1", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "proptest", + "proptest-derive", + "rand 0.8.5", + "roaring", + "schemars", + "serde", + "serde-name", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "signature 1.6.4", + "static_assertions", + "strum 0.24.1", + "strum_macros 0.24.3", + "sui-enum-compat-util", + "sui-macros", + "sui-protocol-config", + "sui-sdk 0.0.0", + "tap", + "thiserror", + "tonic 0.11.0", + "tracing", + "typed-store-error", +] + +[[package]] +name = "sui-verifier-latest" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter", + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-verifier-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v0", + "move-core-types", + "move-vm-config", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-verifier-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v1", + "move-core-types", + "move-vm-config", + "sui-types", +] + +[[package]] +name = "sui-verifier-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v2", + "move-core-types", + "move-vm-config", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "svm-rs" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" +dependencies = [ + "dirs 5.0.1", + "fs2", + "hex", + "once_cell", + "reqwest", + "semver", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "url", + "zip", +] + +[[package]] +name = "syn" +version = "0.15.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "unicode-xid 0.2.4", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tabled" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce69a5028cd9576063ec1f48edb2c75339fd835e6094ef3e05b3a079bf594a6" +dependencies = [ + "papergrid", + "tabled_derive", + "unicode-width", +] + +[[package]] +name = "tabled_derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99f688a08b54f4f02f0a3c382aefdb7884d3d69609f785bd253dc033243e3fe4" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "tagptr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "telemetry-subscribers" +version = "0.2.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "atomic_float", + "bytes", + "bytes-varint", + "clap 4.5.7", + "crossterm", + "futures", + "once_cell", + "opentelemetry 0.20.0", + "opentelemetry-otlp", + "opentelemetry-proto", + "opentelemetry_api", + "prometheus", + "prost 0.11.9", + "tokio", + "tonic 0.9.2", + "tracing", + "tracing-appender", + "tracing-opentelemetry", + "tracing-subscriber", +] + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terminal_size" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +dependencies = [ + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + +[[package]] +name = "test-cluster" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "fastcrypto", + "fastcrypto-zkp", + "futures", + "jsonrpsee", + "move-binary-format", + "prometheus", + "rand 0.8.5", + "sui-bridge", + "sui-config", + "sui-core", + "sui-framework", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-keys", + "sui-node", + "sui-protocol-config", + "sui-sdk 1.27.0", + "sui-simulator", + "sui-swarm", + "sui-swarm-config", + "sui-test-transaction-builder", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "textwrap" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" + +[[package]] +name = "thiserror" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-bip39" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" +dependencies = [ + "anyhow", + "hmac", + "once_cell", + "pbkdf2 0.11.0", + "rand 0.8.5", + "rustc-hash", + "sha2 0.10.8", + "thiserror", + "unicode-normalization", + "wasm-bindgen", + "zeroize", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot 0.12.3", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.7", + "tokio-macros 2.3.0", + "tracing", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=e47aafebf98e9c1734a8848a1876d5946c44bdd1#e47aafebf98e9c1734a8848a1876d5946c44bdd1" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tokio-macros" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tokio-postgres" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d340244b32d920260ae7448cb72b6e238bddc3d4f7603394e7dd46ed8e48f5b8" +dependencies = [ + "async-trait", + "byteorder", + "bytes", + "fallible-iterator", + "futures-channel", + "futures-util", + "log", + "parking_lot 0.12.3", + "percent-encoding", + "phf", + "pin-project-lite", + "postgres-protocol", + "postgres-types", + "rand 0.8.5", + "socket2 0.5.7", + "tokio", + "tokio-util 0.7.11", + "whoami", +] + +[[package]] +name = "tokio-retry" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +dependencies = [ + "pin-project", + "rand 0.8.5", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls 0.20.9", + "tokio", + "webpki", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util 0.7.11", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", + "tungstenite", + "webpki-roots 0.25.4", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=e47aafebf98e9c1734a8848a1876d5946c44bdd1#e47aafebf98e9c1734a8848a1876d5946c44bdd1" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "futures-util", + "hashbrown 0.14.5", + "pin-project-lite", + "real_tokio", + "slab", + "tracing", +] + +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "futures-util", + "hashbrown 0.14.5", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.14", +] + +[[package]] +name = "toml_datetime" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5376256e44f2443f8896ac012507c19a012df0fe8758b55246ae51a2279db51f" +dependencies = [ + "combine", + "indexmap 1.9.3", + "itertools 0.10.5", + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.13", +] + +[[package]] +name = "tonic" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" +dependencies = [ + "async-trait", + "axum", + "base64 0.21.7", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost 0.11.9", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.21.7", + "bytes", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost 0.12.6", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-build" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2" +dependencies = [ + "prettyplease 0.2.20", + "proc-macro2 1.0.85", + "prost-build", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tonic-health" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cef6e24bc96871001a7e48e820ab240b3de2201e59b517cf52835df2f1d2350" +dependencies = [ + "async-stream", + "prost 0.12.6", + "tokio", + "tokio-stream", + "tonic 0.11.0", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "hdrhistogram", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util 0.7.11", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" +dependencies = [ + "async-compression", + "base64 0.13.1", + "bitflags 1.3.2", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "httpdate", + "iri-string", + "mime", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "tokio", + "tokio-util 0.7.11", + "tower", + "tower-layer", + "tower-service", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-appender" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +dependencies = [ + "crossbeam-channel", + "thiserror", + "time", + "tracing-subscriber", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "futures", + "futures-task", + "pin-project", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-opentelemetry" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75327c6b667828ddc28f5e3f169036cb793c3f588d83bf0f262a7f062ffed3c8" +dependencies = [ + "once_cell", + "opentelemetry 0.20.0", + "opentelemetry_sdk", + "smallvec", + "tracing", + "tracing-core", + "tracing-log 0.1.4", + "tracing-subscriber", +] + +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "serde", + "serde_json", + "sharded-slab", + "smallvec", + "thread_local", + "time", + "tracing", + "tracing-core", + "tracing-log 0.2.0", + "tracing-serde", +] + +[[package]] +name = "trait-set" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b79e2e9c9ab44c6d7c20d5976961b47e8f49ac199154daa514b77cd1ab536625" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "treeline" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" + +[[package]] +name = "triomphe" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b2cb4fbb9995eeb36ac86fadf24031ccd58f99d6b4b2d7b911db70bddb80d90" + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tui" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccdd26cbd674007e649a272da4475fb666d3aa0ad0531da7136db6fab0e5bad1" +dependencies = [ + "bitflags 1.3.2", + "cassowary", + "crossterm", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.8.5", + "rustls 0.21.12", + "sha1", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "rand 0.8.5", + "static_assertions", +] + +[[package]] +name = "typed-store" +version = "0.4.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "bcs", + "bincode", + "collectable", + "eyre", + "fdlimit", + "hdrhistogram", + "itertools 0.10.5", + "msim", + "once_cell", + "ouroboros", + "prometheus", + "rand 0.8.5", + "rocksdb", + "serde", + "sui-macros", + "tap", + "thiserror", + "tokio", + "tracing", + "typed-store-error", +] + +[[package]] +name = "typed-store-derive" +version = "0.3.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "itertools 0.10.5", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "typed-store-error" +version = "0.4.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unescape" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e" + +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-properties" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291" + +[[package]] +name = "unicode-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + +[[package]] +name = "unicode-width" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" + +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "unsigned-varint" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom 0.2.15", + "serde", +] + +[[package]] +name = "uuid" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" +dependencies = [ + "getrandom 0.2.15", + "rand 0.8.5", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "variant_count" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae2faf80ac463422992abf4de234731279c058aaf33171ca70277c98406b124" +dependencies = [ + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "versions" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee97e1d97bd593fb513912a07691b742361b3dd64ad56f2c694ea2dbfe0665d3" +dependencies = [ + "itertools 0.10.5", + "nom", +] + +[[package]] +name = "vfs" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e4fe92cfc1bad19c19925d5eee4b30584dbbdee4ff10183b261acccbef74e2d" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote 1.0.36", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "wasm-streams" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "webpki-roots" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +dependencies = [ + "webpki", +] + +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + +[[package]] +name = "whoami" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9" +dependencies = [ + "redox_syscall 0.4.1", + "wasite", + "web-sys", +] + +[[package]] +name = "widestring" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "x509-parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +dependencies = [ + "asn1-rs", + "base64 0.13.1", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time", +] + +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "synstructure 0.13.1", +] + +[[package]] +name = "zerocopy" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "synstructure 0.13.1", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "zerovec" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "aes", + "byteorder", + "bzip2", + "constant_time_eq 0.1.5", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac", + "pbkdf2 0.11.0", + "sha1", + "time", + "zstd 0.11.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe 5.0.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +dependencies = [ + "zstd-safe 6.0.6", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-safe" +version = "6.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.10+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/mover/Xeonacid/code/tos/sources/framework/Cargo.toml b/mover/Xeonacid/code/tos/sources/framework/Cargo.toml new file mode 100644 index 000000000..7812092d6 --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/framework/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "framework" +version = "0.1.0" +edition = "2021" +exclude = ["chall/"] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +quote = "1.0.26" +threadpool = "1.8.1" +proc-macro2 = "1.0.66" + +tokio = { version = "1", features = ["full"] } + +move-core-types = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-core-types" } +move-bytecode-source-map = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-bytecode-source-map" } +move-binary-format = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-binary-format" } +move-symbol-pool = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-symbol-pool" } +move-transactional-test-runner = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-transactional-test-runner" } + +sui-types = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "sui-types"} +sui-transactional-test-runner = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "sui-transactional-test-runner"} + +sui-ctf-framework = { git = "https://github.com/otter-sec/sui-ctf-framework", branch = "justctf2024" } diff --git a/mover/Xeonacid/code/tos/sources/framework/chall/Move.lock b/mover/Xeonacid/code/tos/sources/framework/chall/Move.lock new file mode 100644 index 000000000..0082b0483 --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/framework/chall/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C1FECA3B112600A783F9F421CC2BF9CE00CE66320440DD4E76D8CD5B87B3AD2C" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet-v1.27.0", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet-v1.27.0", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x1daeb25b69be33f2c976d4b8011df68f8db1ed68089ab81d8f3914edf0747023" +latest-published-id = "0x1daeb25b69be33f2c976d4b8011df68f8db1ed68089ab81d8f3914edf0747023" +published-version = "1" diff --git a/mover/Xeonacid/code/tos/sources/framework/chall/Move.toml b/mover/Xeonacid/code/tos/sources/framework/chall/Move.toml new file mode 100644 index 000000000..919e3960d --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/framework/chall/Move.toml @@ -0,0 +1,11 @@ +[package] +name = "challenge" +version = "0.0.1" +edition = "2024.beta" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[addresses] +challenge = "0x0" +admin = "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e" diff --git a/mover/Xeonacid/code/tos/sources/framework/chall/sources/the_otter_scrolls.move b/mover/Xeonacid/code/tos/sources/framework/chall/sources/the_otter_scrolls.move new file mode 100644 index 000000000..79822618a --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/framework/chall/sources/the_otter_scrolls.move @@ -0,0 +1,127 @@ +module challenge::theotterscrolls { + + // --------------------------------------------------- + // DEPENDENCIES + // --------------------------------------------------- + + use sui::table::{Self, Table}; + use std::string::{Self, String}; + use std::debug; + + // --------------------------------------------------- + // STRUCTS + // --------------------------------------------------- + + public struct Spellbook has key { + id: UID, + casted: bool, + spells: Table> + } + + // --------------------------------------------------- + // FUNCTIONS + // --------------------------------------------------- + + //The spell consists of five magic words, which have to be read in the correct order! + + fun init(ctx: &mut TxContext) { + + let mut all_words = table::new(ctx); + + let fire = vector[ + string::utf8(b"Blast"), + string::utf8(b"Inferno"), + string::utf8(b"Pyre"), + string::utf8(b"Fenix"), + string::utf8(b"Ember") + ]; + + let wind = vector[ + string::utf8(b"Zephyr"), + string::utf8(b"Swirl"), + string::utf8(b"Breeze"), + string::utf8(b"Gust"), + string::utf8(b"Sigil") + ]; + + let water = vector[ + string::utf8(b"Aquarius"), + string::utf8(b"Mistwalker"), + string::utf8(b"Waves"), + string::utf8(b"Call"), + string::utf8(b"Storm") + ]; + + let earth = vector[ + string::utf8(b"Tremor"), + string::utf8(b"Stoneheart"), + string::utf8(b"Grip"), + string::utf8(b"Granite"), + string::utf8(b"Mudslide") + ]; + + let power = vector[ + string::utf8(b"Alakazam"), + string::utf8(b"Hocus"), + string::utf8(b"Pocus"), + string::utf8(b"Wazzup"), + string::utf8(b"Wrath") + ]; + + table::add(&mut all_words, 0, fire); + table::add(&mut all_words, 1, wind); + table::add(&mut all_words, 2, water); + table::add(&mut all_words, 3, earth); + table::add(&mut all_words, 4, power); + + let spellbook = Spellbook { + id: object::new(ctx), + casted: false, + spells: all_words + }; + + transfer::share_object(spellbook); + } + + public fun cast_spell(spell_sequence: vector, book: &mut Spellbook) { + + let fire = table::remove(&mut book.spells, 0); + let wind = table::remove(&mut book.spells, 1); + let water = table::remove(&mut book.spells, 2); + let earth = table::remove(&mut book.spells, 3); + let power = table::remove(&mut book.spells, 4); + + let fire_word_id = *vector::borrow(&spell_sequence, 0); + let wind_word_id = *vector::borrow(&spell_sequence, 1); + let water_word_id = *vector::borrow(&spell_sequence, 2); + let earth_word_id = *vector::borrow(&spell_sequence, 3); + let power_word_id = *vector::borrow(&spell_sequence, 4); + + let fire_word = vector::borrow(&fire, fire_word_id); + let wind_word = vector::borrow(&wind, wind_word_id); + let water_word = vector::borrow(&water, water_word_id); + let earth_word = vector::borrow(&earth, earth_word_id); + let power_word = vector::borrow(&power, power_word_id); + + if (fire_word == string::utf8(b"Inferno")) { + if (wind_word == string::utf8(b"Zephyr")) { + if (water_word == string::utf8(b"Call")) { + if (earth_word == string::utf8(b"Granite")) { + if (power_word == string::utf8(b"Wazzup")) { + book.casted = true; + } + } + } + } + } + + } + + public fun check_if_spell_casted(book: &Spellbook): bool { + let casted = book.casted; + assert!(casted == true, 1337); + casted + } + +} + diff --git a/mover/Xeonacid/code/tos/sources/framework/run.sh b/mover/Xeonacid/code/tos/sources/framework/run.sh new file mode 100755 index 000000000..a62fa9ce3 --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/framework/run.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +sed -i \ + -E 's/(host[[:space:]]+all[[:space:]]+all[[:space:]]+127.0.0.1\/32[[:space:]]+)scram-sha-256/\1trust/' \ + /etc/postgresql/16/main/pg_hba.conf + +sed -i \ + -E 's/(host[[:space:]]+all[[:space:]]+all[[:space:]]+::1\/128[[:space:]]+)scram-sha-256/\1trust/' \ + /etc/postgresql/16/main/pg_hba.conf + +/etc/init.d/postgresql restart + +sudo -u postgres psql postgres -c "ALTER ROLE postgres WITH SUPERUSER LOGIN PASSWORD 'postgrespw';" +sudo -u postgres psql postgres -c "CREATE DATABASE sui_indexer_v2;" -c "ALTER SYSTEM SET max_connections = 500;" + +cargo r --release diff --git a/mover/Xeonacid/code/tos/sources/framework/rust-toolchain.toml b/mover/Xeonacid/code/tos/sources/framework/rust-toolchain.toml new file mode 100644 index 000000000..83a52c383 --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/framework/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.76" diff --git a/mover/Xeonacid/code/tos/sources/framework/src/main.rs b/mover/Xeonacid/code/tos/sources/framework/src/main.rs new file mode 100644 index 000000000..c07dd850c --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/framework/src/main.rs @@ -0,0 +1,258 @@ +use std::env; +use std::error::Error; +use std::fmt; +use std::io::{Read, Write}; +use std::mem::drop; +use std::net::{TcpListener, TcpStream}; +use std::path::Path; + +use tokio; + +use move_transactional_test_runner::framework::{MaybeNamedCompiledModule, MoveTestAdapter}; +use move_bytecode_source_map::{source_map::SourceMap, utils::source_map_from_file}; +use move_binary_format::file_format::CompiledModule; +use move_symbol_pool::Symbol; +use move_core_types::{ + account_address::AccountAddress, + language_storage::TypeTag, +}; + +use sui_ctf_framework::NumericalAddress; +use sui_transactional_test_runner::{args::SuiValue, test_adapter::FakeID}; + +async fn handle_client(mut stream: TcpStream) -> Result<(), Box> { + + // Initialize SuiTestAdapter + let modules = vec!["theotterscrolls"]; + let mut deployed_modules: Vec = Vec::new(); + + let named_addresses = vec![ + ( + "challenge".to_string(), + NumericalAddress::parse_str( + "0x0", + )?, + ), + ( + "solve".to_string(), + NumericalAddress::parse_str( + "0x0", + )?, + ), + ( + "admin".to_string(), + NumericalAddress::parse_str( + "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e", + )?, + ), + ]; + + let mut adapter = sui_ctf_framework::initialize( + named_addresses, + Some(vec!["challenger".to_string(), "solver".to_string()]), + ).await; + + // Check Admin Account + let object_output1 = sui_ctf_framework::view_object(&mut adapter, FakeID::Enumerated(0, 0)).await; + println!("Object Output: {:#?}", object_output1); + + let mut mncp_modules : Vec = Vec::new(); + + for i in 0..modules.len() { + + let module = &modules[i]; + + let mod_path = format!("./chall/build/challenge/bytecode_modules/{}.mv", module); + let src_path = format!("./chall/build/challenge/source_maps/{}.mvsm", module); + let mod_bytes: Vec = std::fs::read(mod_path)?; + + let module: CompiledModule = match CompiledModule::deserialize_with_defaults(&mod_bytes) { + Ok(data) => data, + Err(e) => { + return Err(Box::new(e)) + } + }; + let named_addr_opt: Option = Some(Symbol::from("challenge")); + let source_map: Option = match source_map_from_file(Path::new(&src_path)) { + Ok(data) => Some(data), + Err(e) => { + let _ = adapter.cleanup_resources().await; + println!("error: {:?}, src_path: {}", e, src_path); + return Err("error when generating source map".into()) + } + }; + + let maybe_ncm = MaybeNamedCompiledModule { + named_address: named_addr_opt, + module, + source_map, + }; + + mncp_modules.push( maybe_ncm ); + } + + // Publish Challenge Module + let chall_dependencies: Vec = Vec::new(); + let chall_addr = sui_ctf_framework::publish_compiled_module( + &mut adapter, + mncp_modules, + chall_dependencies, + Some(String::from("challenger")), + ).await; + deployed_modules.push(chall_addr); + println!("[SERVER] Module published at: {:?}", chall_addr); + + let mut solution_data = [0 as u8; 2000]; + let _solution_size = stream.read(&mut solution_data)?; + + // Send Challenge Address + let mut output = String::new(); + fmt::write( + &mut output, + format_args!( + "[SERVER] Challenge modules published at: {}", + chall_addr.to_string().as_str(), + ), + ) + .unwrap(); + stream.write(output.as_bytes()).unwrap(); + + // Publish Solution Module + let mut sol_dependencies: Vec = Vec::new(); + sol_dependencies.push(String::from("challenge")); + + let mut mncp_solution : Vec = Vec::new(); + let module: CompiledModule = match CompiledModule::deserialize_with_defaults(&solution_data.to_vec()) { + Ok(data) => data, + Err(e) => { + let _ = adapter.cleanup_resources().await; + return Err(Box::new(e)) + } + }; + let named_addr_opt: Option = Some(Symbol::from("solve")); + let source_map : Option = None; + + let maybe_ncm = MaybeNamedCompiledModule { + named_address: named_addr_opt, + module, + source_map, + }; + mncp_solution.push( maybe_ncm ); + + let sol_addr = sui_ctf_framework::publish_compiled_module( + &mut adapter, + mncp_solution, + sol_dependencies, + Some(String::from("solver")), + ).await; + println!("[SERVER] Solution published at: {:?}", sol_addr); + + // Send Solution Address + output = String::new(); + fmt::write( + &mut output, + format_args!( + "[SERVER] Solution published at {}", + sol_addr.to_string().as_str() + ), + ) + .unwrap(); + stream.write(output.as_bytes()).unwrap(); + + // Prepare Function Call Arguments + let mut args_solve: Vec = Vec::new(); + let spellbook = SuiValue::Object(FakeID::Enumerated(2, 0), None); + args_solve.push(spellbook.clone()); + + let type_args_solve: Vec = Vec::new(); + + // Call solve Function + let ret_val = match sui_ctf_framework::call_function( + &mut adapter, + sol_addr, + "solve", + "solve", + args_solve, + type_args_solve, + Some("solver".to_string()), + ).await { + Ok(output) => output, + Err(e) => { + let _ = adapter.cleanup_resources().await; + println!("[SERVER] error: {e}"); + return Err("error during call to solve::solve".into()) + } + }; + println!("[SERVER] Return value {:#?}", ret_val); + println!(""); + + // Check Solution + let mut args_check: Vec = Vec::new(); + args_check.push(spellbook.clone()); + let type_args_check: Vec = Vec::new(); + + let sol_ret = sui_ctf_framework::call_function( + &mut adapter, + chall_addr, + "theotterscrolls", + "check_if_spell_casted", + args_check, + type_args_check, + Some("solver".to_string()), + ).await; + println!("[SERVER] Return value {:#?}", sol_ret); + println!(""); + + // Validate Solution + match sol_ret { + Ok(_) => { + println!("[SERVER] Correct Solution!"); + println!(""); + if let Ok(flag) = env::var("FLAG") { + let message = format!("[SERVER] Congrats, flag: {}", flag); + stream.write(message.as_bytes()).unwrap(); + } else { + stream.write("[SERVER] Flag not found, please contact admin".as_bytes()).unwrap(); + } + } + Err(_) => { + println!("[SERVER] Invalid Solution!"); + println!(""); + stream.write("[SERVER] Invalid Solution!".as_bytes()).unwrap(); + } + }; + + let _ = adapter.cleanup_resources().await; + Ok(()) +} + +#[tokio::main] +async fn main() -> Result<(), Box> { + // Create Socket - Port 31337 + let listener = TcpListener::bind("0.0.0.0:31337")?; + println!("[SERVER] Starting server at port 31337!"); + + let local = tokio::task::LocalSet::new(); + + // Wait For Incoming Solution + for stream in listener.incoming() { + match stream { + Ok(stream) => { + println!("[SERVER] New connection: {}", stream.peer_addr()?); + let result = local.run_until( async move { + tokio::task::spawn_local( async { + handle_client(stream).await + }).await + }).await; + println!("[SERVER] Result: {:?}", result); + } + Err(e) => { + println!("[SERVER] Error: {}", e); + } + } + } + + // Close Socket Server + drop(listener); + Ok(()) +} diff --git a/mover/Xeonacid/code/tos/sources/run_client.sh b/mover/Xeonacid/code/tos/sources/run_client.sh new file mode 100755 index 000000000..1f78679ba --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/run_client.sh @@ -0,0 +1,5 @@ +set -eux + +cd framework-solve/solve && sui move build +cd .. +cargo r --release diff --git a/mover/Xeonacid/code/tos/sources/run_server.sh b/mover/Xeonacid/code/tos/sources/run_server.sh new file mode 100755 index 000000000..d0f9be966 --- /dev/null +++ b/mover/Xeonacid/code/tos/sources/run_server.sh @@ -0,0 +1,5 @@ +set -eux + +cd framework/chall && sui move build +cd .. +cargo r --release diff --git a/mover/Xeonacid/code/woo/.dockerignore b/mover/Xeonacid/code/woo/.dockerignore new file mode 100644 index 000000000..ec21d0f47 --- /dev/null +++ b/mover/Xeonacid/code/woo/.dockerignore @@ -0,0 +1,2 @@ +**/target +**/build diff --git a/mover/Xeonacid/code/woo/Dockerfile b/mover/Xeonacid/code/woo/Dockerfile new file mode 100644 index 000000000..de77cf555 --- /dev/null +++ b/mover/Xeonacid/code/woo/Dockerfile @@ -0,0 +1,16 @@ +FROM embe221ed/otter_template:latest + +ADD ./sources/framework/chall /work/framework/chall +ADD ./sources/framework/src/main.rs /work/framework/src/ + +# build the challenge contracts +WORKDIR /work/framework/chall +RUN sui move build + +WORKDIR /work/framework + +# build the framework +RUN touch src/main.rs +RUN cargo build --locked --release + +CMD ./run.sh diff --git a/mover/Xeonacid/code/woo/docker-compose.yml b/mover/Xeonacid/code/woo/docker-compose.yml new file mode 100644 index 000000000..7d5bebff5 --- /dev/null +++ b/mover/Xeonacid/code/woo/docker-compose.yml @@ -0,0 +1,11 @@ +services: + woo: + environment: + FLAG: justCTF{REDACTED} + PORT: 31337 + build: + context: ./ + dockerfile: ./Dockerfile + ports: + - "31337:31337" + restart: always diff --git a/mover/Xeonacid/code/woo/sources/framework-solve/Cargo.lock b/mover/Xeonacid/code/woo/sources/framework-solve/Cargo.lock new file mode 100644 index 000000000..d8b563e5e --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/framework-solve/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "solve-framework" +version = "0.1.0" diff --git a/mover/Xeonacid/code/woo/sources/framework-solve/Cargo.toml b/mover/Xeonacid/code/woo/sources/framework-solve/Cargo.toml new file mode 100644 index 000000000..9fc89b2dd --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/framework-solve/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "solve-framework" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/mover/Xeonacid/code/woo/sources/framework-solve/dependency/Move.toml b/mover/Xeonacid/code/woo/sources/framework-solve/dependency/Move.toml new file mode 100644 index 000000000..7a664a598 --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/framework-solve/dependency/Move.toml @@ -0,0 +1,11 @@ +[package] +name = "challenge" +version = "0.0.1" +edition = "2024.beta" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[addresses] +admin = "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e" +challenge = "0xc4c8b6eefb675ba752fd89f6e63e40679126d0cfeca86e34df7fc864e8207e46" diff --git a/mover/Xeonacid/code/woo/sources/framework-solve/dependency/sources/quest.move b/mover/Xeonacid/code/woo/sources/framework-solve/dependency/sources/quest.move new file mode 100644 index 000000000..2fe6fece7 --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/framework-solve/dependency/sources/quest.move @@ -0,0 +1,284 @@ +module challenge::Otter { + + // --------------------------------------------------- + // DEPENDENCIES + // --------------------------------------------------- + + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Balance, Supply}; + use sui::table::{Self, Table}; + use sui::url; + + // --------------------------------------------------- + // CONST + // --------------------------------------------------- + + // STATUSES + const PREPARE_FOR_TROUBLE: u64 = 1; + const ON_ADVENTURE: u64 = 2; + const RESTING: u64 = 3; + const SHOPPING: u64 = 4; + const FINISHED: u64 = 5; + + // ERROR CODES + const WRONG_AMOUNT: u64 = 1337; + const BETTER_GET_EQUIPPED: u64 = 1338; + const WRONG_PLAYER_STATE: u64 = 1339; + const ALREADY_REGISTERED: u64 = 1340; + const TOO_MANY_MONSTERS: u64 = 1341; + const BUY_SOMETHING: u64 = 1342; + const NO_SUCH_PLAYER: u64 = 1343; + const NOT_SOLVED: u64 = 1344; + + // LIMITS + const QUEST_LIMIT: u64 = 25; + + // --------------------------------------------------- + // STRUCTS + // --------------------------------------------------- + + public struct OTTER has drop {} + + public struct OsecSuply has key { + id: UID, + supply: Supply + } + + public struct Vault has key { + id: UID, + cash: Coin + } + + public struct Monster has store { + reward: u64, + power: u64 + } + + public struct QuestBoard has key, store { + id: UID, + quests: vector, + players: Table // + } + + public struct Player has key, store { + id: UID, + user: address, + power: u64, + status: u64, + quest_index: u64, + wallet: Balance + } + + public struct TawernTicket { + total: u64, + flag_bought: bool + } + + // --------------------------------------------------- + // MINT CASH + // --------------------------------------------------- + + fun init(witness: OTTER, ctx: &mut TxContext) { + let (mut treasury, metadata) = coin::create_currency(witness, 9, b"OSEC", b"Osec", b"Otter ca$h", option::some(url::new_unsafe_from_bytes(b"https://osec.io/")), ctx); + transfer::public_freeze_object(metadata); + + let pool_liquidity = coin::mint(&mut treasury, 50000, ctx); + + let vault = Vault { + id: object::new(ctx), + cash: pool_liquidity + }; + + let supply = coin::treasury_into_supply(treasury); + + let osec_supply = OsecSuply { + id: object::new(ctx), + supply + }; + + transfer::transfer(osec_supply, tx_context::sender(ctx)); + + transfer::share_object(QuestBoard { + id: object::new(ctx), + quests: vector::empty(), + players: table::new(ctx) + }); + + transfer::share_object(vault); + } + + public fun mint(sup: &mut OsecSuply, amount: u64, ctx: &mut TxContext): Coin { + let osecBalance = balance::increase_supply(&mut sup.supply, amount); + coin::from_balance(osecBalance, ctx) + } + + public entry fun mint_to(sup: &mut OsecSuply, amount: u64, to: address, ctx: &mut TxContext) { + let osec = mint(sup, amount, ctx); + transfer::public_transfer(osec, to); + } + + public fun burn(sup: &mut OsecSuply, c: Coin): u64 { + balance::decrease_supply(&mut sup.supply, coin::into_balance(c)) + } + + // --------------------------------------------------- + // REGISTER - ADMIN FUNCTION + // --------------------------------------------------- + + public fun register(_: &mut OsecSuply, board: &mut QuestBoard, vault: &mut Vault, player: address, ctx: &mut TxContext) { + assert!(!table::contains(&board.players, player), ALREADY_REGISTERED); + + let new_cash = coin::into_balance(coin::split(&mut vault.cash, 250, ctx)); + + let new_player_obj = Player { + id: object::new(ctx), + user: player, + power: 10, + status: RESTING, + quest_index: 0, + wallet: new_cash + }; + + table::add(&mut board.players, player, false); + + transfer::transfer(new_player_obj, player); + } + + public fun check_winner(board: &QuestBoard, player: address) { + assert!(table::contains(&board.players, player), NO_SUCH_PLAYER); + assert!(table::borrow(&board.players, player) == true, NOT_SOLVED); + } + + // --------------------------------------------------- + // TAVERN + // --------------------------------------------------- + + public fun enter_tavern(player: &mut Player): TawernTicket { + assert!(player.status == RESTING, WRONG_PLAYER_STATE); + + player.status = SHOPPING; + + TawernTicket{ total: 0, flag_bought: false } + } + + public fun buy_flag(ticket: &mut TawernTicket, player: &mut Player) { + assert!(player.status == SHOPPING, WRONG_PLAYER_STATE); + + ticket.total = ticket.total + 537; + ticket.flag_bought = true; + } + + public fun buy_sword(player: &mut Player, ticket: &mut TawernTicket) { + assert!(player.status == SHOPPING, WRONG_PLAYER_STATE); + + player.power = player.power + 213; + ticket.total = ticket.total + 140; + } + + public fun buy_shield(player: &mut Player, ticket: &mut TawernTicket) { + assert!(player.status == SHOPPING, WRONG_PLAYER_STATE); + + player.power = player.power + 7; + ticket.total = ticket.total + 20; + } + + public fun buy_power_of_friendship(player: &mut Player, ticket: &mut TawernTicket) { + assert!(player.status == SHOPPING, WRONG_PLAYER_STATE); + + player.power = player.power + 9000; //it's over 9000! + ticket.total = ticket.total + 190; + } + + public fun checkout(ticket: TawernTicket, player: &mut Player, ctx: &mut TxContext, vault: &mut Vault, board: &mut QuestBoard) { + let TawernTicket{ total, flag_bought } = ticket; + + assert!(total > 0, BUY_SOMETHING); + assert!(balance::value(&player.wallet) >= total, WRONG_AMOUNT); + + let balance = balance::split(&mut player.wallet, total); + let coins = coin::from_balance(balance, ctx); + + coin::join(&mut vault.cash, coins); + + if (flag_bought == true) { + + let flag = table::borrow_mut(&mut board.players, tx_context::sender(ctx)); + *flag = true; + + std::debug::print(&std::string::utf8(b"$$$$$$$$$$$$$$$$$$$$$$$$$ FLAG BOUGHT $$$$$$$$$$$$$$$$$$$$$$$$$")); //debug + }; + + player.status = RESTING; + } + + // --------------------------------------------------- + // ADVENTURE TIME + // --------------------------------------------------- + + public fun find_a_monster(board: &mut QuestBoard, player: &mut Player) { + assert!(player.status != SHOPPING && player.status != FINISHED && player.status != ON_ADVENTURE, WRONG_PLAYER_STATE); + assert!(vector::length(&board.quests) <= QUEST_LIMIT, TOO_MANY_MONSTERS); + + let quest = if (vector::length(&board.quests) % 3 == 0) { + Monster { + reward: 100, + power: 73 + } + } else if (vector::length(&board.quests) % 3 == 1) { + Monster { + reward: 62, + power: 81 + } + } else { + Monster { + reward: 79, + power: 94 + } + }; + + vector::push_back(&mut board.quests, quest); + player.status = PREPARE_FOR_TROUBLE; + } + + public fun bring_it_on(board: &mut QuestBoard, player: &mut Player, quest_id: u64) { + assert!(player.status != SHOPPING && player.status != FINISHED && player.status != RESTING && player.status != ON_ADVENTURE, WRONG_PLAYER_STATE); + + let monster = vector::borrow_mut(&mut board.quests, quest_id); + assert!(player.power > monster.power, BETTER_GET_EQUIPPED); + + player.status = ON_ADVENTURE; + + player.power = 10; //equipment breaks after fighting the monster, and friends go to party :c + monster.power = 0; //you win! wow! + player.quest_index = quest_id; + } + + public fun return_home(board: &mut QuestBoard, player: &mut Player) { + assert!(player.status != SHOPPING && player.status != FINISHED && player.status != RESTING && player.status != PREPARE_FOR_TROUBLE, WRONG_PLAYER_STATE); + + let quest_to_finish = vector::borrow(&board.quests, player.quest_index); + assert!(quest_to_finish.power == 0, WRONG_AMOUNT); + + player.status = FINISHED; + } + + public fun get_the_reward(vault: &mut Vault, board: &mut QuestBoard, player: &mut Player, ctx: &mut TxContext) { + assert!(player.status != RESTING && player.status != PREPARE_FOR_TROUBLE && player.status != ON_ADVENTURE, WRONG_PLAYER_STATE); + + let monster = vector::remove(&mut board.quests, player.quest_index); + + let Monster { + reward: reward, + power: _ + } = monster; + + let coins = coin::split(&mut vault.cash, reward, ctx); + let balance = coin::into_balance(coins); + + balance::join(&mut player.wallet, balance); + + player.status = RESTING; + } + +} + diff --git a/mover/Xeonacid/code/woo/sources/framework-solve/solve/Move.lock b/mover/Xeonacid/code/woo/sources/framework-solve/solve/Move.lock new file mode 100644 index 000000000..1155d02a0 --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/framework-solve/solve/Move.lock @@ -0,0 +1,35 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C1C769E1590ECAC605B85346BAF2BF5B22DC430C53C041491F155F033B979257" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "challenge" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet-v1.27.0", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet-v1.27.0", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "challenge" +source = { local = "../dependency" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.alpha" +flavor = "sui" diff --git a/mover/Xeonacid/code/woo/sources/framework-solve/solve/Move.toml b/mover/Xeonacid/code/woo/sources/framework-solve/solve/Move.toml new file mode 100644 index 000000000..506465652 --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/framework-solve/solve/Move.toml @@ -0,0 +1,14 @@ +[package] +name = "solve" +version = "0.0.1" +edition = "2024.alpha" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[dependencies.challenge] +version = '1.0.0' +local = '../dependency' + +[addresses] +solve = "0x0" diff --git a/mover/Xeonacid/code/woo/sources/framework-solve/solve/sources/solve.move b/mover/Xeonacid/code/woo/sources/framework-solve/solve/sources/solve.move new file mode 100644 index 000000000..9032fc900 --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/framework-solve/solve/sources/solve.move @@ -0,0 +1,39 @@ +module solve::solve { + + // [*] Import dependencies + use challenge::Otter::{Self, OTTER}; + + const QUEST_LIMIT: u64 = 25; + public fun solve( + _board: &mut Otter::QuestBoard, + _vault: &mut Otter::Vault, + _player: &mut Otter::Player, + _ctx: &mut TxContext + ) { + let mut ticket = challenge::Otter::enter_tavern(_player); + challenge::Otter::buy_power_of_friendship(_player, &mut ticket); + challenge::Otter::checkout(ticket, _player, _ctx, _vault, _board); + + let mut i = 0; + while (i < QUEST_LIMIT) { + challenge::Otter::find_a_monster(_board, _player); + i = i + 1; + }; + challenge::Otter::bring_it_on(_board, _player, 0); + challenge::Otter::return_home(_board, _player); + challenge::Otter::get_the_reward(_vault, _board, _player, _ctx); + i = 1; + while (i < QUEST_LIMIT) { + let mut ticket = challenge::Otter::enter_tavern(_player); + challenge::Otter::buy_shield(_player, &mut ticket); + challenge::Otter::get_the_reward(_vault, _board, _player, _ctx); + challenge::Otter::checkout(ticket, _player, _ctx, _vault, _board); + i = i + 1; + }; + + let mut ticket = challenge::Otter::enter_tavern(_player); + challenge::Otter::buy_flag(&mut ticket, _player); + challenge::Otter::checkout(ticket, _player, _ctx, _vault, _board); + } + +} diff --git a/mover/Xeonacid/code/woo/sources/framework-solve/src/main.rs b/mover/Xeonacid/code/woo/sources/framework-solve/src/main.rs new file mode 100644 index 000000000..b887217f8 --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/framework-solve/src/main.rs @@ -0,0 +1,59 @@ +use std::net::TcpStream; +use std::io::{Read, Write}; +use std::str::from_utf8; +use std::{error::Error, fs}; +use std::env; + +fn main() -> Result<(), Box> { + + let host = env::var("HOST").unwrap_or_else(|_| "127.0.0.1".to_string()); // replace with remote ip + let port = env::var("PORT").unwrap_or_else(|_| "31337".to_string()); + + match TcpStream::connect(format!("{}:{}", host, port)) { + Ok(mut stream) => { + println!(" - Connected!"); + + let mod_data : Vec = fs::read("./solve/build/solve/bytecode_modules/solve.mv").unwrap(); + println!(" - Loaded solution!"); + + stream.write_all(&mod_data)?; + stream.flush()?; + println!(" - Sent solution!"); + + let mut return_data1 = [0 as u8; 200]; + match stream.read(&mut return_data1) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&return_data1).unwrap()); // Get module address + let mut return_data2 = [0 as u8; 200]; + match stream.read(&mut return_data2) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&return_data2).unwrap()); // Get module address + let mut flag = [0 as u8; 200]; + match stream.read(&mut flag) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&flag).unwrap()); // Get flag + + }, + Err(e) => { + println!(" - Failed to receive data: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to receive data: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to connect: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to connect: {}", e); + } + } + println!(" - Terminated."); + + Ok(()) +} diff --git a/mover/Xeonacid/code/woo/sources/framework/Cargo.lock b/mover/Xeonacid/code/woo/sources/framework/Cargo.lock new file mode 100644 index 000000000..4319501a1 --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/framework/Cargo.lock @@ -0,0 +1,12692 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "addchain" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" +dependencies = [ + "num-bigint 0.3.3", + "num-integer", + "num-traits", +] + +[[package]] +name = "addr2line" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom 0.2.15", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "aliasable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anemo" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" +dependencies = [ + "anyhow", + "async-trait", + "bincode", + "bytes", + "ed25519", + "futures", + "hex", + "http", + "matchit 0.5.0", + "pin-project-lite", + "pkcs8 0.9.0", + "quinn", + "quinn-proto", + "rand 0.8.5", + "rcgen", + "ring 0.16.20", + "rustls 0.21.12", + "rustls-webpki", + "serde", + "serde_json", + "socket2 0.5.7", + "tap", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "tower", + "tracing", + "x509-parser", +] + +[[package]] +name = "anemo-build" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" +dependencies = [ + "prettyplease 0.1.25", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "anemo-tower" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" +dependencies = [ + "anemo", + "bytes", + "dashmap", + "futures", + "governor", + "nonzero_ext", + "pin-project-lite", + "tokio", + "tower", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "anstream" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" + +[[package]] +name = "anstyle-parse" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +dependencies = [ + "backtrace", +] + +[[package]] +name = "arc-swap" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" +dependencies = [ + "serde", +] + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-crypto-primitives" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-snark", + "ark-std", + "blake2", + "derivative", + "digest 0.10.7", + "sha2 0.10.8", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.5", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.5", + "num-traits", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "ark-groth16" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" +dependencies = [ + "ark-crypto-primitives", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-relations", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-relations" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" +dependencies = [ + "ark-ff", + "ark-std", + "tracing", +] + +[[package]] +name = "ark-secp256r1" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3975a01b0a6e3eae0f72ec7ca8598a6620fc72fa5981f6f5cca33b7cd788f633" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint 0.4.5", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "ark-snark" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" +dependencies = [ + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "ascii_utils" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71938f30533e4d95a6d17aa530939da3842c2ab6f4f84b9dae68447e4129f74a" + +[[package]] +name = "asn1-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "async-compression" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "async-graphql" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298a5d587d6e6fdb271bf56af2dc325a80eb291fd0fc979146584b9a05494a8c" +dependencies = [ + "async-graphql-derive", + "async-graphql-parser", + "async-graphql-value", + "async-stream", + "async-trait", + "base64 0.13.1", + "bytes", + "chrono", + "fast_chemail", + "fnv", + "futures-channel", + "futures-timer", + "futures-util", + "handlebars", + "http", + "indexmap 2.2.6", + "lru 0.7.8", + "mime", + "multer", + "num-traits", + "once_cell", + "opentelemetry 0.21.0", + "pin-project-lite", + "regex", + "serde", + "serde_json", + "serde_urlencoded", + "static_assertions", + "tempfile", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "async-graphql-axum" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a1c20a2059bffbc95130715b23435a05168c518fba9709c81fa2a38eed990c" +dependencies = [ + "async-graphql", + "async-trait", + "axum", + "bytes", + "futures-util", + "serde_json", + "tokio", + "tokio-stream", + "tokio-util 0.7.11", + "tower-service", +] + +[[package]] +name = "async-graphql-derive" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f329c7eb9b646a72f70c9c4b516c70867d356ec46cb00dcac8ad343fd006b0" +dependencies = [ + "Inflector", + "async-graphql-parser", + "darling 0.20.9", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "strum 0.25.0", + "syn 2.0.66", + "thiserror", +] + +[[package]] +name = "async-graphql-parser" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6139181845757fd6a73fbb8839f3d036d7150b798db0e9bb3c6e83cdd65bd53b" +dependencies = [ + "async-graphql-value", + "pest", + "serde", + "serde_json", +] + +[[package]] +name = "async-graphql-value" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "323a5143f5bdd2030f45e3f2e0c821c9b1d36e79cf382129c64299c50a7f3750" +dependencies = [ + "bytes", + "indexmap 2.2.6", + "serde", + "serde_json", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "async-task" +version = "4.3.0" +source = "git+https://github.com/mystenmark/async-task?rev=4e45b26e11126b191701b9b2ce5e2346b8d7682f#4e45b26e11126b191701b9b2ce5e2346b8d7682f" + +[[package]] +name = "async-trait" +version = "0.1.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version", +] + +[[package]] +name = "async_once" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ce4f10ea3abcd6617873bae9f91d1c5332b4a778bd9ce34d0cd517474c1de82" + +[[package]] +name = "atomic_float" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62af46d040ba9df09edc6528dae9d8e49f5f3e82f55b7d2ec31a733c38dbc49d" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "auto_ops" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7460f7dd8e100147b82a63afca1a20eb6c231ee36b90ba7272e14951cb58af59" + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "autotools" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef941527c41b0fc0dd48511a8154cd5fc7e29200a0ff8b7203c5d777dbc795cf" +dependencies = [ + "cc", +] + +[[package]] +name = "axum" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core", + "base64 0.21.7", + "bitflags 1.3.2", + "bytes", + "futures-util", + "headers", + "http", + "http-body", + "hyper", + "itoa", + "matchit 0.7.3", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sha1", + "sync_wrapper", + "tokio", + "tokio-tungstenite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-server" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "447f28c85900215cc1bea282f32d4a2f22d55c5a300afdfbc661c8d6a632e063" +dependencies = [ + "arc-swap", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile", + "tokio", + "tokio-rustls 0.24.1", + "tower-service", +] + +[[package]] +name = "backoff" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +dependencies = [ + "futures-core", + "getrandom 0.2.15", + "instant", + "pin-project-lite", + "rand 0.8.5", + "tokio", +] + +[[package]] +name = "backtrace" +version = "0.3.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64-url" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb9fb9fb058cc3063b5fc88d9a21eefa2735871498a04e1650da76ed511c8569" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bcs" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" +dependencies = [ + "serde", +] + +[[package]] +name = "bellpepper" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae286c2cb403324ab644c7cc68dceb25fe52ca9429908a726d7ed272c1edf7b" +dependencies = [ + "bellpepper-core", + "byteorder", + "ff 0.13.0", +] + +[[package]] +name = "bellpepper-core" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d8abb418570756396d722841b19edfec21d4e89e1cf8990610663040ecb1aea" +dependencies = [ + "blake2s_simd", + "byteorder", + "ff 0.13.0", + "serde", + "thiserror", +] + +[[package]] +name = "better_any" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b359aebd937c17c725e19efcb661200883f04c49c53e7132224dac26da39d4a0" +dependencies = [ + "better_typeid_derive", +] + +[[package]] +name = "better_typeid_derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3deeecb812ca5300b7d3f66f730cc2ebd3511c3d36c691dd79c165d5b19a26e3" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "bimap" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" + +[[package]] +name = "bin-version" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "const-str", + "git-version", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.65.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" +dependencies = [ + "bitflags 1.3.2", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "peeking_take_while", + "prettyplease 0.2.20", + "proc-macro2 1.0.85", + "quote 1.0.36", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.66", +] + +[[package]] +name = "bip32" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b30ed1d6f8437a487a266c8293aeb95b61a23261273e3e02912cdb8b68bf798b" +dependencies = [ + "bs58 0.4.0", + "hmac", + "k256 0.11.6", + "once_cell", + "pbkdf2 0.11.0", + "rand_core 0.6.4", + "ripemd", + "sha2 0.10.8", + "subtle", + "zeroize", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitcoin-private" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57" + +[[package]] +name = "bitcoin_hashes" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d7066118b13d4b20b23645932dfb3a81ce7e29f95726c2036fa33cd7b092501" +dependencies = [ + "bitcoin-private", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + +[[package]] +name = "bitmaps" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" +dependencies = [ + "typenum", +] + +[[package]] +name = "bitvec" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" +dependencies = [ + "funty 1.1.0", + "radium 0.6.2", + "tap", + "wyz 0.2.0", +] + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty 2.0.0", + "radium 0.7.0", + "tap", + "wyz 0.5.1", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "block-padding 0.2.1", + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blst" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62dc83a094a71d43eeadd254b1ec2d24cb6a0bb6cadce00df51f0db594711a32" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff 0.13.0", + "group 0.13.0", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[package]] +name = "bnum" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56953345e39537a3e18bdaeba4cb0c58a78c1f61f361dc0fa7c5c7340ae87c5f" + +[[package]] +name = "brotli" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +dependencies = [ + "sha2 0.9.9", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2 0.10.8", + "tinyvec", +] + +[[package]] +name = "bstr" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "bytecount" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" + +[[package]] +name = "bytemuck" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +dependencies = [ + "serde", +] + +[[package]] +name = "bytes-varint" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54c1820c7c366b9d26c47143e1604454105a59969aade54e4f695d96acc8332f" +dependencies = [ + "bytes", +] + +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "cached" +version = "0.43.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc2fafddf188d13788e7099295a59b99e99b2148ab2195cae454e754cc099925" +dependencies = [ + "async-trait", + "async_once", + "cached_proc_macro", + "cached_proc_macro_types", + "futures", + "hashbrown 0.13.2", + "instant", + "lazy_static", + "once_cell", + "thiserror", + "tokio", +] + +[[package]] +name = "cached_proc_macro" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10ca87c81aaa3a949dbbe2b5e6c2c45dbc94ba4897e45ea31ff9ec5087be3dc" +dependencies = [ + "cached_proc_macro_types", + "darling 0.14.4", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "cached_proc_macro_types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0" + +[[package]] +name = "camino" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cassowary" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.0.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" +dependencies = [ + "jobserver", + "libc", + "once_cell", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-targets 0.52.5", +] + +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" +dependencies = [ + "atty", + "bitflags 1.3.2", + "clap_derive 3.2.25", + "clap_lex 0.2.4", + "indexmap 1.9.3", + "once_cell", + "strsim 0.10.0", + "termcolor", + "textwrap", +] + +[[package]] +name = "clap" +version = "4.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" +dependencies = [ + "clap_builder", + "clap_derive 4.5.5", +] + +[[package]] +name = "clap_builder" +version = "4.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" +dependencies = [ + "anstream", + "anstyle", + "clap_lex 0.7.1", + "strsim 0.11.1", + "terminal_size", +] + +[[package]] +name = "clap_derive" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "clap_derive" +version = "4.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" +dependencies = [ + "heck 0.5.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "clap_lex" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" + +[[package]] +name = "codespan" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3362992a0d9f1dd7c3d0e89e0ab2bb540b7a95fea8cd798090e758fda2899b5e" +dependencies = [ + "codespan-reporting", + "serde", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "serde", + "termcolor", + "unicode-width", +] + +[[package]] +name = "coins-bip32" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +dependencies = [ + "bs58 0.5.1", + "coins-core", + "digest 0.10.7", + "hmac", + "k256 0.13.3", + "serde", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-bip39" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +dependencies = [ + "bitvec 1.0.1", + "coins-bip32", + "hmac", + "once_cell", + "pbkdf2 0.12.2", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-core" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +dependencies = [ + "base64 0.21.7", + "bech32", + "bs58 0.5.1", + "digest 0.10.7", + "generic-array", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2 0.10.8", + "sha3 0.10.8", + "thiserror", +] + +[[package]] +name = "collectable" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08abddbaad209601e53c7dd4308d8c04c06f17bb7df006434e586a22b83be45a" + +[[package]] +name = "colorchoice" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" + +[[package]] +name = "colored" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +dependencies = [ + "lazy_static", + "windows-sys 0.48.0", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "consensus-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto", + "mysten-network", + "rand 0.8.5", + "serde", + "shared-crypto", +] + +[[package]] +name = "consensus-core" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-build", + "anemo-tower", + "anyhow", + "arc-swap", + "async-trait", + "base64 0.21.7", + "bcs", + "bytes", + "cfg-if", + "consensus-config", + "dashmap", + "enum_dispatch", + "fastcrypto", + "futures", + "http", + "hyper", + "hyper-rustls 0.24.2", + "itertools 0.10.5", + "mockall", + "mysten-common", + "mysten-metrics", + "mysten-network", + "nom", + "parking_lot 0.12.3", + "prometheus", + "prost 0.12.6", + "quinn-proto", + "rand 0.8.5", + "rustls 0.21.12", + "serde", + "shared-crypto", + "sui-macros", + "sui-protocol-config", + "sui-tls", + "tap", + "thiserror", + "tokio", + "tokio-rustls 0.24.1", + "tokio-stream", + "tokio-util 0.7.11", + "tonic 0.11.0", + "tonic-build", + "tower", + "tower-http", + "tracing", + "typed-store", +] + +[[package]] +name = "console" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.52.0", +] + +[[package]] +name = "const-hex" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-str" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3618cccc083bb987a415d85c02ca6c9994ea5b44731ec28b9ecf09658655fba9" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + +[[package]] +name = "count-min-sketch" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca319fe30d7b68949da20d78b612215708af87157d49665a4545dadcc20fecc7" +dependencies = [ + "rand 0.8.5", + "siphasher", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap 4.5.7", + "criterion-plot", + "futures", + "is-terminal", + "itertools 0.10.5", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "tokio", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools 0.10.5", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crossterm" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" +dependencies = [ + "bitflags 1.3.2", + "crossterm_winapi", + "libc", + "mio", + "parking_lot 0.12.3", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "csv" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" +dependencies = [ + "memchr", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.6.4", + "subtle-ng", + "zeroize", +] + +[[package]] +name = "darling" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core 0.14.4", + "darling_macro 0.14.4", +] + +[[package]] +name = "darling" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" +dependencies = [ + "darling_core 0.20.9", + "darling_macro 0.20.9", +] + +[[package]] +name = "darling_core" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.85", + "quote 1.0.36", + "strsim 0.10.0", + "syn 1.0.109", +] + +[[package]] +name = "darling_core" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.85", + "quote 1.0.36", + "strsim 0.11.1", + "syn 2.0.66", +] + +[[package]] +name = "darling_macro" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +dependencies = [ + "darling_core 0.14.4", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" +dependencies = [ + "darling_core 0.20.9", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + +[[package]] +name = "data-encoding-macro" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" +dependencies = [ + "data-encoding", + "syn 1.0.109", +] + +[[package]] +name = "deadpool" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "421fe0f90f2ab22016f32a9881be5134fdd71c65298917084b0c7477cbc3856e" +dependencies = [ + "async-trait", + "deadpool-runtime", + "num_cpus", + "retain_mut", + "tokio", +] + +[[package]] +name = "deadpool-runtime" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "092966b41edc516079bdf31ec78a2e0588d1d0c08f78b91d8307215928642b2b" + +[[package]] +name = "der" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +dependencies = [ + "const-oid", + "pem-rfc7468 0.6.0", + "zeroize", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "pem-rfc7468 0.7.0", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint 0.4.5", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "derive-syn-parse" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" +dependencies = [ + "darling 0.14.4", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder_macro" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" +dependencies = [ + "derive_builder_core", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "diesel" +version = "2.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff236accb9a5069572099f0b350a92e9560e8e63a9b8d546162f4a5e03026bb2" +dependencies = [ + "bitflags 2.5.0", + "byteorder", + "chrono", + "diesel_derives", + "itoa", + "pq-sys", + "r2d2", + "serde_json", +] + +[[package]] +name = "diesel-async" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e7974099f0d9bde0e010dd3a673555276a474f3362a7a52ab535a57b7c5056" +dependencies = [ + "async-trait", + "deadpool", + "diesel", + "futures-util", + "scoped-futures", + "tokio", + "tokio-postgres", +] + +[[package]] +name = "diesel-derive-enum" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81c5131a2895ef64741dad1d483f358c2a229a3a2d1b256778cdc5e146db64d4" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "diesel_derives" +version = "2.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14701062d6bed917b5c7103bdffaee1e4609279e240488ad24e7bd979ca6866c" +dependencies = [ + "diesel_table_macro_syntax", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "diesel_migrations" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6036b3f0120c5961381b570ee20a02432d7e2d27ea60de9578799cf9156914ac" +dependencies = [ + "diesel", + "migrations_internals", + "migrations_macros", +] + +[[package]] +name = "diesel_table_macro_syntax" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5" +dependencies = [ + "syn 2.0.66", +] + +[[package]] +name = "difference" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" + +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + +[[package]] +name = "diffy" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e616e59155c92257e84970156f506287853355f58cd4a6eb167385722c32b790" +dependencies = [ + "nu-ansi-term", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys 0.3.7", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys 0.4.1", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + +[[package]] +name = "downcast" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + +[[package]] +name = "ecdsa" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" +dependencies = [ + "der 0.6.1", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", +] + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der 0.7.9", + "digest 0.10.7", + "elliptic-curve 0.13.8", + "rfc6979 0.4.0", + "signature 2.2.0", + "spki 0.7.3", +] + +[[package]] +name = "ed25519" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +dependencies = [ + "pkcs8 0.9.0", + "signature 1.6.4", + "zeroize", +] + +[[package]] +name = "ed25519-consensus" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" +dependencies = [ + "curve25519-dalek-ng", + "hex", + "rand_core 0.6.4", + "serde", + "sha2 0.9.9", + "thiserror", + "zeroize", +] + +[[package]] +name = "either" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" + +[[package]] +name = "elliptic-curve" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +dependencies = [ + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.1", + "digest 0.10.7", + "ff 0.12.1", + "generic-array", + "group 0.12.1", + "rand_core 0.6.4", + "sec1 0.3.0", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct 0.2.0", + "crypto-bigint 0.5.5", + "digest 0.10.7", + "ff 0.13.0", + "generic-array", + "group 0.13.0", + "pem-rfc7468 0.7.0", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "sec1 0.7.3", + "subtle", + "zeroize", +] + +[[package]] +name = "ena" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +dependencies = [ + "log", +] + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enr" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +dependencies = [ + "base64 0.21.7", + "bytes", + "hex", + "k256 0.13.3", + "log", + "rand 0.8.5", + "rlp", + "serde", + "sha3 0.10.8", + "zeroize", +] + +[[package]] +name = "enum-compat-util" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "serde_yaml", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "erasable" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f11890ce181d47a64e5d1eb4b6caba0e7bae911a356723740d058a5d0340b7d" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "eth-keystore" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" +dependencies = [ + "aes", + "ctr", + "digest 0.10.7", + "hex", + "hmac", + "pbkdf2 0.11.0", + "rand 0.8.5", + "scrypt", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3 0.10.8", + "thiserror", + "uuid 0.8.2", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3 0.10.8", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "primitive-types 0.12.2", + "scale-info", + "uint", +] + +[[package]] +name = "ethers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" +dependencies = [ + "ethers-addressbook", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-middleware", + "ethers-providers", + "ethers-signers", + "ethers-solc", +] + +[[package]] +name = "ethers-addressbook" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" +dependencies = [ + "ethers-core", + "once_cell", + "serde", + "serde_json", +] + +[[package]] +name = "ethers-contract" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" +dependencies = [ + "const-hex", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "futures-util", + "once_cell", + "pin-project", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "ethers-contract-abigen" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" +dependencies = [ + "Inflector", + "const-hex", + "dunce", + "ethers-core", + "ethers-etherscan", + "eyre", + "prettyplease 0.2.20", + "proc-macro2 1.0.85", + "quote 1.0.36", + "regex", + "reqwest", + "serde", + "serde_json", + "syn 2.0.66", + "toml 0.8.14", + "walkdir", +] + +[[package]] +name = "ethers-contract-derive" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" +dependencies = [ + "Inflector", + "const-hex", + "ethers-contract-abigen", + "ethers-core", + "proc-macro2 1.0.85", + "quote 1.0.36", + "serde_json", + "syn 2.0.66", +] + +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" +dependencies = [ + "arrayvec", + "bytes", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve 0.13.8", + "ethabi", + "generic-array", + "k256 0.13.3", + "num_enum 0.7.2", + "once_cell", + "open-fastrlp", + "rand 0.8.5", + "rlp", + "serde", + "serde_json", + "strum 0.26.2", + "syn 2.0.66", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid 0.2.4", +] + +[[package]] +name = "ethers-etherscan" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" +dependencies = [ + "chrono", + "ethers-core", + "reqwest", + "semver", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-middleware" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" +dependencies = [ + "async-trait", + "auto_impl", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-providers", + "ethers-signers", + "futures-channel", + "futures-locks", + "futures-util", + "instant", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", +] + +[[package]] +name = "ethers-providers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.21.7", + "bytes", + "const-hex", + "enr", + "ethers-core", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "http", + "instant", + "jsonwebtoken", + "once_cell", + "pin-project", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-tungstenite", + "tracing", + "tracing-futures", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "ws_stream_wasm", +] + +[[package]] +name = "ethers-signers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" +dependencies = [ + "async-trait", + "coins-bip32", + "coins-bip39", + "const-hex", + "elliptic-curve 0.13.8", + "eth-keystore", + "ethers-core", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-solc" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" +dependencies = [ + "cfg-if", + "const-hex", + "dirs 5.0.1", + "dunce", + "ethers-core", + "glob", + "home", + "md-5", + "num_cpus", + "once_cell", + "path-slash", + "rayon", + "regex", + "semver", + "serde", + "serde_json", + "solang-parser", + "svm-rs", + "thiserror", + "tiny-keccak", + "tokio", + "tracing", + "walkdir", + "yansi", +] + +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fail" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be3c61c59fdc91f5dbc3ea31ee8623122ce80057058be560654c5d410d181a6" +dependencies = [ + "lazy_static", + "log", + "rand 0.7.3", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fast_chemail" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "495a39d30d624c2caabe6312bfead73e7717692b44e0b32df168c275a2e8e9e4" +dependencies = [ + "ascii_utils", +] + +[[package]] +name = "fastcrypto" +version = "0.1.8" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "aes", + "aes-gcm", + "ark-ec", + "ark-ff", + "ark-secp256r1", + "ark-serialize", + "auto_ops", + "base64ct", + "bech32", + "bincode", + "blake2", + "blst", + "bs58 0.4.0", + "cbc", + "ctr", + "curve25519-dalek-ng", + "derive_more", + "digest 0.10.7", + "ecdsa 0.16.9", + "ed25519-consensus", + "elliptic-curve 0.13.8", + "fastcrypto-derive", + "generic-array", + "hex", + "hex-literal", + "hkdf", + "lazy_static", + "num-bigint 0.4.5", + "once_cell", + "p256", + "rand 0.8.5", + "readonly", + "rfc6979 0.4.0", + "rsa", + "schemars", + "secp256k1", + "serde", + "serde_json", + "serde_with 2.3.3", + "sha2 0.10.8", + "sha3 0.10.8", + "signature 2.2.0", + "static_assertions", + "thiserror", + "tokio", + "typenum", + "zeroize", +] + +[[package]] +name = "fastcrypto-derive" +version = "0.1.3" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "fastcrypto-tbls" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "bcs", + "digest 0.10.7", + "fastcrypto", + "hex", + "itertools 0.10.5", + "rand 0.8.5", + "serde", + "sha3 0.10.8", + "tap", + "tracing", + "typenum", +] + +[[package]] +name = "fastcrypto-vdf" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "bcs", + "fastcrypto", + "lazy_static", + "num-bigint 0.4.5", + "num-integer", + "num-prime", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "serde", + "serde_with 2.3.3", +] + +[[package]] +name = "fastcrypto-zkp" +version = "0.1.3" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "ark-bls12-381", + "ark-bn254", + "ark-ec", + "ark-ff", + "ark-groth16", + "ark-relations", + "ark-serialize", + "ark-snark", + "blst", + "byte-slice-cast", + "derive_more", + "fastcrypto", + "ff 0.13.0", + "im", + "itertools 0.12.1", + "lazy_static", + "neptune", + "num-bigint 0.4.5", + "once_cell", + "regex", + "reqwest", + "schemars", + "serde", + "serde_json", + "typenum", +] + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fdlimit" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" +dependencies = [ + "libc", +] + +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "bitvec 1.0.1", + "byteorder", + "ff_derive", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff_derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f54704be45ed286151c5e11531316eaef5b8f5af7d597b806fdb8af108d84a" +dependencies = [ + "addchain", + "cfg-if", + "num-bigint 0.3.3", + "num-integer", + "num-traits", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "filetime" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "windows-sys 0.52.0", +] + +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fragile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" + +[[package]] +name = "framework" +version = "0.1.0" +dependencies = [ + "move-binary-format", + "move-bytecode-source-map", + "move-core-types", + "move-symbol-pool", + "move-transactional-test-runner", + "proc-macro2 1.0.85", + "quote 1.0.36", + "sui-ctf-framework", + "sui-transactional-test-runner", + "sui-types", + "threadpool", + "tokio", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "fsevent-sys" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +dependencies = [ + "libc", +] + +[[package]] +name = "funty" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-locks" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" +dependencies = [ + "futures-channel", + "futures-task", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "serde", + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "ghash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +dependencies = [ + "opaque-debug", + "polyval", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + +[[package]] +name = "git-version" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19" +dependencies = [ + "git-version-macro", +] + +[[package]] +name = "git-version-macro" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "globset" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "governor" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" +dependencies = [ + "cfg-if", + "dashmap", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot 0.12.3", + "portable-atomic", + "quanta", + "rand 0.8.5", + "smallvec", + "spinning_top", +] + +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff 0.12.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", + "rand 0.8.5", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.2.6", + "slab", + "tokio", + "tokio-util 0.7.11", + "tracing", +] + +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "handlebars" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" +dependencies = [ + "log", + "pest", + "pest_derive", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.8", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.11", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash 0.8.11", + "allocator-api2", +] + +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +dependencies = [ + "fxhash", +] + +[[package]] +name = "hdrhistogram" +version = "7.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" +dependencies = [ + "base64 0.21.7", + "byteorder", + "crossbeam-channel", + "flate2", + "nom", + "num-traits", +] + +[[package]] +name = "headers" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +dependencies = [ + "base64 0.21.7", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "hmac-sha512" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e806677ce663d0a199541030c816847b36e8dc095f70dae4a4f4ad63da5383" + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" + +[[package]] +name = "httparse" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0e7a4dd27b9476dc40cb050d3632d3bba3a70ddbff012285f7f8559a1e7e545" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.7", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +dependencies = [ + "http", + "hyper", + "log", + "rustls 0.20.9", + "rustls-native-certs", + "tokio", + "tokio-rustls 0.23.4", + "webpki-roots 0.22.6", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http", + "hyper", + "log", + "rustls 0.21.12", + "rustls-native-certs", + "tokio", + "tokio-rustls 0.24.1", + "webpki-roots 0.25.4", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed" +dependencies = [ + "icu_normalizer", + "icu_properties", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "im" +version = "15.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" +dependencies = [ + "bitmaps", + "rand_core 0.6.4", + "rand_xoshiro", + "sized-chunks", + "typenum", + "version_check", +] + +[[package]] +name = "impl-codec" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" +dependencies = [ + "parity-scale-codec 2.3.1", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec 3.6.12", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "indicatif" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +dependencies = [ + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", +] + +[[package]] +name = "inotify" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +dependencies = [ + "bitflags 1.3.2", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding 0.3.3", + "generic-array", +] + +[[package]] +name = "insta" +version = "1.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "810ae6042d48e2c9e9215043563a58a80b877bc863228a74cf10c49d4620a6f5" +dependencies = [ + "console", + "lazy_static", + "linked-hash-map", + "pest", + "pest_derive", + "serde", + "similar", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "integer-encoding" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "iri-string" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f0f7638c1e223529f1bfdc48c8b133b9e0b434094d1d28473161ee48b235f78" +dependencies = [ + "nom", +] + +[[package]] +name = "is-terminal" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jobserver" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json_to_table" +version = "0.6.0" +source = "git+https://github.com/zhiburt/tabled/?rev=e449317a1c02eb6b29e409ad6617e5d9eb7b3bd4#e449317a1c02eb6b29e409ad6617e5d9eb7b3bd4" +dependencies = [ + "serde_json", + "tabled", +] + +[[package]] +name = "jsonrpsee" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "jsonrpsee-core", + "jsonrpsee-http-client", + "jsonrpsee-proc-macros", + "jsonrpsee-server", + "jsonrpsee-types", + "jsonrpsee-ws-client", + "tracing", +] + +[[package]] +name = "jsonrpsee-client-transport" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "futures-util", + "http", + "jsonrpsee-core", + "jsonrpsee-types", + "pin-project", + "rustls-native-certs", + "soketto", + "thiserror", + "tokio", + "tokio-rustls 0.23.4", + "tokio-util 0.7.11", + "tracing", + "webpki-roots 0.22.6", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "anyhow", + "arrayvec", + "async-lock", + "async-trait", + "beef", + "futures-channel", + "futures-timer", + "futures-util", + "globset", + "hyper", + "jsonrpsee-types", + "parking_lot 0.12.3", + "rand 0.8.5", + "rustc-hash", + "serde", + "serde_json", + "soketto", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-http-client" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "async-trait", + "hyper", + "hyper-rustls 0.23.2", + "jsonrpsee-core", + "jsonrpsee-types", + "rustc-hash", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "jsonrpsee-server" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "futures-channel", + "futures-util", + "http", + "hyper", + "jsonrpsee-core", + "jsonrpsee-types", + "serde", + "serde_json", + "soketto", + "tokio", + "tokio-stream", + "tokio-util 0.7.11", + "tower", + "tracing", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "anyhow", + "beef", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "jsonrpsee-ws-client" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "http", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", +] + +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.7", + "pem", + "ring 0.16.20", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "k256" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +dependencies = [ + "cfg-if", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", + "sha2 0.10.8", + "sha3 0.10.8", +] + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "once_cell", + "sha2 0.10.8", + "signature 2.2.0", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "kqueue" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set", + "ena", + "itertools 0.11.0", + "lalrpop-util", + "petgraph 0.6.5", + "regex", + "regex-syntax 0.8.4", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid 0.2.4", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +dependencies = [ + "regex-automata 0.4.7", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libloading" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +dependencies = [ + "cfg-if", + "windows-targets 0.52.5", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.5.0", + "libc", +] + +[[package]] +name = "librocksdb-sys" +version = "0.11.0+8.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" +dependencies = [ + "bindgen", + "bzip2-sys", + "cc", + "glob", + "libc", + "libz-sys", + "lz4-sys", + "zstd-sys", +] + +[[package]] +name = "libz-sys" +version = "1.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +dependencies = [ + "serde", +] + +[[package]] +name = "lru" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" +dependencies = [ + "hashbrown 0.12.3", +] + +[[package]] +name = "lru" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" +dependencies = [ + "hashbrown 0.13.2", +] + +[[package]] +name = "lru" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" +dependencies = [ + "hashbrown 0.14.5", +] + +[[package]] +name = "lz4-sys" +version = "1.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9764018d143cc854c9f17f0b907de70f14393b1f502da6375dce70f00514eb3" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "markdown-gen" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8034621d7f1258317ca1dfb9205e3925d27ee4aa2a46620a09c567daf0310562" + +[[package]] +name = "match_opt" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "405ba1524a1e6ae755334d6966380c60ec40157e0155f9032dd3c294b6384da9" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchit" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + +[[package]] +name = "memchr" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" + +[[package]] +name = "migrations_internals" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f23f71580015254b020e856feac3df5878c2c7a8812297edd6c0a485ac9dada" +dependencies = [ + "serde", + "toml 0.7.8", +] + +[[package]] +name = "migrations_macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cce3325ac70e67bbab5bd837a31cae01f1a6db64e0e744a33cb03a543469ef08" +dependencies = [ + "migrations_internals", + "proc-macro2 1.0.85", + "quote 1.0.36", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "mockall" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "lazy_static", + "mockall_derive", + "predicates", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +dependencies = [ + "cfg-if", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "moka" +version = "0.12.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0d88686dc561d743b40de8269b26eaf0dc58781bde087b0984646602021d08" +dependencies = [ + "crossbeam-channel", + "crossbeam-epoch", + "crossbeam-utils", + "once_cell", + "parking_lot 0.12.3", + "rustc_version", + "smallvec", + "tagptr", + "thiserror", + "triomphe", + "uuid 1.8.0", +] + +[[package]] +name = "move-abstract-interpreter" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", + "move-bytecode-verifier-meter", +] + +[[package]] +name = "move-abstract-interpreter-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", +] + +[[package]] +name = "move-abstract-stack" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" + +[[package]] +name = "move-binary-format" +version = "0.0.3" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "enum-compat-util", + "move-core-types", + "move-proc-macros", + "ref-cast", + "serde", + "variant_count", +] + +[[package]] +name = "move-borrow-graph" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" + +[[package]] +name = "move-bytecode-source-map" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "move-symbol-pool", + "serde", +] + +[[package]] +name = "move-bytecode-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "move-binary-format", + "move-core-types", + "petgraph 0.5.1", + "serde-reflection", +] + +[[package]] +name = "move-bytecode-verifier" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-verifier-meter" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", + "move-core-types", + "move-vm-config", +] + +[[package]] +name = "move-bytecode-verifier-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter-v2", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-verifier-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter-v2", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-verifier-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter-v2", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-viewer" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "clap 4.5.7", + "crossterm", + "move-binary-format", + "move-bytecode-source-map", + "move-disassembler", + "regex", + "tui", +] + +[[package]] +name = "move-cli" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "codespan-reporting", + "colored", + "difference", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-viewer", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-coverage", + "move-disassembler", + "move-docgen", + "move-errmapgen", + "move-ir-types", + "move-package", + "move-prover", + "move-stdlib", + "move-stdlib-natives", + "move-unit-test", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "serde_yaml", + "tempfile", + "toml_edit 0.14.4", + "walkdir", +] + +[[package]] +name = "move-command-line-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "difference", + "dirs-next", + "hex", + "move-core-types", + "num-bigint 0.4.5", + "once_cell", + "serde", + "sha2 0.9.9", + "vfs", + "walkdir", +] + +[[package]] +name = "move-compiler" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "codespan-reporting", + "dunce", + "hex", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-source-map", + "move-bytecode-verifier", + "move-command-line-common", + "move-core-types", + "move-ir-to-bytecode", + "move-ir-types", + "move-proc-macros", + "move-symbol-pool", + "once_cell", + "petgraph 0.5.1", + "regex", + "serde", + "serde_json", + "similar", + "stacker", + "tempfile", + "vfs", +] + +[[package]] +name = "move-core-types" +version = "0.0.4" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "enum-compat-util", + "ethnum", + "hex", + "leb128", + "move-proc-macros", + "num", + "once_cell", + "primitive-types 0.10.1", + "rand 0.8.5", + "ref-cast", + "serde", + "serde_bytes", + "thiserror", + "uint", +] + +[[package]] +name = "move-coverage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "codespan", + "colored", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "petgraph 0.5.1", + "serde", +] + +[[package]] +name = "move-disassembler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "colored", + "hex", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-coverage", + "move-ir-types", +] + +[[package]] +name = "move-docgen" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "codespan", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-compiler", + "move-model", + "num", + "once_cell", + "regex", + "serde", +] + +[[package]] +name = "move-errmapgen" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "move-command-line-common", + "move-core-types", + "move-model", + "serde", +] + +[[package]] +name = "move-ir-compiler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-verifier", + "move-command-line-common", + "move-ir-to-bytecode", + "serde_json", +] + +[[package]] +name = "move-ir-to-bytecode" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "codespan-reporting", + "log", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-core-types", + "move-ir-to-bytecode-syntax", + "move-ir-types", + "move-symbol-pool", + "ouroboros", +] + +[[package]] +name = "move-ir-to-bytecode-syntax" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "hex", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "move-symbol-pool", +] + +[[package]] +name = "move-ir-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-command-line-common", + "move-core-types", + "move-symbol-pool", + "once_cell", + "serde", +] + +[[package]] +name = "move-model" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "codespan", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-disassembler", + "move-ir-types", + "move-symbol-pool", + "num", + "once_cell", + "regex", + "serde", +] + +[[package]] +name = "move-package" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "clap 4.5.7", + "colored", + "itertools 0.10.5", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-docgen", + "move-model", + "move-symbol-pool", + "named-lock", + "once_cell", + "petgraph 0.5.1", + "regex", + "serde", + "serde_yaml", + "sha2 0.9.9", + "tempfile", + "toml 0.5.11", + "toml_edit 0.14.4", + "treeline", + "vfs", + "walkdir", + "whoami", +] + +[[package]] +name = "move-proc-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "enum-compat-util", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "move-prover" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "clap 4.5.7", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-command-line-common", + "move-compiler", + "move-docgen", + "move-errmapgen", + "move-model", + "move-stackless-bytecode", + "once_cell", + "serde", + "simplelog", + "toml 0.5.11", +] + +[[package]] +name = "move-stackless-bytecode" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "codespan", + "codespan-reporting", + "ethnum", + "im", + "itertools 0.10.5", + "log", + "move-binary-format", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-model", + "num", + "petgraph 0.5.1", + "serde", +] + +[[package]] +name = "move-stdlib" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "hex", + "log", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "move-docgen", + "move-errmapgen", + "move-prover", + "move-stdlib-natives", + "move-vm-runtime", + "sha2 0.9.9", + "walkdir", +] + +[[package]] +name = "move-stdlib-natives" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-stdlib-natives-v0" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime-v0", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-stdlib-natives-v1" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime-v1", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-stdlib-natives-v2" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime-v2", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-symbol-pool" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "once_cell", + "phf", + "serde", +] + +[[package]] +name = "move-transactional-test-runner" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "clap 4.5.7", + "move-binary-format", + "move-bytecode-source-map", + "move-cli", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-disassembler", + "move-ir-compiler", + "move-ir-types", + "move-stdlib", + "move-stdlib-natives", + "move-symbol-pool", + "move-vm-config", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "once_cell", + "rayon", + "regex", + "tempfile", + "tokio", +] + +[[package]] +name = "move-unit-test" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "better_any", + "clap 4.5.7", + "codespan-reporting", + "colored", + "itertools 0.10.5", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-ir-types", + "move-model", + "move-stdlib", + "move-stdlib-natives", + "move-symbol-pool", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "once_cell", + "rand 0.8.5", + "rayon", + "regex", +] + +[[package]] +name = "move-vm-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", + "once_cell", +] + +[[package]] +name = "move-vm-profiler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-vm-config", + "once_cell", + "serde", + "serde_json", + "tracing", +] + +[[package]] +name = "move-vm-runtime" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-runtime-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier-v0", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-runtime-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier-v1", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-runtime-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier-v2", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-test-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "move-binary-format", + "move-core-types", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "serde", +] + +[[package]] +name = "move-vm-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "move-binary-format", + "move-core-types", + "move-vm-profiler", + "serde", + "smallvec", +] + +[[package]] +name = "msim" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=077b735b484cf33e79f9d621db1d0c3a5827b81e#077b735b484cf33e79f9d621db1d0c3a5827b81e" +dependencies = [ + "ahash 0.7.8", + "async-task", + "bincode", + "bytes", + "cc", + "downcast-rs", + "erasable", + "futures", + "lazy_static", + "libc", + "msim-macros", + "naive-timer", + "pin-project-lite", + "rand 0.8.5", + "real_tokio", + "serde", + "socket2 0.4.10", + "tap", + "tokio-util 0.7.10", + "toml 0.5.11", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "msim-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=077b735b484cf33e79f9d621db1d0c3a5827b81e#077b735b484cf33e79f9d621db1d0c3a5827b81e" +dependencies = [ + "darling 0.14.4", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "multer" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" +dependencies = [ + "bytes", + "encoding_rs", + "futures-util", + "http", + "httparse", + "log", + "memchr", + "mime", + "spin 0.9.8", + "version_check", +] + +[[package]] +name = "multiaddr" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "log", + "multibase", + "multihash", + "percent-encoding", + "serde", + "static_assertions", + "unsigned-varint", + "url", +] + +[[package]] +name = "multibase" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +dependencies = [ + "base-x", + "data-encoding", + "data-encoding-macro", +] + +[[package]] +name = "multihash" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" +dependencies = [ + "core2", + "multihash-derive", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "multimap" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" + +[[package]] +name = "mysten-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "parking_lot 0.12.3", + "tokio", +] + +[[package]] +name = "mysten-metrics" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "axum", + "dashmap", + "futures", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "prometheus-closure-metric", + "scopeguard", + "tap", + "tokio", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "mysten-network" +version = "0.2.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "bcs", + "bytes", + "eyre", + "futures", + "http", + "multiaddr", + "pin-project-lite", + "serde", + "snap", + "tokio", + "tokio-stream", + "tonic 0.11.0", + "tonic-health", + "tower", + "tower-http", + "tracing", +] + +[[package]] +name = "mysten-util-mem" +version = "0.11.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "cfg-if", + "ed25519-consensus", + "fastcrypto", + "fastcrypto-tbls", + "hashbrown 0.12.3", + "impl-trait-for-tuples", + "indexmap 2.2.6", + "mysten-util-mem-derive", + "once_cell", + "parking_lot 0.12.3", + "roaring", + "smallvec", +] + +[[package]] +name = "mysten-util-mem-derive" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "proc-macro2 1.0.85", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "naive-timer" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034a0ad7deebf0c2abcf2435950a6666c3c15ea9d8fad0c0f48efa8a7f843fed" + +[[package]] +name = "named-lock" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40a3eb6b7c682b65d1f631ec3176829d72ab450b3aacdd3f719bf220822e59ac" +dependencies = [ + "libc", + "once_cell", + "parking_lot 0.12.3", + "thiserror", + "widestring", + "winapi", +] + +[[package]] +name = "narwhal-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto", + "match_opt", + "mysten-network", + "mysten-util-mem", + "narwhal-crypto", + "rand 0.8.5", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "narwhal-crypto" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "fastcrypto", + "serde", + "shared-crypto", +] + +[[package]] +name = "narwhal-executor" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "bcs", + "bincode", + "bytes", + "fastcrypto", + "futures", + "mockall", + "mysten-metrics", + "narwhal-config", + "narwhal-crypto", + "narwhal-network", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "prometheus", + "serde", + "sui-protocol-config", + "thiserror", + "tokio", + "tonic 0.11.0", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-network" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "async-trait", + "axum", + "axum-server", + "backoff", + "bytes", + "dashmap", + "futures", + "mysten-common", + "mysten-metrics", + "narwhal-crypto", + "narwhal-types", + "parking_lot 0.12.3", + "prometheus", + "quinn-proto", + "rand 0.8.5", + "sui-macros", + "tokio", + "tower", + "tracing", +] + +[[package]] +name = "narwhal-node" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "arc-swap", + "async-trait", + "axum", + "bytes", + "cfg-if", + "clap 4.5.7", + "eyre", + "fastcrypto", + "futures", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "narwhal-worker", + "prometheus", + "rand 0.8.5", + "reqwest", + "sui-keys", + "sui-protocol-config", + "sui-types", + "telemetry-subscribers", + "thiserror", + "tokio", + "tokio-stream", + "tracing", + "tracing-subscriber", + "url", +] + +[[package]] +name = "narwhal-primary" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "async-trait", + "backoff", + "bcs", + "bytes", + "cfg-if", + "fastcrypto", + "futures", + "governor", + "itertools 0.10.5", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-network", + "narwhal-storage", + "narwhal-types", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "rand 0.8.5", + "sui-macros", + "sui-protocol-config", + "tap", + "thiserror", + "tokio", + "tokio-stream", + "tower", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-storage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto", + "fastcrypto-tbls", + "futures", + "lru 0.10.1", + "mysten-common", + "mysten-metrics", + "narwhal-config", + "narwhal-types", + "parking_lot 0.12.3", + "prometheus", + "sui-macros", + "tap", + "tempfile", + "tokio", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-test-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "fastcrypto", + "fdlimit", + "indexmap 2.2.6", + "itertools 0.10.5", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-node", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "narwhal-worker", + "once_cell", + "prometheus", + "rand 0.8.5", + "sui-protocol-config", + "telemetry-subscribers", + "tempfile", + "tokio", + "tonic 0.11.0", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-build", + "anyhow", + "base64 0.21.7", + "bcs", + "bytes", + "derive_builder", + "enum_dispatch", + "fastcrypto", + "futures", + "indexmap 2.2.6", + "mockall", + "mysten-common", + "mysten-metrics", + "mysten-network", + "mysten-util-mem", + "narwhal-config", + "narwhal-crypto", + "once_cell", + "prometheus", + "proptest", + "proptest-derive", + "prost 0.12.6", + "prost-build", + "protobuf-src", + "rand 0.8.5", + "roaring", + "rustversion", + "serde", + "serde_with 2.3.3", + "sui-protocol-config", + "thiserror", + "tokio", + "tonic 0.11.0", + "tonic-build", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-worker" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "arc-swap", + "async-trait", + "byteorder", + "bytes", + "eyre", + "fastcrypto", + "futures", + "governor", + "itertools 0.10.5", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-network", + "narwhal-types", + "prometheus", + "rand 0.8.5", + "sui-protocol-config", + "tap", + "thiserror", + "tokio", + "tonic 0.11.0", + "tower", + "tracing", + "typed-store", +] + +[[package]] +name = "neptune" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06626c9ac04c894e9a23d061ba1309f28506cdc5fe64156d28a15fb57fc8e438" +dependencies = [ + "bellpepper", + "bellpepper-core", + "blake2s_simd", + "blstrs", + "byteorder", + "ff 0.13.0", + "generic-array", + "log", + "pasta_curves", + "serde", + "trait-set", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nonempty" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "995defdca0a589acfdd1bd2e8e3b896b4d4f7675a31fd14c32611440c7f608e6" + +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + +[[package]] +name = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + +[[package]] +name = "notify" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" +dependencies = [ + "bitflags 2.5.0", + "crossbeam-channel", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "log", + "mio", + "walkdir", + "windows-sys 0.48.0", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint 0.4.5", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" +dependencies = [ + "num-integer", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-modular" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a5fe11d4135c3bcdf3a95b18b194afa9608a5f6ff034f5d857bc9a27fb0119" +dependencies = [ + "num-bigint 0.4.5", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-prime" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e238432a7881ec7164503ccc516c014bf009be7984cde1ba56837862543bdec3" +dependencies = [ + "bitvec 1.0.1", + "either", + "lru 0.12.3", + "num-bigint 0.4.5", + "num-integer", + "num-modular", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint 0.4.5", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.9", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", +] + +[[package]] +name = "num_enum" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +dependencies = [ + "num_enum_derive 0.7.2", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "object" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e" +dependencies = [ + "memchr", +] + +[[package]] +name = "object_store" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f930c88a43b1c3f6e776dfe495b4afab89882dbc81530c632db2ed65451ebcb4" +dependencies = [ + "async-trait", + "base64 0.21.7", + "bytes", + "chrono", + "futures", + "humantime", + "hyper", + "itertools 0.11.0", + "parking_lot 0.12.3", + "percent-encoding", + "quick-xml", + "rand 0.8.5", + "reqwest", + "ring 0.16.20", + "rustls-pemfile", + "serde", + "serde_json", + "snafu", + "tokio", + "tracing", + "url", + "walkdir", +] + +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "oorandom" +version = "11.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "opentelemetry" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9591d937bc0e6d2feb6f71a559540ab300ea49955229c347a517a28d27784c54" +dependencies = [ + "opentelemetry_api", + "opentelemetry_sdk", +] + +[[package]] +name = "opentelemetry" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a" +dependencies = [ + "futures-core", + "futures-sink", + "indexmap 2.2.6", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", + "urlencoding", +] + +[[package]] +name = "opentelemetry-otlp" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e5e5a5c4135864099f3faafbe939eb4d7f9b80ebf68a8448da961b32a7c1275" +dependencies = [ + "async-trait", + "futures-core", + "http", + "opentelemetry-proto", + "opentelemetry-semantic-conventions", + "opentelemetry_api", + "opentelemetry_sdk", + "prost 0.11.9", + "thiserror", + "tokio", + "tonic 0.9.2", +] + +[[package]] +name = "opentelemetry-proto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e3f814aa9f8c905d0ee4bde026afd3b2577a97c10e1699912e3e44f0c4cbeb" +dependencies = [ + "opentelemetry_api", + "opentelemetry_sdk", + "prost 0.11.9", + "tonic 0.9.2", +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73c9f9340ad135068800e7f1b24e9e09ed9e7143f5bf8518ded3d3ec69789269" +dependencies = [ + "opentelemetry 0.20.0", +] + +[[package]] +name = "opentelemetry_api" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a81f725323db1b1206ca3da8bb19874bbd3f57c3bcd59471bfb04525b265b9b" +dependencies = [ + "futures-channel", + "futures-util", + "indexmap 1.9.3", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", + "urlencoding", +] + +[[package]] +name = "opentelemetry_sdk" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa8e705a0612d48139799fcbaba0d4a90f06277153e43dd2bdc16c6f0edd8026" +dependencies = [ + "async-trait", + "crossbeam-channel", + "futures-channel", + "futures-executor", + "futures-util", + "once_cell", + "opentelemetry_api", + "ordered-float", + "percent-encoding", + "rand 0.8.5", + "regex", + "serde_json", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-float" +version = "3.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc" +dependencies = [ + "num-traits", +] + +[[package]] +name = "os_str_bytes" +version = "6.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" + +[[package]] +name = "ouroboros" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2ba07320d39dfea882faa70554b4bd342a5f273ed59ba7c1c6b4c840492c954" +dependencies = [ + "aliasable", + "ouroboros_macro", + "static_assertions", +] + +[[package]] +name = "ouroboros_macro" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec4c6225c69b4ca778c0aea097321a64c421cf4577b331c61b229267edabb6f8" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "primeorder", + "sha2 0.10.8", +] + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group 0.13.0", +] + +[[package]] +name = "papergrid" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae7891b22598926e4398790c8fe6447930c72a67d36d983a49d6ce682ce83290" +dependencies = [ + "bytecount", + "fnv", + "unicode-width", +] + +[[package]] +name = "parity-scale-codec" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" +dependencies = [ + "arrayvec", + "bitvec 0.20.4", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive 2.3.1", + "serde", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +dependencies = [ + "arrayvec", + "bitvec 1.0.1", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive 3.6.12", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.1", + "smallvec", + "windows-targets 0.52.5", +] + +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "pasta_curves" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" +dependencies = [ + "blake2b_simd", + "ff 0.13.0", + "group 0.13.0", + "hex", + "lazy_static", + "rand 0.8.5", + "serde", + "static_assertions", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", + "hmac", + "password-hash", + "sha2 0.10.8", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "pem-rfc7468" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac" +dependencies = [ + "base64ct", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "pest_meta" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" +dependencies = [ + "once_cell", + "pest", + "sha2 0.10.8", +] + +[[package]] +name = "petgraph" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +dependencies = [ + "fixedbitset 0.2.0", + "indexmap 1.9.3", +] + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset 0.4.2", + "indexmap 2.2.6", +] + +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared 0.11.2", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs1" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719" +dependencies = [ + "der 0.6.1", + "pkcs8 0.9.0", + "spki 0.6.0", + "zeroize", +] + +[[package]] +name = "pkcs8" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +dependencies = [ + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.9", + "spki 0.7.3", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "plotters" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7" + +[[package]] +name = "plotters-svg" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81b30686a7d9c3e010b84284bdd26a29f2138574f52f5eb6f794fc0ad924e705" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "portable-atomic" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" + +[[package]] +name = "postgres-protocol" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520" +dependencies = [ + "base64 0.21.7", + "byteorder", + "bytes", + "fallible-iterator", + "hmac", + "md-5", + "memchr", + "rand 0.8.5", + "sha2 0.10.8", + "stringprep", +] + +[[package]] +name = "postgres-types" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d2234cdee9408b523530a9b6d2d6b373d1db34f6a8e51dc03ded1828d7fb67c" +dependencies = [ + "bytes", + "fallible-iterator", + "postgres-protocol", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "pq-sys" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c0052426df997c0cbd30789eb44ca097e3541717a7b8fa36b1c464ee7edebd" +dependencies = [ + "vcpkg", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "predicates" +version = "2.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +dependencies = [ + "difflib", + "float-cmp", + "itertools 0.10.5", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" + +[[package]] +name = "predicates-tree" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +dependencies = [ + "predicates-core", + "termtree", +] + +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2 1.0.85", + "syn 1.0.109", +] + +[[package]] +name = "prettyplease" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +dependencies = [ + "proc-macro2 1.0.85", + "syn 2.0.66", +] + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve 0.13.8", +] + +[[package]] +name = "primitive-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +dependencies = [ + "fixed-hash 0.7.0", + "impl-codec 0.5.1", + "impl-serde 0.3.2", + "uint", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "scale-info", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml 0.5.11", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", +] + +[[package]] +name = "proc-macro2" +version = "1.0.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prometheus" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" +dependencies = [ + "cfg-if", + "fnv", + "lazy_static", + "memchr", + "parking_lot 0.12.3", + "protobuf", + "thiserror", +] + +[[package]] +name = "prometheus-closure-metric" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "prometheus", + "protobuf", +] + +[[package]] +name = "proptest" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags 2.5.0", + "lazy_static", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_xorshift", + "regex-syntax 0.8.4", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "proptest-derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90b46295382dc76166cb7cf2bb4a97952464e4b7ed5a43e6cd34e1fec3349ddc" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", +] + +[[package]] +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive 0.12.6", +] + +[[package]] +name = "prost-build" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" +dependencies = [ + "bytes", + "heck 0.5.0", + "itertools 0.12.1", + "log", + "multimap", + "once_cell", + "petgraph 0.6.5", + "prettyplease 0.2.20", + "prost 0.12.6", + "prost-types", + "regex", + "syn 2.0.66", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "prost-types" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +dependencies = [ + "prost 0.12.6", +] + +[[package]] +name = "protobuf" +version = "2.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" +dependencies = [ + "bytes", +] + +[[package]] +name = "protobuf-src" +version = "1.1.0+21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7ac8852baeb3cc6fb83b93646fb93c0ffe5d14bf138c945ceb4b9948ee0e3c1" +dependencies = [ + "autotools", +] + +[[package]] +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] + +[[package]] +name = "quanta" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi 0.11.0+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quick-xml" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "quinn" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75" +dependencies = [ + "bytes", + "futures-io", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls 0.21.12", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a" +dependencies = [ + "bytes", + "rand 0.8.5", + "ring 0.16.20", + "rustc-hash", + "rustls 0.21.12", + "slab", + "thiserror", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" +dependencies = [ + "bytes", + "libc", + "socket2 0.5.7", + "tracing", + "windows-sys 0.48.0", +] + +[[package]] +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2 0.4.30", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2 1.0.85", +] + +[[package]] +name = "r2d2" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93" +dependencies = [ + "log", + "parking_lot 0.12.3", + "scheduled-thread-pool", +] + +[[package]] +name = "radium" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "rand_xoshiro" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "raw-cpuid" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e29830cbb1290e404f24c73af91c5d8d631ce7e128691e9477556b540cd01ecd" +dependencies = [ + "bitflags 2.5.0", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rcgen" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +dependencies = [ + "pem", + "ring 0.16.20", + "time", + "yasna", +] + +[[package]] +name = "readonly" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a25d631e41bfb5fdcde1d4e2215f62f7f0afa3ff11e26563765bd6ea1d229aeb" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "real_tokio" +version = "1.36.0" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=e47aafebf98e9c1734a8848a1876d5946c44bdd1#e47aafebf98e9c1734a8848a1876d5946c44bdd1" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot 0.12.3", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.7", + "tokio-macros 2.2.0", + "windows-sys 0.48.0", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +dependencies = [ + "bitflags 2.5.0", +] + +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror", +] + +[[package]] +name = "ref-cast" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "regex" +version = "1.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-rustls 0.24.2", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-rustls 0.24.1", + "tokio-util 0.7.11", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots 0.25.4", + "winreg", +] + +[[package]] +name = "retain_mut" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0" + +[[package]] +name = "rfc6979" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +dependencies = [ + "crypto-bigint 0.4.9", + "hmac", + "zeroize", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.15", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "roaring" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1c77081a55300e016cb86f2864415b7518741879db925b8d488a0ee0d2da6bf" +dependencies = [ + "bytemuck", + "byteorder", +] + +[[package]] +name = "rocksdb" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" +dependencies = [ + "libc", + "librocksdb-sys", +] + +[[package]] +name = "rsa" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55a77d189da1fee555ad95b7e50e7457d91c0e089ec68ca69ad2989413bbdab4" +dependencies = [ + "byteorder", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-iter", + "num-traits", + "pkcs1", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "sha2 0.10.8", + "signature 2.2.0", + "subtle", + "zeroize", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.5.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +dependencies = [ + "log", + "ring 0.16.20", + "sct", + "webpki", +] + +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scale-info" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +dependencies = [ + "cfg-if", + "derive_more", + "parity-scale-codec 3.6.12", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "scheduled-thread-pool" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19" +dependencies = [ + "parking_lot 0.12.3", +] + +[[package]] +name = "schemars" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +dependencies = [ + "dyn-clone", + "either", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "serde_derive_internals", + "syn 2.0.66", +] + +[[package]] +name = "scoped-futures" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1473e24c637950c9bd38763220bea91ec3e095a89f672bbd7a10d03e77ba467" +dependencies = [ + "cfg-if", + "pin-utils", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scrypt" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" +dependencies = [ + "hmac", + "pbkdf2 0.11.0", + "salsa20", + "sha2 0.10.8", +] + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "sec1" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +dependencies = [ + "base16ct 0.1.1", + "der 0.6.1", + "generic-array", + "subtle", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.9", + "generic-array", + "pkcs8 0.10.2", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "bitcoin_hashes", + "rand 0.8.5", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +dependencies = [ + "cc", +] + +[[package]] +name = "secrecy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +dependencies = [ + "bitflags 2.5.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + +[[package]] +name = "serde" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-name" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b5b14ebbcc4e4f2b3642fa99c388649da58d1dc3308c7d109f39f565d1710f0" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "serde-reflection" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05a5f801ac62a51a49d378fdb3884480041b99aced450b28990673e8ff99895" +dependencies = [ + "once_cell", + "serde", + "thiserror", +] + +[[package]] +name = "serde_bytes" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_json" +version = "1.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +dependencies = [ + "indexmap 2.2.6", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_spanned" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +dependencies = [ + "base64 0.13.1", + "chrono", + "hex", + "indexmap 1.9.3", + "serde", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "serde", + "serde_derive", + "serde_json", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" +dependencies = [ + "darling 0.20.9", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_yaml" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +dependencies = [ + "indexmap 1.9.3", + "ryu", + "serde", + "yaml-rust", +] + +[[package]] +name = "serial_test" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e56dd856803e253c8f298af3f4d7eb0ae5e23a737252cd90bb4f3b435033b2d" +dependencies = [ + "dashmap", + "futures", + "lazy_static", + "log", + "parking_lot 0.12.3", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shared-crypto" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "eyre", + "fastcrypto", + "serde", + "serde_repr", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "similar" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640" + +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint 0.4.5", + "num-traits", + "thiserror", + "time", +] + +[[package]] +name = "simplelog" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bc0ffd69814a9b251d43afcabf96dad1b29f5028378056257be9e3fecc9f720" +dependencies = [ + "chrono", + "log", + "termcolor", +] + +[[package]] +name = "simulacrum" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "fastcrypto", + "futures", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "once_cell", + "prometheus", + "rand 0.8.5", + "serde", + "shared-crypto", + "sui-config", + "sui-execution", + "sui-framework", + "sui-genesis-builder", + "sui-keys", + "sui-protocol-config", + "sui-storage", + "sui-swarm-config", + "sui-transaction-checks", + "sui-types", + "tracing", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "sized-chunks" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" +dependencies = [ + "bitmaps", + "typenum", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slip10_ed25519" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be0ff28bf14f9610a342169084e87a4f435ad798ec528dc7579a3678fa9dc9a" +dependencies = [ + "hmac-sha512", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "snafu" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6" +dependencies = [ + "doc-comment", + "snafu-derive", +] + +[[package]] +name = "snafu-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "soketto" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +dependencies = [ + "base64 0.13.1", + "bytes", + "futures", + "http", + "httparse", + "log", + "rand 0.8.5", + "sha-1", +] + +[[package]] +name = "solang-parser" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" +dependencies = [ + "itertools 0.11.0", + "lalrpop", + "lalrpop-util", + "phf", + "thiserror", + "unicode-xid 0.2.4", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spinning_top" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +dependencies = [ + "base64ct", + "der 0.6.1", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der 0.7.9", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "stacker" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "winapi", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot 0.12.3", + "phf_shared 0.10.0", + "precomputed-hash", +] + +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros 0.24.3", +] + +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +dependencies = [ + "strum_macros 0.25.3", +] + +[[package]] +name = "strum" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" +dependencies = [ + "strum_macros 0.26.4", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustversion", + "syn 2.0.66", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustversion", + "syn 2.0.66", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "subtle-ng" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + +[[package]] +name = "sui-adapter-latest" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-types", + "mysten-metrics", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-latest", + "sui-protocol-config", + "sui-types", + "sui-verifier-latest", + "tracing", +] + +[[package]] +name = "sui-adapter-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v0", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime-v0", + "move-vm-types", + "once_cell", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-v0", + "sui-protocol-config", + "sui-types", + "sui-verifier-v0", + "tracing", +] + +[[package]] +name = "sui-adapter-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v1", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime-v1", + "move-vm-types", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-v1", + "sui-protocol-config", + "sui-types", + "sui-verifier-v1", + "tracing", +] + +[[package]] +name = "sui-adapter-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v2", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime-v2", + "move-vm-types", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-v2", + "sui-protocol-config", + "sui-types", + "sui-verifier-v2", + "tracing", +] + +[[package]] +name = "sui-archival" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "byteorder", + "bytes", + "fastcrypto", + "futures", + "indicatif", + "num_enum 0.6.1", + "object_store", + "prometheus", + "rand 0.8.5", + "serde", + "serde_json", + "sui-config", + "sui-simulator", + "sui-storage", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "sui-authority-aggregation" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "mysten-metrics", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "sui-bridge" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "arc-swap", + "async-trait", + "axum", + "backoff", + "bcs", + "bin-version", + "clap 4.5.7", + "enum_dispatch", + "ethers", + "eyre", + "fastcrypto", + "futures", + "lru 0.10.1", + "move-core-types", + "mysten-metrics", + "num_enum 0.6.1", + "once_cell", + "prometheus", + "rand 0.8.5", + "reqwest", + "rocksdb", + "serde", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "sui-common", + "sui-config", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-keys", + "sui-sdk 1.27.0", + "sui-test-transaction-builder", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tracing", + "typed-store", + "typed-store-derive", + "url", +] + +[[package]] +name = "sui-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "mysten-metrics", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "sui-config" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "bcs", + "clap 4.5.7", + "csv", + "dirs 4.0.0", + "fastcrypto", + "narwhal-config", + "object_store", + "once_cell", + "prometheus", + "rand 0.8.5", + "reqwest", + "serde", + "serde_with 2.3.3", + "serde_yaml", + "sui-keys", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-core" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "arc-swap", + "async-trait", + "axum", + "bcs", + "bytes", + "chrono", + "consensus-config", + "consensus-core", + "count-min-sketch", + "dashmap", + "diffy", + "either", + "enum_dispatch", + "eyre", + "fastcrypto", + "fastcrypto-tbls", + "fastcrypto-zkp", + "futures", + "im", + "indexmap 2.2.6", + "itertools 0.10.5", + "jsonrpsee", + "lru 0.10.1", + "mockall", + "moka", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-package", + "move-symbol-pool", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-node", + "narwhal-test-utils", + "narwhal-types", + "narwhal-worker", + "num_cpus", + "object_store", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "rand 0.8.5", + "reqwest", + "roaring", + "rocksdb", + "scopeguard", + "serde", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "signature 1.6.4", + "static_assertions", + "sui-archival", + "sui-authority-aggregation", + "sui-config", + "sui-execution", + "sui-framework", + "sui-genesis-builder", + "sui-json-rpc-types", + "sui-macros", + "sui-move-build", + "sui-network", + "sui-protocol-config", + "sui-rest-api", + "sui-simulator", + "sui-storage", + "sui-swarm-config", + "sui-transaction-checks", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "thiserror", + "tokio", + "tokio-retry", + "tokio-stream", + "tracing", + "twox-hash", + "typed-store", + "typed-store-derive", + "zeroize", +] + +[[package]] +name = "sui-ctf-framework" +version = "0.1.0" +source = "git+https://github.com/otter-sec/sui-ctf-framework?branch=justctf2024#761465a1d97742bb2aea2864cc76cef646232c55" +dependencies = [ + "clap 3.2.25", + "diesel-async", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-stdlib", + "move-symbol-pool", + "move-transactional-test-runner", + "once_cell", + "sui-protocol-config", + "sui-transactional-test-runner", + "sui-types", + "tempfile", +] + +[[package]] +name = "sui-data-ingestion-core" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "backoff", + "bcs", + "futures", + "mysten-metrics", + "notify", + "object_store", + "prometheus", + "serde", + "serde_json", + "sui-rest-api", + "sui-storage", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "sui-enum-compat-util" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "serde_yaml", +] + +[[package]] +name = "sui-execution" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter", + "move-abstract-interpreter-v2", + "move-binary-format", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v0", + "move-bytecode-verifier-v1", + "move-bytecode-verifier-v2", + "move-vm-config", + "move-vm-runtime", + "move-vm-runtime-v0", + "move-vm-runtime-v1", + "move-vm-runtime-v2", + "sui-adapter-latest", + "sui-adapter-v0", + "sui-adapter-v1", + "sui-adapter-v2", + "sui-move-natives-latest", + "sui-move-natives-v0", + "sui-move-natives-v1", + "sui-move-natives-v2", + "sui-protocol-config", + "sui-types", + "sui-verifier-latest", + "sui-verifier-v0", + "sui-verifier-v1", + "sui-verifier-v2", +] + +[[package]] +name = "sui-framework" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "move-binary-format", + "move-compiler", + "move-core-types", + "move-package", + "once_cell", + "regex", + "serde", + "sui-move-build", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-framework-snapshot" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "bin-version", + "serde", + "serde_json", + "sui-framework", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-genesis-builder" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "camino", + "fastcrypto", + "move-binary-format", + "move-core-types", + "prometheus", + "rand 0.8.5", + "serde", + "serde_with 2.3.3", + "serde_yaml", + "shared-crypto", + "sui-config", + "sui-execution", + "sui-framework", + "sui-framework-snapshot", + "sui-protocol-config", + "sui-simulator", + "sui-types", + "tempfile", + "tracing", +] + +[[package]] +name = "sui-graphql-rpc" +version = "2024.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-graphql", + "async-graphql-axum", + "async-graphql-value", + "async-trait", + "axum", + "bcs", + "bin-version", + "chrono", + "clap 4.5.7", + "const-str", + "diesel", + "downcast", + "either", + "fastcrypto", + "fastcrypto-zkp", + "futures", + "hex", + "http", + "hyper", + "im", + "itertools 0.10.5", + "lru 0.10.1", + "markdown-gen", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-disassembler", + "move-ir-types", + "mysten-metrics", + "mysten-network", + "once_cell", + "prometheus", + "rand 0.8.5", + "regex", + "reqwest", + "serde", + "serde_json", + "serde_with 2.3.3", + "serde_yaml", + "serial_test", + "shared-crypto", + "similar", + "simulacrum", + "sui-graphql-rpc-client", + "sui-graphql-rpc-headers", + "sui-indexer", + "sui-json-rpc", + "sui-json-rpc-types", + "sui-package-resolver", + "sui-protocol-config", + "sui-rest-api", + "sui-sdk 1.27.0", + "sui-swarm-config", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "test-cluster", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "toml 0.7.8", + "tower", + "tower-http", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "sui-graphql-rpc-client" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-graphql", + "axum", + "hyper", + "reqwest", + "serde_json", + "sui-graphql-rpc-headers", + "thiserror", +] + +[[package]] +name = "sui-graphql-rpc-headers" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "axum", +] + +[[package]] +name = "sui-indexer" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "axum", + "backoff", + "bcs", + "cached", + "chrono", + "clap 4.5.7", + "diesel", + "diesel-derive-enum", + "diesel_migrations", + "downcast", + "fastcrypto", + "futures", + "itertools 0.10.5", + "jsonrpsee", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "mysten-metrics", + "prometheus", + "rayon", + "regex", + "secrecy", + "serde", + "serde_json", + "serde_with 2.3.3", + "sui-data-ingestion-core", + "sui-json", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-open-rpc", + "sui-package-resolver", + "sui-protocol-config", + "sui-rest-api", + "sui-sdk 1.27.0", + "sui-transaction-builder", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "tracing", + "url", +] + +[[package]] +name = "sui-json" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "fastcrypto", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "schemars", + "serde", + "serde_json", + "sui-types", +] + +[[package]] +name = "sui-json-rpc" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "arc-swap", + "async-trait", + "axum", + "bcs", + "cached", + "chrono", + "eyre", + "fastcrypto", + "futures", + "hyper", + "indexmap 2.2.6", + "itertools 0.10.5", + "jsonrpsee", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-package", + "mysten-metrics", + "once_cell", + "prometheus", + "serde", + "serde_json", + "shared-crypto", + "signature 1.6.4", + "sui-core", + "sui-json", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-macros", + "sui-open-rpc", + "sui-open-rpc-macros", + "sui-protocol-config", + "sui-storage", + "sui-transaction-builder", + "sui-types", + "tap", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "tower", + "tower-http", + "tracing", + "typed-store-error", +] + +[[package]] +name = "sui-json-rpc-api" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "fastcrypto", + "jsonrpsee", + "mysten-metrics", + "once_cell", + "prometheus", + "sui-json", + "sui-json-rpc-types", + "sui-open-rpc", + "sui-open-rpc-macros", + "sui-types", + "tap", + "tracing", +] + +[[package]] +name = "sui-json-rpc-types" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "colored", + "enum_dispatch", + "fastcrypto", + "itertools 0.10.5", + "json_to_table", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "mysten-metrics", + "schemars", + "serde", + "serde_json", + "serde_with 2.3.3", + "sui-enum-compat-util", + "sui-json", + "sui-macros", + "sui-package-resolver", + "sui-protocol-config", + "sui-types", + "tabled", + "tracing", +] + +[[package]] +name = "sui-keys" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bip32", + "fastcrypto", + "rand 0.8.5", + "regex", + "serde", + "serde_json", + "shared-crypto", + "signature 1.6.4", + "slip10_ed25519", + "sui-types", + "tiny-bip39", +] + +[[package]] +name = "sui-macros" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "once_cell", + "sui-proc-macros", + "tracing", +] + +[[package]] +name = "sui-move-build" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "fastcrypto", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-ir-types", + "move-package", + "move-symbol-pool", + "serde-reflection", + "sui-protocol-config", + "sui-types", + "sui-verifier-latest", + "tempfile", +] + +[[package]] +name = "sui-move-natives-latest" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-vdf", + "fastcrypto-zkp", + "indexmap 2.2.6", + "move-binary-format", + "move-core-types", + "move-stdlib-natives", + "move-vm-runtime", + "move-vm-types", + "rand 0.8.5", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-move-natives-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-zkp", + "linked-hash-map", + "move-binary-format", + "move-core-types", + "move-stdlib-natives-v0", + "move-vm-runtime-v0", + "move-vm-types", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-move-natives-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-zkp", + "linked-hash-map", + "move-binary-format", + "move-core-types", + "move-stdlib-natives-v1", + "move-vm-runtime-v1", + "move-vm-types", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-move-natives-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-zkp", + "indexmap 2.2.6", + "move-binary-format", + "move-core-types", + "move-stdlib-natives-v2", + "move-vm-runtime-v2", + "move-vm-types", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-network" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-build", + "anemo-tower", + "anyhow", + "arc-swap", + "bcs", + "bytes", + "dashmap", + "fastcrypto", + "fastcrypto-tbls", + "futures", + "governor", + "mysten-metrics", + "mysten-network", + "prometheus", + "rand 0.8.5", + "serde", + "sui-archival", + "sui-config", + "sui-macros", + "sui-storage", + "sui-swarm-config", + "sui-types", + "tap", + "tokio", + "tonic 0.11.0", + "tonic-build", + "tower", + "tracing", +] + +[[package]] +name = "sui-node" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "arc-swap", + "axum", + "bin-version", + "clap 4.5.7", + "fastcrypto", + "fastcrypto-zkp", + "futures", + "humantime", + "move-vm-profiler", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-network", + "narwhal-worker", + "prometheus", + "reqwest", + "serde", + "snap", + "sui-archival", + "sui-config", + "sui-core", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-macros", + "sui-network", + "sui-protocol-config", + "sui-rest-api", + "sui-simulator", + "sui-snapshot", + "sui-storage", + "sui-telemetry", + "sui-tls", + "sui-types", + "tap", + "telemetry-subscribers", + "tokio", + "tower", + "tracing", + "typed-store", + "url", +] + +[[package]] +name = "sui-open-rpc" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "schemars", + "serde", + "serde_json", + "versions", +] + +[[package]] +name = "sui-open-rpc-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "derive-syn-parse", + "itertools 0.10.5", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "unescape", +] + +[[package]] +name = "sui-package-resolver" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "bcs", + "eyre", + "lru 0.10.1", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "serde", + "sui-rest-api", + "sui-types", + "thiserror", + "tokio", +] + +[[package]] +name = "sui-proc-macros" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "msim-macros", + "proc-macro2 1.0.85", + "quote 1.0.36", + "sui-enum-compat-util", + "syn 2.0.66", +] + +[[package]] +name = "sui-protocol-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "clap 4.5.7", + "insta", + "move-vm-config", + "schemars", + "serde", + "serde_with 2.3.3", + "sui-protocol-config-macros", + "tracing", +] + +[[package]] +name = "sui-protocol-config-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "sui-rest-api" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "axum", + "bcs", + "fastcrypto", + "itertools 0.10.5", + "mime", + "mysten-network", + "prometheus", + "rand 0.8.5", + "reqwest", + "serde", + "serde_json", + "serde_with 2.3.3", + "sui-sdk 0.0.0", + "sui-types", + "tap", + "thiserror", +] + +[[package]] +name = "sui-sdk" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/sui-rust-sdk.git?rev=ec4236befe57c15fba0dae9e6881c18231882151#ec4236befe57c15fba0dae9e6881c18231882151" +dependencies = [ + "base64ct", + "bcs", + "bnum", + "bs58 0.5.1", + "hex", + "roaring", + "serde", + "serde_derive", + "serde_with 3.8.1", + "winnow 0.6.13", +] + +[[package]] +name = "sui-sdk" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "base64 0.21.7", + "bcs", + "clap 4.5.7", + "colored", + "fastcrypto", + "futures", + "futures-core", + "jsonrpsee", + "move-core-types", + "reqwest", + "serde", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "sui-config", + "sui-json", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-keys", + "sui-transaction-builder", + "sui-types", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "sui-simulator" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "bcs", + "fastcrypto", + "lru 0.10.1", + "move-package", + "msim", + "narwhal-network", + "rand 0.8.5", + "serde", + "sui-framework", + "sui-move-build", + "sui-types", + "telemetry-subscribers", + "tempfile", + "tower", + "tracing", +] + +[[package]] +name = "sui-snapshot" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "byteorder", + "bytes", + "fastcrypto", + "futures", + "indicatif", + "integer-encoding", + "num_enum 0.6.1", + "object_store", + "prometheus", + "serde", + "serde_json", + "sui-config", + "sui-core", + "sui-protocol-config", + "sui-storage", + "sui-types", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "sui-storage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "backoff", + "base64-url", + "bcs", + "byteorder", + "bytes", + "chrono", + "clap 4.5.7", + "eyre", + "fastcrypto", + "futures", + "hyper", + "hyper-rustls 0.24.2", + "indicatif", + "integer-encoding", + "itertools 0.10.5", + "lru 0.10.1", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "mysten-metrics", + "num_enum 0.6.1", + "object_store", + "parking_lot 0.12.3", + "percent-encoding", + "prometheus", + "reqwest", + "rocksdb", + "serde", + "serde_json", + "sui-config", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tracing", + "typed-store", + "typed-store-derive", + "url", + "zstd 0.12.4", +] + +[[package]] +name = "sui-swarm" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "futures", + "mysten-metrics", + "mysten-network", + "prometheus", + "rand 0.8.5", + "sui-config", + "sui-macros", + "sui-node", + "sui-protocol-config", + "sui-simulator", + "sui-swarm-config", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tonic-health", + "tracing", +] + +[[package]] +name = "sui-swarm-config" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "fastcrypto", + "move-bytecode-utils", + "narwhal-config", + "prometheus", + "rand 0.8.5", + "serde", + "serde_with 2.3.3", + "serde_yaml", + "shared-crypto", + "sui-config", + "sui-genesis-builder", + "sui-macros", + "sui-protocol-config", + "sui-simulator", + "sui-types", + "tempfile", + "tracing", +] + +[[package]] +name = "sui-telemetry" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "reqwest", + "serde", + "sui-core", + "tracing", +] + +[[package]] +name = "sui-test-transaction-builder" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "move-core-types", + "shared-crypto", + "sui-genesis-builder", + "sui-move-build", + "sui-sdk 1.27.0", + "sui-types", +] + +[[package]] +name = "sui-tls" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "axum", + "axum-server", + "ed25519", + "fastcrypto", + "pkcs8 0.9.0", + "rcgen", + "reqwest", + "rustls 0.21.12", + "rustls-webpki", + "tokio", + "tokio-rustls 0.24.1", + "tower-layer", + "x509-parser", +] + +[[package]] +name = "sui-transaction-builder" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "futures", + "move-binary-format", + "move-core-types", + "sui-json", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-transaction-checks" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto-zkp", + "once_cell", + "sui-config", + "sui-execution", + "sui-macros", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-transactional-test-runner" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "bimap", + "clap 4.5.7", + "criterion", + "eyre", + "fastcrypto", + "futures", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-stdlib", + "move-symbol-pool", + "move-transactional-test-runner", + "move-vm-runtime", + "msim", + "once_cell", + "rand 0.8.5", + "regex", + "rocksdb", + "serde_json", + "simulacrum", + "sui-config", + "sui-core", + "sui-framework", + "sui-framework-snapshot", + "sui-graphql-rpc", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-rest-api", + "sui-storage", + "sui-swarm-config", + "sui-types", + "telemetry-subscribers", + "tempfile", + "tokio", + "typed-store", + "typed-store-derive", +] + +[[package]] +name = "sui-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "bcs", + "better_any", + "bincode", + "byteorder", + "chrono", + "consensus-config", + "derivative", + "derive_more", + "enum_dispatch", + "eyre", + "fastcrypto", + "fastcrypto-tbls", + "fastcrypto-zkp", + "im", + "indexmap 2.2.6", + "itertools 0.10.5", + "jsonrpsee", + "lru 0.10.1", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-core-types", + "move-disassembler", + "move-ir-types", + "move-vm-profiler", + "move-vm-test-utils", + "move-vm-types", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "nonempty", + "num-bigint 0.4.5", + "num-traits", + "num_enum 0.6.1", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "proptest", + "proptest-derive", + "rand 0.8.5", + "roaring", + "schemars", + "serde", + "serde-name", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "signature 1.6.4", + "static_assertions", + "strum 0.24.1", + "strum_macros 0.24.3", + "sui-enum-compat-util", + "sui-macros", + "sui-protocol-config", + "sui-sdk 0.0.0", + "tap", + "thiserror", + "tonic 0.11.0", + "tracing", + "typed-store-error", +] + +[[package]] +name = "sui-verifier-latest" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter", + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-verifier-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v0", + "move-core-types", + "move-vm-config", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-verifier-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v1", + "move-core-types", + "move-vm-config", + "sui-types", +] + +[[package]] +name = "sui-verifier-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v2", + "move-core-types", + "move-vm-config", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "svm-rs" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" +dependencies = [ + "dirs 5.0.1", + "fs2", + "hex", + "once_cell", + "reqwest", + "semver", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "url", + "zip", +] + +[[package]] +name = "syn" +version = "0.15.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "unicode-xid 0.2.4", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tabled" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce69a5028cd9576063ec1f48edb2c75339fd835e6094ef3e05b3a079bf594a6" +dependencies = [ + "papergrid", + "tabled_derive", + "unicode-width", +] + +[[package]] +name = "tabled_derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99f688a08b54f4f02f0a3c382aefdb7884d3d69609f785bd253dc033243e3fe4" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "tagptr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "telemetry-subscribers" +version = "0.2.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "atomic_float", + "bytes", + "bytes-varint", + "clap 4.5.7", + "crossterm", + "futures", + "once_cell", + "opentelemetry 0.20.0", + "opentelemetry-otlp", + "opentelemetry-proto", + "opentelemetry_api", + "prometheus", + "prost 0.11.9", + "tokio", + "tonic 0.9.2", + "tracing", + "tracing-appender", + "tracing-opentelemetry", + "tracing-subscriber", +] + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terminal_size" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +dependencies = [ + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + +[[package]] +name = "test-cluster" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "fastcrypto", + "fastcrypto-zkp", + "futures", + "jsonrpsee", + "move-binary-format", + "prometheus", + "rand 0.8.5", + "sui-bridge", + "sui-config", + "sui-core", + "sui-framework", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-keys", + "sui-node", + "sui-protocol-config", + "sui-sdk 1.27.0", + "sui-simulator", + "sui-swarm", + "sui-swarm-config", + "sui-test-transaction-builder", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "textwrap" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" + +[[package]] +name = "thiserror" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-bip39" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" +dependencies = [ + "anyhow", + "hmac", + "once_cell", + "pbkdf2 0.11.0", + "rand 0.8.5", + "rustc-hash", + "sha2 0.10.8", + "thiserror", + "unicode-normalization", + "wasm-bindgen", + "zeroize", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot 0.12.3", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.7", + "tokio-macros 2.3.0", + "tracing", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=e47aafebf98e9c1734a8848a1876d5946c44bdd1#e47aafebf98e9c1734a8848a1876d5946c44bdd1" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tokio-macros" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tokio-postgres" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d340244b32d920260ae7448cb72b6e238bddc3d4f7603394e7dd46ed8e48f5b8" +dependencies = [ + "async-trait", + "byteorder", + "bytes", + "fallible-iterator", + "futures-channel", + "futures-util", + "log", + "parking_lot 0.12.3", + "percent-encoding", + "phf", + "pin-project-lite", + "postgres-protocol", + "postgres-types", + "rand 0.8.5", + "socket2 0.5.7", + "tokio", + "tokio-util 0.7.11", + "whoami", +] + +[[package]] +name = "tokio-retry" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +dependencies = [ + "pin-project", + "rand 0.8.5", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls 0.20.9", + "tokio", + "webpki", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util 0.7.11", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", + "tungstenite", + "webpki-roots 0.25.4", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=e47aafebf98e9c1734a8848a1876d5946c44bdd1#e47aafebf98e9c1734a8848a1876d5946c44bdd1" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "futures-util", + "hashbrown 0.14.5", + "pin-project-lite", + "real_tokio", + "slab", + "tracing", +] + +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "futures-util", + "hashbrown 0.14.5", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.14", +] + +[[package]] +name = "toml_datetime" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5376256e44f2443f8896ac012507c19a012df0fe8758b55246ae51a2279db51f" +dependencies = [ + "combine", + "indexmap 1.9.3", + "itertools 0.10.5", + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.13", +] + +[[package]] +name = "tonic" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" +dependencies = [ + "async-trait", + "axum", + "base64 0.21.7", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost 0.11.9", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.21.7", + "bytes", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost 0.12.6", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-build" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2" +dependencies = [ + "prettyplease 0.2.20", + "proc-macro2 1.0.85", + "prost-build", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tonic-health" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cef6e24bc96871001a7e48e820ab240b3de2201e59b517cf52835df2f1d2350" +dependencies = [ + "async-stream", + "prost 0.12.6", + "tokio", + "tokio-stream", + "tonic 0.11.0", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "hdrhistogram", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util 0.7.11", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" +dependencies = [ + "async-compression", + "base64 0.13.1", + "bitflags 1.3.2", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "httpdate", + "iri-string", + "mime", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "tokio", + "tokio-util 0.7.11", + "tower", + "tower-layer", + "tower-service", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-appender" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +dependencies = [ + "crossbeam-channel", + "thiserror", + "time", + "tracing-subscriber", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "futures", + "futures-task", + "pin-project", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-opentelemetry" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75327c6b667828ddc28f5e3f169036cb793c3f588d83bf0f262a7f062ffed3c8" +dependencies = [ + "once_cell", + "opentelemetry 0.20.0", + "opentelemetry_sdk", + "smallvec", + "tracing", + "tracing-core", + "tracing-log 0.1.4", + "tracing-subscriber", +] + +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "serde", + "serde_json", + "sharded-slab", + "smallvec", + "thread_local", + "time", + "tracing", + "tracing-core", + "tracing-log 0.2.0", + "tracing-serde", +] + +[[package]] +name = "trait-set" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b79e2e9c9ab44c6d7c20d5976961b47e8f49ac199154daa514b77cd1ab536625" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "treeline" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" + +[[package]] +name = "triomphe" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b2cb4fbb9995eeb36ac86fadf24031ccd58f99d6b4b2d7b911db70bddb80d90" + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tui" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccdd26cbd674007e649a272da4475fb666d3aa0ad0531da7136db6fab0e5bad1" +dependencies = [ + "bitflags 1.3.2", + "cassowary", + "crossterm", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.8.5", + "rustls 0.21.12", + "sha1", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "rand 0.8.5", + "static_assertions", +] + +[[package]] +name = "typed-store" +version = "0.4.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "bcs", + "bincode", + "collectable", + "eyre", + "fdlimit", + "hdrhistogram", + "itertools 0.10.5", + "msim", + "once_cell", + "ouroboros", + "prometheus", + "rand 0.8.5", + "rocksdb", + "serde", + "sui-macros", + "tap", + "thiserror", + "tokio", + "tracing", + "typed-store-error", +] + +[[package]] +name = "typed-store-derive" +version = "0.3.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "itertools 0.10.5", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "typed-store-error" +version = "0.4.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unescape" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e" + +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-properties" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291" + +[[package]] +name = "unicode-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + +[[package]] +name = "unicode-width" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" + +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "unsigned-varint" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom 0.2.15", + "serde", +] + +[[package]] +name = "uuid" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" +dependencies = [ + "getrandom 0.2.15", + "rand 0.8.5", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "variant_count" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae2faf80ac463422992abf4de234731279c058aaf33171ca70277c98406b124" +dependencies = [ + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "versions" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee97e1d97bd593fb513912a07691b742361b3dd64ad56f2c694ea2dbfe0665d3" +dependencies = [ + "itertools 0.10.5", + "nom", +] + +[[package]] +name = "vfs" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e4fe92cfc1bad19c19925d5eee4b30584dbbdee4ff10183b261acccbef74e2d" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote 1.0.36", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "wasm-streams" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "webpki-roots" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +dependencies = [ + "webpki", +] + +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + +[[package]] +name = "whoami" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9" +dependencies = [ + "redox_syscall 0.4.1", + "wasite", + "web-sys", +] + +[[package]] +name = "widestring" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "x509-parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +dependencies = [ + "asn1-rs", + "base64 0.13.1", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time", +] + +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "synstructure 0.13.1", +] + +[[package]] +name = "zerocopy" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "synstructure 0.13.1", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "zerovec" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "aes", + "byteorder", + "bzip2", + "constant_time_eq 0.1.5", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac", + "pbkdf2 0.11.0", + "sha1", + "time", + "zstd 0.11.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe 5.0.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +dependencies = [ + "zstd-safe 6.0.6", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-safe" +version = "6.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.10+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/mover/Xeonacid/code/woo/sources/framework/Cargo.toml b/mover/Xeonacid/code/woo/sources/framework/Cargo.toml new file mode 100644 index 000000000..7812092d6 --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/framework/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "framework" +version = "0.1.0" +edition = "2021" +exclude = ["chall/"] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +quote = "1.0.26" +threadpool = "1.8.1" +proc-macro2 = "1.0.66" + +tokio = { version = "1", features = ["full"] } + +move-core-types = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-core-types" } +move-bytecode-source-map = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-bytecode-source-map" } +move-binary-format = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-binary-format" } +move-symbol-pool = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-symbol-pool" } +move-transactional-test-runner = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-transactional-test-runner" } + +sui-types = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "sui-types"} +sui-transactional-test-runner = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "sui-transactional-test-runner"} + +sui-ctf-framework = { git = "https://github.com/otter-sec/sui-ctf-framework", branch = "justctf2024" } diff --git a/mover/Xeonacid/code/woo/sources/framework/chall/Move.lock b/mover/Xeonacid/code/woo/sources/framework/chall/Move.lock new file mode 100644 index 000000000..6d83d4dca --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/framework/chall/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C1FECA3B112600A783F9F421CC2BF9CE00CE66320440DD4E76D8CD5B87B3AD2C" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet-v1.27.0", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet-v1.27.0", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" diff --git a/mover/Xeonacid/code/woo/sources/framework/chall/Move.toml b/mover/Xeonacid/code/woo/sources/framework/chall/Move.toml new file mode 100644 index 000000000..919e3960d --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/framework/chall/Move.toml @@ -0,0 +1,11 @@ +[package] +name = "challenge" +version = "0.0.1" +edition = "2024.beta" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[addresses] +challenge = "0x0" +admin = "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e" diff --git a/mover/Xeonacid/code/woo/sources/framework/chall/sources/quest.move b/mover/Xeonacid/code/woo/sources/framework/chall/sources/quest.move new file mode 100644 index 000000000..2fe6fece7 --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/framework/chall/sources/quest.move @@ -0,0 +1,284 @@ +module challenge::Otter { + + // --------------------------------------------------- + // DEPENDENCIES + // --------------------------------------------------- + + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Balance, Supply}; + use sui::table::{Self, Table}; + use sui::url; + + // --------------------------------------------------- + // CONST + // --------------------------------------------------- + + // STATUSES + const PREPARE_FOR_TROUBLE: u64 = 1; + const ON_ADVENTURE: u64 = 2; + const RESTING: u64 = 3; + const SHOPPING: u64 = 4; + const FINISHED: u64 = 5; + + // ERROR CODES + const WRONG_AMOUNT: u64 = 1337; + const BETTER_GET_EQUIPPED: u64 = 1338; + const WRONG_PLAYER_STATE: u64 = 1339; + const ALREADY_REGISTERED: u64 = 1340; + const TOO_MANY_MONSTERS: u64 = 1341; + const BUY_SOMETHING: u64 = 1342; + const NO_SUCH_PLAYER: u64 = 1343; + const NOT_SOLVED: u64 = 1344; + + // LIMITS + const QUEST_LIMIT: u64 = 25; + + // --------------------------------------------------- + // STRUCTS + // --------------------------------------------------- + + public struct OTTER has drop {} + + public struct OsecSuply has key { + id: UID, + supply: Supply + } + + public struct Vault has key { + id: UID, + cash: Coin + } + + public struct Monster has store { + reward: u64, + power: u64 + } + + public struct QuestBoard has key, store { + id: UID, + quests: vector, + players: Table // + } + + public struct Player has key, store { + id: UID, + user: address, + power: u64, + status: u64, + quest_index: u64, + wallet: Balance + } + + public struct TawernTicket { + total: u64, + flag_bought: bool + } + + // --------------------------------------------------- + // MINT CASH + // --------------------------------------------------- + + fun init(witness: OTTER, ctx: &mut TxContext) { + let (mut treasury, metadata) = coin::create_currency(witness, 9, b"OSEC", b"Osec", b"Otter ca$h", option::some(url::new_unsafe_from_bytes(b"https://osec.io/")), ctx); + transfer::public_freeze_object(metadata); + + let pool_liquidity = coin::mint(&mut treasury, 50000, ctx); + + let vault = Vault { + id: object::new(ctx), + cash: pool_liquidity + }; + + let supply = coin::treasury_into_supply(treasury); + + let osec_supply = OsecSuply { + id: object::new(ctx), + supply + }; + + transfer::transfer(osec_supply, tx_context::sender(ctx)); + + transfer::share_object(QuestBoard { + id: object::new(ctx), + quests: vector::empty(), + players: table::new(ctx) + }); + + transfer::share_object(vault); + } + + public fun mint(sup: &mut OsecSuply, amount: u64, ctx: &mut TxContext): Coin { + let osecBalance = balance::increase_supply(&mut sup.supply, amount); + coin::from_balance(osecBalance, ctx) + } + + public entry fun mint_to(sup: &mut OsecSuply, amount: u64, to: address, ctx: &mut TxContext) { + let osec = mint(sup, amount, ctx); + transfer::public_transfer(osec, to); + } + + public fun burn(sup: &mut OsecSuply, c: Coin): u64 { + balance::decrease_supply(&mut sup.supply, coin::into_balance(c)) + } + + // --------------------------------------------------- + // REGISTER - ADMIN FUNCTION + // --------------------------------------------------- + + public fun register(_: &mut OsecSuply, board: &mut QuestBoard, vault: &mut Vault, player: address, ctx: &mut TxContext) { + assert!(!table::contains(&board.players, player), ALREADY_REGISTERED); + + let new_cash = coin::into_balance(coin::split(&mut vault.cash, 250, ctx)); + + let new_player_obj = Player { + id: object::new(ctx), + user: player, + power: 10, + status: RESTING, + quest_index: 0, + wallet: new_cash + }; + + table::add(&mut board.players, player, false); + + transfer::transfer(new_player_obj, player); + } + + public fun check_winner(board: &QuestBoard, player: address) { + assert!(table::contains(&board.players, player), NO_SUCH_PLAYER); + assert!(table::borrow(&board.players, player) == true, NOT_SOLVED); + } + + // --------------------------------------------------- + // TAVERN + // --------------------------------------------------- + + public fun enter_tavern(player: &mut Player): TawernTicket { + assert!(player.status == RESTING, WRONG_PLAYER_STATE); + + player.status = SHOPPING; + + TawernTicket{ total: 0, flag_bought: false } + } + + public fun buy_flag(ticket: &mut TawernTicket, player: &mut Player) { + assert!(player.status == SHOPPING, WRONG_PLAYER_STATE); + + ticket.total = ticket.total + 537; + ticket.flag_bought = true; + } + + public fun buy_sword(player: &mut Player, ticket: &mut TawernTicket) { + assert!(player.status == SHOPPING, WRONG_PLAYER_STATE); + + player.power = player.power + 213; + ticket.total = ticket.total + 140; + } + + public fun buy_shield(player: &mut Player, ticket: &mut TawernTicket) { + assert!(player.status == SHOPPING, WRONG_PLAYER_STATE); + + player.power = player.power + 7; + ticket.total = ticket.total + 20; + } + + public fun buy_power_of_friendship(player: &mut Player, ticket: &mut TawernTicket) { + assert!(player.status == SHOPPING, WRONG_PLAYER_STATE); + + player.power = player.power + 9000; //it's over 9000! + ticket.total = ticket.total + 190; + } + + public fun checkout(ticket: TawernTicket, player: &mut Player, ctx: &mut TxContext, vault: &mut Vault, board: &mut QuestBoard) { + let TawernTicket{ total, flag_bought } = ticket; + + assert!(total > 0, BUY_SOMETHING); + assert!(balance::value(&player.wallet) >= total, WRONG_AMOUNT); + + let balance = balance::split(&mut player.wallet, total); + let coins = coin::from_balance(balance, ctx); + + coin::join(&mut vault.cash, coins); + + if (flag_bought == true) { + + let flag = table::borrow_mut(&mut board.players, tx_context::sender(ctx)); + *flag = true; + + std::debug::print(&std::string::utf8(b"$$$$$$$$$$$$$$$$$$$$$$$$$ FLAG BOUGHT $$$$$$$$$$$$$$$$$$$$$$$$$")); //debug + }; + + player.status = RESTING; + } + + // --------------------------------------------------- + // ADVENTURE TIME + // --------------------------------------------------- + + public fun find_a_monster(board: &mut QuestBoard, player: &mut Player) { + assert!(player.status != SHOPPING && player.status != FINISHED && player.status != ON_ADVENTURE, WRONG_PLAYER_STATE); + assert!(vector::length(&board.quests) <= QUEST_LIMIT, TOO_MANY_MONSTERS); + + let quest = if (vector::length(&board.quests) % 3 == 0) { + Monster { + reward: 100, + power: 73 + } + } else if (vector::length(&board.quests) % 3 == 1) { + Monster { + reward: 62, + power: 81 + } + } else { + Monster { + reward: 79, + power: 94 + } + }; + + vector::push_back(&mut board.quests, quest); + player.status = PREPARE_FOR_TROUBLE; + } + + public fun bring_it_on(board: &mut QuestBoard, player: &mut Player, quest_id: u64) { + assert!(player.status != SHOPPING && player.status != FINISHED && player.status != RESTING && player.status != ON_ADVENTURE, WRONG_PLAYER_STATE); + + let monster = vector::borrow_mut(&mut board.quests, quest_id); + assert!(player.power > monster.power, BETTER_GET_EQUIPPED); + + player.status = ON_ADVENTURE; + + player.power = 10; //equipment breaks after fighting the monster, and friends go to party :c + monster.power = 0; //you win! wow! + player.quest_index = quest_id; + } + + public fun return_home(board: &mut QuestBoard, player: &mut Player) { + assert!(player.status != SHOPPING && player.status != FINISHED && player.status != RESTING && player.status != PREPARE_FOR_TROUBLE, WRONG_PLAYER_STATE); + + let quest_to_finish = vector::borrow(&board.quests, player.quest_index); + assert!(quest_to_finish.power == 0, WRONG_AMOUNT); + + player.status = FINISHED; + } + + public fun get_the_reward(vault: &mut Vault, board: &mut QuestBoard, player: &mut Player, ctx: &mut TxContext) { + assert!(player.status != RESTING && player.status != PREPARE_FOR_TROUBLE && player.status != ON_ADVENTURE, WRONG_PLAYER_STATE); + + let monster = vector::remove(&mut board.quests, player.quest_index); + + let Monster { + reward: reward, + power: _ + } = monster; + + let coins = coin::split(&mut vault.cash, reward, ctx); + let balance = coin::into_balance(coins); + + balance::join(&mut player.wallet, balance); + + player.status = RESTING; + } + +} + diff --git a/mover/Xeonacid/code/woo/sources/framework/run.sh b/mover/Xeonacid/code/woo/sources/framework/run.sh new file mode 100755 index 000000000..a62fa9ce3 --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/framework/run.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +sed -i \ + -E 's/(host[[:space:]]+all[[:space:]]+all[[:space:]]+127.0.0.1\/32[[:space:]]+)scram-sha-256/\1trust/' \ + /etc/postgresql/16/main/pg_hba.conf + +sed -i \ + -E 's/(host[[:space:]]+all[[:space:]]+all[[:space:]]+::1\/128[[:space:]]+)scram-sha-256/\1trust/' \ + /etc/postgresql/16/main/pg_hba.conf + +/etc/init.d/postgresql restart + +sudo -u postgres psql postgres -c "ALTER ROLE postgres WITH SUPERUSER LOGIN PASSWORD 'postgrespw';" +sudo -u postgres psql postgres -c "CREATE DATABASE sui_indexer_v2;" -c "ALTER SYSTEM SET max_connections = 500;" + +cargo r --release diff --git a/mover/Xeonacid/code/woo/sources/framework/rust-toolchain.toml b/mover/Xeonacid/code/woo/sources/framework/rust-toolchain.toml new file mode 100644 index 000000000..83a52c383 --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/framework/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.76" diff --git a/mover/Xeonacid/code/woo/sources/framework/src/main.rs b/mover/Xeonacid/code/woo/sources/framework/src/main.rs new file mode 100644 index 000000000..c34932c47 --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/framework/src/main.rs @@ -0,0 +1,296 @@ +use std::env; +use std::error::Error; +use std::fmt; +use std::io::{Read, Write}; +use std::mem::drop; +use std::net::{TcpListener, TcpStream}; +use std::path::Path; + +use tokio; + +use move_transactional_test_runner::framework::{MaybeNamedCompiledModule, MoveTestAdapter}; +use move_bytecode_source_map::{source_map::SourceMap, utils::source_map_from_file}; +use move_binary_format::file_format::CompiledModule; +use move_symbol_pool::Symbol; +use move_core_types::{ + account_address::AccountAddress, + language_storage::TypeTag, + runtime_value::MoveValue +}; + +use sui_ctf_framework::NumericalAddress; +use sui_transactional_test_runner::{args::SuiValue, test_adapter::FakeID}; + +async fn handle_client(mut stream: TcpStream) -> Result<(), Box> { + + // Initialize SuiTestAdapter + let modules = vec!["Otter"]; + let mut deployed_modules: Vec = Vec::new(); + + let named_addresses = vec![ + ( + "challenge".to_string(), + NumericalAddress::parse_str( + "0x0", + )?, + ), + ( + "solve".to_string(), + NumericalAddress::parse_str( + "0x0", + )?, + ), + ( + "admin".to_string(), + NumericalAddress::parse_str( + "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e", + )?, + ), + ]; + + let mut adapter = sui_ctf_framework::initialize( + named_addresses, + Some(vec!["challenger".to_string(), "solver".to_string()]), + ).await; + + // Check Admin Account + let object_output1 = sui_ctf_framework::view_object(&mut adapter, FakeID::Enumerated(0, 0)).await; + println!("Object Output: {:#?}", object_output1); + + let mut mncp_modules : Vec = Vec::new(); + + for i in 0..modules.len() { + + let module = &modules[i]; + + let mod_path = format!("./chall/build/challenge/bytecode_modules/{}.mv", module); + let src_path = format!("./chall/build/challenge/source_maps/{}.mvsm", module); + let mod_bytes: Vec = std::fs::read(mod_path)?; + + let module: CompiledModule = match CompiledModule::deserialize_with_defaults(&mod_bytes) { + Ok(data) => data, + Err(e) => { + return Err(Box::new(e)) + } + }; + let named_addr_opt: Option = Some(Symbol::from("challenge")); + let source_map: Option = match source_map_from_file(Path::new(&src_path)) { + Ok(data) => Some(data), + Err(e) => { + let _ = adapter.cleanup_resources().await; + println!("error: {:?}, src_path: {}", e, src_path); + return Err("error when generating source map".into()) + } + }; + + let maybe_ncm = MaybeNamedCompiledModule { + named_address: named_addr_opt, + module, + source_map, + }; + + mncp_modules.push( maybe_ncm ); + } + + // Publish Challenge Module + let chall_dependencies: Vec = Vec::new(); + let chall_addr = sui_ctf_framework::publish_compiled_module( + &mut adapter, + mncp_modules, + chall_dependencies, + Some(String::from("challenger")), + ).await; + deployed_modules.push(chall_addr); + println!("[SERVER] Module published at: {:?}", chall_addr); + + let mut solution_data = [0 as u8; 2000]; + let _solution_size = stream.read(&mut solution_data)?; + + // Send Challenge Address + let mut output = String::new(); + fmt::write( + &mut output, + format_args!( + "[SERVER] Challenge modules published at: {}", + chall_addr.to_string().as_str(), + ), + ) + .unwrap(); + stream.write(output.as_bytes()).unwrap(); + + // Publish Solution Module + let mut sol_dependencies: Vec = Vec::new(); + sol_dependencies.push(String::from("challenge")); + + let mut mncp_solution : Vec = Vec::new(); + let module: CompiledModule = match CompiledModule::deserialize_with_defaults(&solution_data.to_vec()) { + Ok(data) => data, + Err(e) => { + let _ = adapter.cleanup_resources().await; + return Err(Box::new(e)) + } + }; + let named_addr_opt: Option = Some(Symbol::from("solve")); + let source_map : Option = None; + + let maybe_ncm = MaybeNamedCompiledModule { + named_address: named_addr_opt, + module, + source_map, + }; + mncp_solution.push( maybe_ncm ); + + let sol_addr = sui_ctf_framework::publish_compiled_module( + &mut adapter, + mncp_solution, + sol_dependencies, + Some(String::from("solver")), + ).await; + println!("[SERVER] Solution published at: {:?}", sol_addr); + + // Send Solution Address + output = String::new(); + fmt::write( + &mut output, + format_args!( + "[SERVER] Solution published at {}", + sol_addr.to_string().as_str() + ), + ) + .unwrap(); + stream.write(output.as_bytes()).unwrap(); + + // Prepare Function Call Arguments + let mut args_reg: Vec = Vec::new(); + let supply = SuiValue::Object(FakeID::Enumerated(2, 1), None); + let questboard = SuiValue::Object(FakeID::Enumerated(2, 2), None); + let vault = SuiValue::Object(FakeID::Enumerated(2, 3), None); + let player_addr = SuiValue::MoveValue(MoveValue::Address(adapter.compiled_state().resolve_named_address("solver"))); + args_reg.push(supply.clone()); + args_reg.push(questboard.clone()); + args_reg.push(vault.clone()); + args_reg.push(player_addr.clone()); + + let type_args: Vec = Vec::new(); + + // Call Add Liquidity Function + let ret_val = match sui_ctf_framework::call_function( + &mut adapter, + chall_addr, + "Otter", + "register", + args_reg, + type_args, + Some("challenger".to_string()), + ).await { + Ok(output) => output, + Err(e) => { + let _ = adapter.cleanup_resources().await; + println!("[SERVER] error: {e}"); + return Err("error during call to Otter::register".into()) + } + }; + println!("[SERVER] Return value {:#?}", ret_val); + println!(""); + + // Prepare Function Call Arguments + let mut args_solve: Vec = Vec::new(); + let player = SuiValue::Object(FakeID::Enumerated(4, 0), None); + args_solve.push(questboard.clone()); + args_solve.push(vault.clone()); + args_solve.push(player.clone()); + + let type_args_solve: Vec = Vec::new(); + + // Call solve Function + let ret_val = match sui_ctf_framework::call_function( + &mut adapter, + sol_addr, + "solve", + "solve", + args_solve, + type_args_solve, + Some("solver".to_string()), + ).await { + Ok(output) => output, + Err(e) => { + let _ = adapter.cleanup_resources().await; + println!("[SERVER] error: {e}"); + return Err("error during call to solve::solve".into()) + } + }; + println!("[SERVER] Return value {:#?}", ret_val); + println!(""); + + // Check Solution + let mut args_check: Vec = Vec::new(); + args_check.push(questboard.clone()); + args_check.push(player_addr.clone()); + + let type_args_check: Vec = Vec::new(); + + let sol_ret = sui_ctf_framework::call_function( + &mut adapter, + chall_addr, + "Otter", + "check_winner", + args_check, + type_args_check, + Some("solver".to_string()), + ).await; + println!("[SERVER] Return value {:#?}", sol_ret); + println!(""); + + // Validate Solution + match sol_ret { + Ok(_) => { + println!("[SERVER] Correct Solution!"); + println!(""); + if let Ok(flag) = env::var("FLAG") { + let message = format!("[SERVER] Congrats, flag: {}", flag); + stream.write(message.as_bytes()).unwrap(); + } else { + stream.write("[SERVER] Flag not found, please contact admin".as_bytes()).unwrap(); + } + } + Err(_) => { + println!("[SERVER] Invalid Solution!"); + println!(""); + stream.write("[SERVER] Invalid Solution!".as_bytes()).unwrap(); + } + }; + + let _ = adapter.cleanup_resources().await; + Ok(()) +} + +#[tokio::main] +async fn main() -> Result<(), Box> { + // Create Socket - Port 31337 + let listener = TcpListener::bind("0.0.0.0:31337")?; + println!("[SERVER] Starting server at port 31337!"); + + let local = tokio::task::LocalSet::new(); + + // Wait For Incoming Solution + for stream in listener.incoming() { + match stream { + Ok(stream) => { + println!("[SERVER] New connection: {}", stream.peer_addr()?); + let result = local.run_until( async move { + tokio::task::spawn_local( async { + handle_client(stream).await + }).await + }).await; + println!("[SERVER] Result: {:?}", result); + } + Err(e) => { + println!("[SERVER] Error: {}", e); + } + } + } + + // Close Socket Server + drop(listener); + Ok(()) +} diff --git a/mover/Xeonacid/code/woo/sources/run_client.sh b/mover/Xeonacid/code/woo/sources/run_client.sh new file mode 100755 index 000000000..1f78679ba --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/run_client.sh @@ -0,0 +1,5 @@ +set -eux + +cd framework-solve/solve && sui move build +cd .. +cargo r --release diff --git a/mover/Xeonacid/code/woo/sources/run_server.sh b/mover/Xeonacid/code/woo/sources/run_server.sh new file mode 100755 index 000000000..d0f9be966 --- /dev/null +++ b/mover/Xeonacid/code/woo/sources/run_server.sh @@ -0,0 +1,5 @@ +set -eux + +cd framework/chall && sui move build +cd .. +cargo r --release diff --git a/mover/Xeonacid/notes/readme.md b/mover/Xeonacid/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Xeonacid/readme.md b/mover/Xeonacid/readme.md new file mode 100644 index 000000000..6b3d1d89e --- /dev/null +++ b/mover/Xeonacid/readme.md @@ -0,0 +1,59 @@ +## 基本信息 +- Sui钱包地址: `0x2a99f14e3364be2980c5b0f4b7a3dc083cb4ff1dbaf3317f2a4c3507cf11e75f` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `Xeonacid` + +## 个人简介 +- 工作经验: 3年 +- 技术栈: `Python` `C++` `Solidity` `Move` `Rust` +> 重要提示 请认真写自己的简介 +- 多年区块链审计经验,参与过多场CTF并取得优异成绩 +- 联系方式: tg: `Dicanoex` + +## 任务 + +## 01 hello move +- [] Sui cli version: +- [] Sui钱包截图: ![Sui钱包截图](./images/你的图片地址) +- [] package id: +- [] package id 在 scan上的查看截图:![Scan截图](./images/你的图片地址) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : + +## justctf +- [x] The Otter Scrolls : justCTF{Th4t_sp3ll_looks_d4ngerous...keep_y0ur_distance} +- [x] World of Ottercraft : justCTF{Ott3r_uses_expl0it_its_sup3r_eff3ctiv3} +- [x] Dark BrOTTERhood : justCTF{I_us3d_to_b3_an_ott3r_until_i_t00k_th4t_arr0w} diff --git a/mover/YibinJay/notes/readme.md b/mover/YibinJay/notes/readme.md index 5ec0d6114..764a202f9 100644 --- a/mover/YibinJay/notes/readme.md +++ b/mover/YibinJay/notes/readme.md @@ -134,7 +134,7 @@ sui client call --package $PACKAGE_ID --module yibinjay_game --function deposit Transaction Digest: 75VRQBU2rG2q1tihNQvL9pzwwMjWwdDS6Fj5PqT6JRXb -sui client call --package $PACKAGE_ID --module yibinjay_game --function get_faucet_coin --args $FAUCET 100000000 --gas-budget 100000000 +sui client call --package $PACKAGE_ID --module yibinjay_game --function get_faucet_coin --args $FAUCET 100000000 Faucet Coin: ObjectID: 0x72ddc6684fc62e9b04b6bd36031bfcc7f8141f8fb3151c1f42cdb819c587d46f @@ -146,7 +146,7 @@ deposit coin : ObjectId: 0xedc0862e337a22469c601c9430b8a0de96157959c05df1dcb50e3 export GAME_COIN=0xedc0862e337a22469c601c9430b8a0de96157959c05df1dcb50e3d65b8f16318 -sui client call --package $PACKAGE_ID --module yibinjay_game --function play --args 2 $GAME_ID $GAME_COIN 0x6 --gas-budget 100000000 +sui client call --package $PACKAGE_ID --module yibinjay_game --function play --args 2 $GAME_ID $GAME_COIN 0x6 ``` Error executing transaction: Failure { diff --git a/mover/Zeroc0077/images/1.png b/mover/Zeroc0077/images/1.png new file mode 100644 index 000000000..f02808787 Binary files /dev/null and b/mover/Zeroc0077/images/1.png differ diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/Dockerfile b/mover/Zeroc0077/justctf2024/justctf2024-db/Dockerfile new file mode 100644 index 000000000..de77cf555 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/Dockerfile @@ -0,0 +1,16 @@ +FROM embe221ed/otter_template:latest + +ADD ./sources/framework/chall /work/framework/chall +ADD ./sources/framework/src/main.rs /work/framework/src/ + +# build the challenge contracts +WORKDIR /work/framework/chall +RUN sui move build + +WORKDIR /work/framework + +# build the framework +RUN touch src/main.rs +RUN cargo build --locked --release + +CMD ./run.sh diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/README.md b/mover/Zeroc0077/justctf2024/justctf2024-db/README.md new file mode 100644 index 000000000..f8b883f33 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/README.md @@ -0,0 +1,39 @@ +# justCTF2024-Dark BrOTTERhood + +> Description: In the shadowed corners of the Dark Brotterhood's secrets, lies a tavern where valiant Otters barter for swords and shields. Here, amidst whispers of hidden bounties, adventurers find the means to battle fearsome monsters for rich rewards. Join this clandestine fellowship, where the blockchain holds mysteries to uncover. Otters of Valor, your destiny calls; may your path be lined with both honor and gold. + +solve.move: +```move +module solve::solve { + + // [*] Import dependencies + use challenge::Otter::{Self, OTTER}; + use sui::random::Random; + + #[allow(lint(public_random))] + public fun solve( + _vault: &mut Otter::Vault, + _questboard: &mut Otter::QuestBoard, + _player: &mut Otter::Player, + _r: &Random, + _ctx: &mut TxContext, + ) { + challenge::Otter::buy_sword(_vault, _player, _ctx); + challenge::Otter::find_a_monster(_questboard, _r, _ctx); + challenge::Otter::fight_monster(_questboard, _player, 0); + challenge::Otter::return_home(_questboard, 0); + let mut i = 0; + while (i < 100) { + challenge::Otter::find_a_monster(_questboard, _r, _ctx); + challenge::Otter::get_the_reward(_vault, _questboard, _player, 0, _ctx); + i = i+1; + }; + + let flag = challenge::Otter::buy_flag(_vault, _player, _ctx); + challenge::Otter::prove(_questboard, flag); + } + +} +``` + +![](./images/1.png) \ No newline at end of file diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/docker-compose.yml b/mover/Zeroc0077/justctf2024/justctf2024-db/docker-compose.yml new file mode 100644 index 000000000..f3e245d85 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/docker-compose.yml @@ -0,0 +1,11 @@ +services: + db: + environment: + FLAG: justCTF{I_us3d_to_b3_an_ott3r_until_i_t00k_th4t_arr0w} + PORT: 31337 + build: + context: ./ + dockerfile: ./Dockerfile + ports: + - "31337:31337" + restart: always diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/images/1.png b/mover/Zeroc0077/justctf2024/justctf2024-db/images/1.png new file mode 100644 index 000000000..b1b537460 Binary files /dev/null and b/mover/Zeroc0077/justctf2024/justctf2024-db/images/1.png differ diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/Cargo.lock b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/Cargo.lock new file mode 100644 index 000000000..d8b563e5e --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "solve-framework" +version = "0.1.0" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/Cargo.toml b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/Cargo.toml new file mode 100644 index 000000000..9fc89b2dd --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "solve-framework" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/dependency/Move.toml b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/dependency/Move.toml new file mode 100644 index 000000000..5ba592da7 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/dependency/Move.toml @@ -0,0 +1,11 @@ +[package] +name = "challenge" +version = "0.0.1" +edition = "2024.beta" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[addresses] +admin = "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e" +challenge = "04db9c21c0199c3645b317bd7b12c7cecfcd2a48716a8e2a204fef460c0dd37e" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/dependency/sources/dark_brotterhood.move b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/dependency/sources/dark_brotterhood.move new file mode 100644 index 000000000..92c50aca0 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/dependency/sources/dark_brotterhood.move @@ -0,0 +1,250 @@ +module challenge::Otter { + + // --------------------------------------------------- + // DEPENDENCIES + // --------------------------------------------------- + + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply}; + use sui::url; + use sui::random::{Self, Random}; + use sui::table::{Self, Table}; + + // --------------------------------------------------- + // CONST + // --------------------------------------------------- + + const NEW: u64 = 1; + const WON: u64 = 2; + const FINISHED: u64 = 3; + + const WRONG_AMOUNT: u64 = 1337; + const BETTER_BRING_A_KNIFE_TO_A_GUNFIGHT: u64 = 1338; + const WRONG_STATE: u64 = 1339; + const ALREADY_REGISTERED: u64 = 1340; + const NOT_REGISTERED: u64 = 1341; + const TOO_MUCH_MONSTERS: u64 = 1342; + const NOT_SOLVED: u64 = 1343; + + const QUEST_LIMIT: u64 = 25; + // --------------------------------------------------- + // STRUCTS + // --------------------------------------------------- + + public struct OTTER has drop {} + + public struct OsecSuply has key { + id: UID, + supply: Supply + } + + public struct Vault has key { + id: UID, + cash: Coin + } + + public struct Monster has store { + fight_status: u64, + reward: u8, + power: u8 + } + + public struct QuestBoard has key, store { + id: UID, + quests: vector, + players: Table + } + + public struct Flag has key, store { + id: UID, + user: address, + flag: bool + } + + public struct Player has key, store { + id: UID, + user: address, + coins: Coin, + power: u8 + } + + // --------------------------------------------------- + // MINT CASH + // --------------------------------------------------- + + fun init(witness: OTTER, ctx: &mut TxContext) { + let (mut treasury, metadata) = coin::create_currency( + witness, 9, b"OSEC", b"Osec", b"Otter ca$h", option::some(url::new_unsafe_from_bytes(b"https://osec.io/")), ctx + ); + transfer::public_freeze_object(metadata); + + let pool_liquidity = coin::mint(&mut treasury, 50000, ctx); + + let vault = Vault { + id: object::new(ctx), + cash: pool_liquidity + }; + + let supply = coin::treasury_into_supply(treasury); + + let osec_supply = OsecSuply { + id: object::new(ctx), + supply + }; + + transfer::transfer(osec_supply, tx_context::sender(ctx)); + + transfer::share_object(QuestBoard { + id: object::new(ctx), + quests: vector::empty(), + players: table::new(ctx) + }); + + transfer::share_object(vault); + } + + public fun mint(sup: &mut OsecSuply, amount: u64, ctx: &mut TxContext): Coin { + let osecBalance = balance::increase_supply(&mut sup.supply, amount); + coin::from_balance(osecBalance, ctx) + } + + public entry fun mint_to(sup: &mut OsecSuply, amount: u64, to: address, ctx: &mut TxContext) { + let osec = mint(sup, amount, ctx); + transfer::public_transfer(osec, to); + } + + public fun burn(sup: &mut OsecSuply, c: Coin): u64 { + balance::decrease_supply(&mut sup.supply, coin::into_balance(c)) + } + + // --------------------------------------------------- + // REGISTER + // --------------------------------------------------- + + public fun register(sup: &mut OsecSuply, board: &mut QuestBoard, player: address, ctx: &mut TxContext) { + assert!(!table::contains(&board.players, player), ALREADY_REGISTERED); + + table::add(&mut board.players, player, false); + + transfer::transfer(Player { + id: object::new(ctx), + user: tx_context::sender(ctx), + coins: mint(sup, 137, ctx), + power: 10 + }, player); + } + + // --------------------------------------------------- + // SHOP + // --------------------------------------------------- + + #[allow(lint(self_transfer))] + public fun buy_flag(vault: &mut Vault, player: &mut Player, ctx: &mut TxContext): Flag { + assert!(coin::value(&player.coins) >= 1337, WRONG_AMOUNT); + + let coins = coin::split(&mut player.coins, 1337, ctx); + coin::join(&mut vault.cash, coins); + + Flag { + id: object::new(ctx), + user: tx_context::sender(ctx), + flag: true + } + } + + public fun buy_sword(vault: &mut Vault, player: &mut Player, ctx: &mut TxContext) { + assert!(coin::value(&player.coins) >= 137, WRONG_AMOUNT); + + let coins = coin::split(&mut player.coins, 137, ctx); + coin::join(&mut vault.cash, coins); + + player.power = player.power + 100; + } + + // --------------------------------------------------- + // ADVENTURE TIME + // --------------------------------------------------- + + #[allow(lint(public_random))] + public fun find_a_monster(board: &mut QuestBoard, r: &Random, ctx: &mut TxContext) { + assert!(vector::length(&board.quests) <= QUEST_LIMIT, TOO_MUCH_MONSTERS); + + let mut generator = random::new_generator(r, ctx); + + let quest = Monster { + fight_status: NEW, + reward: random::generate_u8_in_range(&mut generator, 13, 37), + power: random::generate_u8_in_range(&mut generator, 13, 73) + }; + + vector::push_back(&mut board.quests, quest); + + } + + public fun fight_monster(board: &mut QuestBoard, player: &mut Player, quest_id: u64) { + let quest = vector::borrow_mut(&mut board.quests, quest_id); + assert!(quest.fight_status == NEW, WRONG_STATE); + assert!(player.power > quest.power, BETTER_BRING_A_KNIFE_TO_A_GUNFIGHT); + + player.power = 10; // sword breaks after fighting the monster :c + + quest.fight_status = WON; + } + + public fun return_home(board: &mut QuestBoard, quest_id: u64) { + let quest_to_finish = vector::borrow_mut(&mut board.quests, quest_id); + assert!(quest_to_finish.fight_status == WON, WRONG_STATE); + + quest_to_finish.fight_status = FINISHED; + } + + #[allow(lint(self_transfer))] + public fun get_the_reward( + vault: &mut Vault, + board: &mut QuestBoard, + player: &mut Player, + quest_id: u64, + ctx: &mut TxContext, + ) { + let quest_to_claim = vector::borrow_mut(&mut board.quests, quest_id); + assert!(quest_to_claim.fight_status == FINISHED, WRONG_STATE); + + let monster = vector::pop_back(&mut board.quests); + + let Monster { + fight_status: _, + reward: reward, + power: _ + } = monster; + + let coins = coin::split(&mut vault.cash, (reward as u64), ctx); + coin::join(&mut player.coins, coins); + } + + // --------------------------------------------------- + // PROVE SOLUTION + // --------------------------------------------------- + + public fun prove(board: &mut QuestBoard, flag: Flag) { + let Flag { + id, + user, + flag + } = flag; + + object::delete(id); + + assert!(table::contains(&board.players, user), NOT_REGISTERED); + assert!(flag, NOT_SOLVED); + *table::borrow_mut(&mut board.players, user) = true; + } + + // --------------------------------------------------- + // CHECK WINNER + // --------------------------------------------------- + + public fun check_winner(board: &QuestBoard, player: address) { + assert!(*table::borrow(&board.players, player) == true, NOT_SOLVED); + } + +} diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/solve/Move.toml b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/solve/Move.toml new file mode 100644 index 000000000..262e952e8 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/solve/Move.toml @@ -0,0 +1,14 @@ +[package] +name = "solve" +version = "0.0.1" +edition = "2024.alpha" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[dependencies.challenge] +version = '0.0.1' +local = '../dependency' + +[addresses] +solve = "0x0" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/solve/sources/solve.move b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/solve/sources/solve.move new file mode 100644 index 000000000..abb016f5f --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/solve/sources/solve.move @@ -0,0 +1,30 @@ +module solve::solve { + + // [*] Import dependencies + use challenge::Otter::{Self, OTTER}; + use sui::random::Random; + + #[allow(lint(public_random))] + public fun solve( + _vault: &mut Otter::Vault, + _questboard: &mut Otter::QuestBoard, + _player: &mut Otter::Player, + _r: &Random, + _ctx: &mut TxContext, + ) { + challenge::Otter::buy_sword(_vault, _player, _ctx); + challenge::Otter::find_a_monster(_questboard, _r, _ctx); + challenge::Otter::fight_monster(_questboard, _player, 0); + challenge::Otter::return_home(_questboard, 0); + let mut i = 0; + while (i < 100) { + challenge::Otter::find_a_monster(_questboard, _r, _ctx); + challenge::Otter::get_the_reward(_vault, _questboard, _player, 0, _ctx); + i = i+1; + }; + + let flag = challenge::Otter::buy_flag(_vault, _player, _ctx); + challenge::Otter::prove(_questboard, flag); + } + +} diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/src/main.rs b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/src/main.rs new file mode 100644 index 000000000..60ba562e5 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework-solve/src/main.rs @@ -0,0 +1,59 @@ +use std::net::TcpStream; +use std::io::{Read, Write}; +use std::str::from_utf8; +use std::{error::Error, fs}; +use std::env; + +fn main() -> Result<(), Box> { + + let host = "db.nc.jctf.pro"; // replace with remote ip + let port = env::var("PORT").unwrap_or_else(|_| "31337".to_string()); + + match TcpStream::connect(format!("{}:{}", host, port)) { + Ok(mut stream) => { + println!(" - Connected!"); + + let mod_data : Vec = fs::read("./solve/build/solve/bytecode_modules/solve.mv").unwrap(); + println!(" - Loaded solution!"); + + stream.write_all(&mod_data)?; + stream.flush()?; + println!(" - Sent solution!"); + + let mut return_data1 = [0 as u8; 200]; + match stream.read(&mut return_data1) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&return_data1).unwrap()); // Get module address + let mut return_data2 = [0 as u8; 200]; + match stream.read(&mut return_data2) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&return_data2).unwrap()); // Get module address + let mut flag = [0 as u8; 200]; + match stream.read(&mut flag) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&flag).unwrap()); // Get flag + + }, + Err(e) => { + println!(" - Failed to receive data: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to receive data: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to connect: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to connect: {}", e); + } + } + println!(" - Terminated."); + + Ok(()) +} diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/Cargo.lock b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/Cargo.lock new file mode 100644 index 000000000..f720c1806 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/Cargo.lock @@ -0,0 +1,12692 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "addchain" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" +dependencies = [ + "num-bigint 0.3.3", + "num-integer", + "num-traits", +] + +[[package]] +name = "addr2line" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom 0.2.15", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "aliasable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anemo" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" +dependencies = [ + "anyhow", + "async-trait", + "bincode", + "bytes", + "ed25519", + "futures", + "hex", + "http", + "matchit 0.5.0", + "pin-project-lite", + "pkcs8 0.9.0", + "quinn", + "quinn-proto", + "rand 0.8.5", + "rcgen", + "ring 0.16.20", + "rustls 0.21.12", + "rustls-webpki", + "serde", + "serde_json", + "socket2 0.5.7", + "tap", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "tower", + "tracing", + "x509-parser", +] + +[[package]] +name = "anemo-build" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" +dependencies = [ + "prettyplease 0.1.25", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "anemo-tower" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" +dependencies = [ + "anemo", + "bytes", + "dashmap", + "futures", + "governor", + "nonzero_ext", + "pin-project-lite", + "tokio", + "tower", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "anstream" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" + +[[package]] +name = "anstyle-parse" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +dependencies = [ + "backtrace", +] + +[[package]] +name = "arc-swap" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" +dependencies = [ + "serde", +] + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-crypto-primitives" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-snark", + "ark-std", + "blake2", + "derivative", + "digest 0.10.7", + "sha2 0.10.8", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.5", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.5", + "num-traits", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "ark-groth16" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" +dependencies = [ + "ark-crypto-primitives", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-relations", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-relations" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" +dependencies = [ + "ark-ff", + "ark-std", + "tracing", +] + +[[package]] +name = "ark-secp256r1" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3975a01b0a6e3eae0f72ec7ca8598a6620fc72fa5981f6f5cca33b7cd788f633" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint 0.4.5", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "ark-snark" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" +dependencies = [ + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "ascii_utils" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71938f30533e4d95a6d17aa530939da3842c2ab6f4f84b9dae68447e4129f74a" + +[[package]] +name = "asn1-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "async-compression" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "async-graphql" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298a5d587d6e6fdb271bf56af2dc325a80eb291fd0fc979146584b9a05494a8c" +dependencies = [ + "async-graphql-derive", + "async-graphql-parser", + "async-graphql-value", + "async-stream", + "async-trait", + "base64 0.13.1", + "bytes", + "chrono", + "fast_chemail", + "fnv", + "futures-channel", + "futures-timer", + "futures-util", + "handlebars", + "http", + "indexmap 2.2.6", + "lru 0.7.8", + "mime", + "multer", + "num-traits", + "once_cell", + "opentelemetry 0.21.0", + "pin-project-lite", + "regex", + "serde", + "serde_json", + "serde_urlencoded", + "static_assertions", + "tempfile", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "async-graphql-axum" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a1c20a2059bffbc95130715b23435a05168c518fba9709c81fa2a38eed990c" +dependencies = [ + "async-graphql", + "async-trait", + "axum", + "bytes", + "futures-util", + "serde_json", + "tokio", + "tokio-stream", + "tokio-util 0.7.11", + "tower-service", +] + +[[package]] +name = "async-graphql-derive" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f329c7eb9b646a72f70c9c4b516c70867d356ec46cb00dcac8ad343fd006b0" +dependencies = [ + "Inflector", + "async-graphql-parser", + "darling 0.20.9", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "strum 0.25.0", + "syn 2.0.66", + "thiserror", +] + +[[package]] +name = "async-graphql-parser" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6139181845757fd6a73fbb8839f3d036d7150b798db0e9bb3c6e83cdd65bd53b" +dependencies = [ + "async-graphql-value", + "pest", + "serde", + "serde_json", +] + +[[package]] +name = "async-graphql-value" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "323a5143f5bdd2030f45e3f2e0c821c9b1d36e79cf382129c64299c50a7f3750" +dependencies = [ + "bytes", + "indexmap 2.2.6", + "serde", + "serde_json", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "async-task" +version = "4.3.0" +source = "git+https://github.com/mystenmark/async-task?rev=4e45b26e11126b191701b9b2ce5e2346b8d7682f#4e45b26e11126b191701b9b2ce5e2346b8d7682f" + +[[package]] +name = "async-trait" +version = "0.1.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version", +] + +[[package]] +name = "async_once" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ce4f10ea3abcd6617873bae9f91d1c5332b4a778bd9ce34d0cd517474c1de82" + +[[package]] +name = "atomic_float" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62af46d040ba9df09edc6528dae9d8e49f5f3e82f55b7d2ec31a733c38dbc49d" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "auto_ops" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7460f7dd8e100147b82a63afca1a20eb6c231ee36b90ba7272e14951cb58af59" + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "autotools" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef941527c41b0fc0dd48511a8154cd5fc7e29200a0ff8b7203c5d777dbc795cf" +dependencies = [ + "cc", +] + +[[package]] +name = "axum" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core", + "base64 0.21.7", + "bitflags 1.3.2", + "bytes", + "futures-util", + "headers", + "http", + "http-body", + "hyper", + "itoa", + "matchit 0.7.3", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sha1", + "sync_wrapper", + "tokio", + "tokio-tungstenite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-server" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "447f28c85900215cc1bea282f32d4a2f22d55c5a300afdfbc661c8d6a632e063" +dependencies = [ + "arc-swap", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile", + "tokio", + "tokio-rustls 0.24.1", + "tower-service", +] + +[[package]] +name = "backoff" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +dependencies = [ + "futures-core", + "getrandom 0.2.15", + "instant", + "pin-project-lite", + "rand 0.8.5", + "tokio", +] + +[[package]] +name = "backtrace" +version = "0.3.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64-url" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb9fb9fb058cc3063b5fc88d9a21eefa2735871498a04e1650da76ed511c8569" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bcs" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" +dependencies = [ + "serde", +] + +[[package]] +name = "bellpepper" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae286c2cb403324ab644c7cc68dceb25fe52ca9429908a726d7ed272c1edf7b" +dependencies = [ + "bellpepper-core", + "byteorder", + "ff 0.13.0", +] + +[[package]] +name = "bellpepper-core" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d8abb418570756396d722841b19edfec21d4e89e1cf8990610663040ecb1aea" +dependencies = [ + "blake2s_simd", + "byteorder", + "ff 0.13.0", + "serde", + "thiserror", +] + +[[package]] +name = "better_any" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b359aebd937c17c725e19efcb661200883f04c49c53e7132224dac26da39d4a0" +dependencies = [ + "better_typeid_derive", +] + +[[package]] +name = "better_typeid_derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3deeecb812ca5300b7d3f66f730cc2ebd3511c3d36c691dd79c165d5b19a26e3" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "bimap" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" + +[[package]] +name = "bin-version" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "const-str", + "git-version", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.65.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" +dependencies = [ + "bitflags 1.3.2", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "peeking_take_while", + "prettyplease 0.2.20", + "proc-macro2 1.0.85", + "quote 1.0.36", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.66", +] + +[[package]] +name = "bip32" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b30ed1d6f8437a487a266c8293aeb95b61a23261273e3e02912cdb8b68bf798b" +dependencies = [ + "bs58 0.4.0", + "hmac", + "k256 0.11.6", + "once_cell", + "pbkdf2 0.11.0", + "rand_core 0.6.4", + "ripemd", + "sha2 0.10.8", + "subtle", + "zeroize", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitcoin-private" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57" + +[[package]] +name = "bitcoin_hashes" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d7066118b13d4b20b23645932dfb3a81ce7e29f95726c2036fa33cd7b092501" +dependencies = [ + "bitcoin-private", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + +[[package]] +name = "bitmaps" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" +dependencies = [ + "typenum", +] + +[[package]] +name = "bitvec" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" +dependencies = [ + "funty 1.1.0", + "radium 0.6.2", + "tap", + "wyz 0.2.0", +] + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty 2.0.0", + "radium 0.7.0", + "tap", + "wyz 0.5.1", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "block-padding 0.2.1", + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blst" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62dc83a094a71d43eeadd254b1ec2d24cb6a0bb6cadce00df51f0db594711a32" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff 0.13.0", + "group 0.13.0", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[package]] +name = "bnum" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56953345e39537a3e18bdaeba4cb0c58a78c1f61f361dc0fa7c5c7340ae87c5f" + +[[package]] +name = "brotli" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +dependencies = [ + "sha2 0.9.9", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2 0.10.8", + "tinyvec", +] + +[[package]] +name = "bstr" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "bytecount" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" + +[[package]] +name = "bytemuck" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +dependencies = [ + "serde", +] + +[[package]] +name = "bytes-varint" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54c1820c7c366b9d26c47143e1604454105a59969aade54e4f695d96acc8332f" +dependencies = [ + "bytes", +] + +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "cached" +version = "0.43.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc2fafddf188d13788e7099295a59b99e99b2148ab2195cae454e754cc099925" +dependencies = [ + "async-trait", + "async_once", + "cached_proc_macro", + "cached_proc_macro_types", + "futures", + "hashbrown 0.13.2", + "instant", + "lazy_static", + "once_cell", + "thiserror", + "tokio", +] + +[[package]] +name = "cached_proc_macro" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10ca87c81aaa3a949dbbe2b5e6c2c45dbc94ba4897e45ea31ff9ec5087be3dc" +dependencies = [ + "cached_proc_macro_types", + "darling 0.14.4", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "cached_proc_macro_types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0" + +[[package]] +name = "camino" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cassowary" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.0.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" +dependencies = [ + "jobserver", + "libc", + "once_cell", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-targets 0.52.5", +] + +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" +dependencies = [ + "atty", + "bitflags 1.3.2", + "clap_derive 3.2.25", + "clap_lex 0.2.4", + "indexmap 1.9.3", + "once_cell", + "strsim 0.10.0", + "termcolor", + "textwrap", +] + +[[package]] +name = "clap" +version = "4.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" +dependencies = [ + "clap_builder", + "clap_derive 4.5.5", +] + +[[package]] +name = "clap_builder" +version = "4.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" +dependencies = [ + "anstream", + "anstyle", + "clap_lex 0.7.1", + "strsim 0.11.1", + "terminal_size", +] + +[[package]] +name = "clap_derive" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "clap_derive" +version = "4.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" +dependencies = [ + "heck 0.5.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "clap_lex" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" + +[[package]] +name = "codespan" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3362992a0d9f1dd7c3d0e89e0ab2bb540b7a95fea8cd798090e758fda2899b5e" +dependencies = [ + "codespan-reporting", + "serde", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "serde", + "termcolor", + "unicode-width", +] + +[[package]] +name = "coins-bip32" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +dependencies = [ + "bs58 0.5.1", + "coins-core", + "digest 0.10.7", + "hmac", + "k256 0.13.3", + "serde", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-bip39" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +dependencies = [ + "bitvec 1.0.1", + "coins-bip32", + "hmac", + "once_cell", + "pbkdf2 0.12.2", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-core" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +dependencies = [ + "base64 0.21.7", + "bech32", + "bs58 0.5.1", + "digest 0.10.7", + "generic-array", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2 0.10.8", + "sha3 0.10.8", + "thiserror", +] + +[[package]] +name = "collectable" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08abddbaad209601e53c7dd4308d8c04c06f17bb7df006434e586a22b83be45a" + +[[package]] +name = "colorchoice" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" + +[[package]] +name = "colored" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +dependencies = [ + "lazy_static", + "windows-sys 0.48.0", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "consensus-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto", + "mysten-network", + "rand 0.8.5", + "serde", + "shared-crypto", +] + +[[package]] +name = "consensus-core" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-build", + "anemo-tower", + "anyhow", + "arc-swap", + "async-trait", + "base64 0.21.7", + "bcs", + "bytes", + "cfg-if", + "consensus-config", + "dashmap", + "enum_dispatch", + "fastcrypto", + "futures", + "http", + "hyper", + "hyper-rustls 0.24.2", + "itertools 0.10.5", + "mockall", + "mysten-common", + "mysten-metrics", + "mysten-network", + "nom", + "parking_lot 0.12.3", + "prometheus", + "prost 0.12.6", + "quinn-proto", + "rand 0.8.5", + "rustls 0.21.12", + "serde", + "shared-crypto", + "sui-macros", + "sui-protocol-config", + "sui-tls", + "tap", + "thiserror", + "tokio", + "tokio-rustls 0.24.1", + "tokio-stream", + "tokio-util 0.7.11", + "tonic 0.11.0", + "tonic-build", + "tower", + "tower-http", + "tracing", + "typed-store", +] + +[[package]] +name = "console" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.52.0", +] + +[[package]] +name = "const-hex" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-str" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3618cccc083bb987a415d85c02ca6c9994ea5b44731ec28b9ecf09658655fba9" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + +[[package]] +name = "count-min-sketch" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca319fe30d7b68949da20d78b612215708af87157d49665a4545dadcc20fecc7" +dependencies = [ + "rand 0.8.5", + "siphasher", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap 4.5.7", + "criterion-plot", + "futures", + "is-terminal", + "itertools 0.10.5", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "tokio", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools 0.10.5", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crossterm" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" +dependencies = [ + "bitflags 1.3.2", + "crossterm_winapi", + "libc", + "mio", + "parking_lot 0.12.3", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "csv" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" +dependencies = [ + "memchr", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.6.4", + "subtle-ng", + "zeroize", +] + +[[package]] +name = "darling" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core 0.14.4", + "darling_macro 0.14.4", +] + +[[package]] +name = "darling" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" +dependencies = [ + "darling_core 0.20.9", + "darling_macro 0.20.9", +] + +[[package]] +name = "darling_core" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.85", + "quote 1.0.36", + "strsim 0.10.0", + "syn 1.0.109", +] + +[[package]] +name = "darling_core" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.85", + "quote 1.0.36", + "strsim 0.11.1", + "syn 2.0.66", +] + +[[package]] +name = "darling_macro" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +dependencies = [ + "darling_core 0.14.4", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" +dependencies = [ + "darling_core 0.20.9", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + +[[package]] +name = "data-encoding-macro" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" +dependencies = [ + "data-encoding", + "syn 1.0.109", +] + +[[package]] +name = "deadpool" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "421fe0f90f2ab22016f32a9881be5134fdd71c65298917084b0c7477cbc3856e" +dependencies = [ + "async-trait", + "deadpool-runtime", + "num_cpus", + "retain_mut", + "tokio", +] + +[[package]] +name = "deadpool-runtime" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "092966b41edc516079bdf31ec78a2e0588d1d0c08f78b91d8307215928642b2b" + +[[package]] +name = "der" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +dependencies = [ + "const-oid", + "pem-rfc7468 0.6.0", + "zeroize", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "pem-rfc7468 0.7.0", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint 0.4.5", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "derive-syn-parse" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" +dependencies = [ + "darling 0.14.4", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder_macro" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" +dependencies = [ + "derive_builder_core", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "diesel" +version = "2.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff236accb9a5069572099f0b350a92e9560e8e63a9b8d546162f4a5e03026bb2" +dependencies = [ + "bitflags 2.5.0", + "byteorder", + "chrono", + "diesel_derives", + "itoa", + "pq-sys", + "r2d2", + "serde_json", +] + +[[package]] +name = "diesel-async" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e7974099f0d9bde0e010dd3a673555276a474f3362a7a52ab535a57b7c5056" +dependencies = [ + "async-trait", + "deadpool", + "diesel", + "futures-util", + "scoped-futures", + "tokio", + "tokio-postgres", +] + +[[package]] +name = "diesel-derive-enum" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81c5131a2895ef64741dad1d483f358c2a229a3a2d1b256778cdc5e146db64d4" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "diesel_derives" +version = "2.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14701062d6bed917b5c7103bdffaee1e4609279e240488ad24e7bd979ca6866c" +dependencies = [ + "diesel_table_macro_syntax", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "diesel_migrations" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6036b3f0120c5961381b570ee20a02432d7e2d27ea60de9578799cf9156914ac" +dependencies = [ + "diesel", + "migrations_internals", + "migrations_macros", +] + +[[package]] +name = "diesel_table_macro_syntax" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5" +dependencies = [ + "syn 2.0.66", +] + +[[package]] +name = "difference" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" + +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + +[[package]] +name = "diffy" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e616e59155c92257e84970156f506287853355f58cd4a6eb167385722c32b790" +dependencies = [ + "nu-ansi-term", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys 0.3.7", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys 0.4.1", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + +[[package]] +name = "downcast" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + +[[package]] +name = "ecdsa" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" +dependencies = [ + "der 0.6.1", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", +] + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der 0.7.9", + "digest 0.10.7", + "elliptic-curve 0.13.8", + "rfc6979 0.4.0", + "signature 2.2.0", + "spki 0.7.3", +] + +[[package]] +name = "ed25519" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +dependencies = [ + "pkcs8 0.9.0", + "signature 1.6.4", + "zeroize", +] + +[[package]] +name = "ed25519-consensus" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" +dependencies = [ + "curve25519-dalek-ng", + "hex", + "rand_core 0.6.4", + "serde", + "sha2 0.9.9", + "thiserror", + "zeroize", +] + +[[package]] +name = "either" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" + +[[package]] +name = "elliptic-curve" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +dependencies = [ + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.1", + "digest 0.10.7", + "ff 0.12.1", + "generic-array", + "group 0.12.1", + "rand_core 0.6.4", + "sec1 0.3.0", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct 0.2.0", + "crypto-bigint 0.5.5", + "digest 0.10.7", + "ff 0.13.0", + "generic-array", + "group 0.13.0", + "pem-rfc7468 0.7.0", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "sec1 0.7.3", + "subtle", + "zeroize", +] + +[[package]] +name = "ena" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +dependencies = [ + "log", +] + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enr" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +dependencies = [ + "base64 0.21.7", + "bytes", + "hex", + "k256 0.13.3", + "log", + "rand 0.8.5", + "rlp", + "serde", + "sha3 0.10.8", + "zeroize", +] + +[[package]] +name = "enum-compat-util" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "serde_yaml", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "erasable" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f11890ce181d47a64e5d1eb4b6caba0e7bae911a356723740d058a5d0340b7d" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "eth-keystore" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" +dependencies = [ + "aes", + "ctr", + "digest 0.10.7", + "hex", + "hmac", + "pbkdf2 0.11.0", + "rand 0.8.5", + "scrypt", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3 0.10.8", + "thiserror", + "uuid 0.8.2", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3 0.10.8", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "primitive-types 0.12.2", + "scale-info", + "uint", +] + +[[package]] +name = "ethers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" +dependencies = [ + "ethers-addressbook", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-middleware", + "ethers-providers", + "ethers-signers", + "ethers-solc", +] + +[[package]] +name = "ethers-addressbook" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" +dependencies = [ + "ethers-core", + "once_cell", + "serde", + "serde_json", +] + +[[package]] +name = "ethers-contract" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" +dependencies = [ + "const-hex", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "futures-util", + "once_cell", + "pin-project", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "ethers-contract-abigen" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" +dependencies = [ + "Inflector", + "const-hex", + "dunce", + "ethers-core", + "ethers-etherscan", + "eyre", + "prettyplease 0.2.20", + "proc-macro2 1.0.85", + "quote 1.0.36", + "regex", + "reqwest", + "serde", + "serde_json", + "syn 2.0.66", + "toml 0.8.14", + "walkdir", +] + +[[package]] +name = "ethers-contract-derive" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" +dependencies = [ + "Inflector", + "const-hex", + "ethers-contract-abigen", + "ethers-core", + "proc-macro2 1.0.85", + "quote 1.0.36", + "serde_json", + "syn 2.0.66", +] + +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" +dependencies = [ + "arrayvec", + "bytes", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve 0.13.8", + "ethabi", + "generic-array", + "k256 0.13.3", + "num_enum 0.7.2", + "once_cell", + "open-fastrlp", + "rand 0.8.5", + "rlp", + "serde", + "serde_json", + "strum 0.26.2", + "syn 2.0.66", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid 0.2.4", +] + +[[package]] +name = "ethers-etherscan" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" +dependencies = [ + "chrono", + "ethers-core", + "reqwest", + "semver", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-middleware" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" +dependencies = [ + "async-trait", + "auto_impl", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-providers", + "ethers-signers", + "futures-channel", + "futures-locks", + "futures-util", + "instant", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", +] + +[[package]] +name = "ethers-providers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.21.7", + "bytes", + "const-hex", + "enr", + "ethers-core", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "http", + "instant", + "jsonwebtoken", + "once_cell", + "pin-project", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-tungstenite", + "tracing", + "tracing-futures", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "ws_stream_wasm", +] + +[[package]] +name = "ethers-signers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" +dependencies = [ + "async-trait", + "coins-bip32", + "coins-bip39", + "const-hex", + "elliptic-curve 0.13.8", + "eth-keystore", + "ethers-core", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-solc" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" +dependencies = [ + "cfg-if", + "const-hex", + "dirs 5.0.1", + "dunce", + "ethers-core", + "glob", + "home", + "md-5", + "num_cpus", + "once_cell", + "path-slash", + "rayon", + "regex", + "semver", + "serde", + "serde_json", + "solang-parser", + "svm-rs", + "thiserror", + "tiny-keccak", + "tokio", + "tracing", + "walkdir", + "yansi", +] + +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fail" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be3c61c59fdc91f5dbc3ea31ee8623122ce80057058be560654c5d410d181a6" +dependencies = [ + "lazy_static", + "log", + "rand 0.7.3", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fast_chemail" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "495a39d30d624c2caabe6312bfead73e7717692b44e0b32df168c275a2e8e9e4" +dependencies = [ + "ascii_utils", +] + +[[package]] +name = "fastcrypto" +version = "0.1.8" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "aes", + "aes-gcm", + "ark-ec", + "ark-ff", + "ark-secp256r1", + "ark-serialize", + "auto_ops", + "base64ct", + "bech32", + "bincode", + "blake2", + "blst", + "bs58 0.4.0", + "cbc", + "ctr", + "curve25519-dalek-ng", + "derive_more", + "digest 0.10.7", + "ecdsa 0.16.9", + "ed25519-consensus", + "elliptic-curve 0.13.8", + "fastcrypto-derive", + "generic-array", + "hex", + "hex-literal", + "hkdf", + "lazy_static", + "num-bigint 0.4.5", + "once_cell", + "p256", + "rand 0.8.5", + "readonly", + "rfc6979 0.4.0", + "rsa", + "schemars", + "secp256k1", + "serde", + "serde_json", + "serde_with 2.3.3", + "sha2 0.10.8", + "sha3 0.10.8", + "signature 2.2.0", + "static_assertions", + "thiserror", + "tokio", + "typenum", + "zeroize", +] + +[[package]] +name = "fastcrypto-derive" +version = "0.1.3" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "fastcrypto-tbls" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "bcs", + "digest 0.10.7", + "fastcrypto", + "hex", + "itertools 0.10.5", + "rand 0.8.5", + "serde", + "sha3 0.10.8", + "tap", + "tracing", + "typenum", +] + +[[package]] +name = "fastcrypto-vdf" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "bcs", + "fastcrypto", + "lazy_static", + "num-bigint 0.4.5", + "num-integer", + "num-prime", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "serde", + "serde_with 2.3.3", +] + +[[package]] +name = "fastcrypto-zkp" +version = "0.1.3" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "ark-bls12-381", + "ark-bn254", + "ark-ec", + "ark-ff", + "ark-groth16", + "ark-relations", + "ark-serialize", + "ark-snark", + "blst", + "byte-slice-cast", + "derive_more", + "fastcrypto", + "ff 0.13.0", + "im", + "itertools 0.12.1", + "lazy_static", + "neptune", + "num-bigint 0.4.5", + "once_cell", + "regex", + "reqwest", + "schemars", + "serde", + "serde_json", + "typenum", +] + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fdlimit" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" +dependencies = [ + "libc", +] + +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "bitvec 1.0.1", + "byteorder", + "ff_derive", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff_derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f54704be45ed286151c5e11531316eaef5b8f5af7d597b806fdb8af108d84a" +dependencies = [ + "addchain", + "cfg-if", + "num-bigint 0.3.3", + "num-integer", + "num-traits", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "filetime" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "windows-sys 0.52.0", +] + +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fragile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" + +[[package]] +name = "framework" +version = "0.1.0" +dependencies = [ + "move-binary-format", + "move-bytecode-source-map", + "move-core-types", + "move-symbol-pool", + "move-transactional-test-runner", + "proc-macro2 1.0.85", + "quote 1.0.36", + "sui-ctf-framework", + "sui-transactional-test-runner", + "sui-types", + "threadpool", + "tokio", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "fsevent-sys" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +dependencies = [ + "libc", +] + +[[package]] +name = "funty" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-locks" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" +dependencies = [ + "futures-channel", + "futures-task", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "serde", + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "ghash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +dependencies = [ + "opaque-debug", + "polyval", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + +[[package]] +name = "git-version" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19" +dependencies = [ + "git-version-macro", +] + +[[package]] +name = "git-version-macro" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "globset" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "governor" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" +dependencies = [ + "cfg-if", + "dashmap", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot 0.12.3", + "portable-atomic", + "quanta", + "rand 0.8.5", + "smallvec", + "spinning_top", +] + +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff 0.12.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", + "rand 0.8.5", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.2.6", + "slab", + "tokio", + "tokio-util 0.7.11", + "tracing", +] + +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "handlebars" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" +dependencies = [ + "log", + "pest", + "pest_derive", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.8", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.11", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash 0.8.11", + "allocator-api2", +] + +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +dependencies = [ + "fxhash", +] + +[[package]] +name = "hdrhistogram" +version = "7.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" +dependencies = [ + "base64 0.21.7", + "byteorder", + "crossbeam-channel", + "flate2", + "nom", + "num-traits", +] + +[[package]] +name = "headers" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +dependencies = [ + "base64 0.21.7", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "hmac-sha512" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e806677ce663d0a199541030c816847b36e8dc095f70dae4a4f4ad63da5383" + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" + +[[package]] +name = "httparse" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0e7a4dd27b9476dc40cb050d3632d3bba3a70ddbff012285f7f8559a1e7e545" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.7", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +dependencies = [ + "http", + "hyper", + "log", + "rustls 0.20.9", + "rustls-native-certs", + "tokio", + "tokio-rustls 0.23.4", + "webpki-roots 0.22.6", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http", + "hyper", + "log", + "rustls 0.21.12", + "rustls-native-certs", + "tokio", + "tokio-rustls 0.24.1", + "webpki-roots 0.25.4", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed" +dependencies = [ + "icu_normalizer", + "icu_properties", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "im" +version = "15.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" +dependencies = [ + "bitmaps", + "rand_core 0.6.4", + "rand_xoshiro", + "sized-chunks", + "typenum", + "version_check", +] + +[[package]] +name = "impl-codec" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" +dependencies = [ + "parity-scale-codec 2.3.1", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec 3.6.12", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "indicatif" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +dependencies = [ + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", +] + +[[package]] +name = "inotify" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +dependencies = [ + "bitflags 1.3.2", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding 0.3.3", + "generic-array", +] + +[[package]] +name = "insta" +version = "1.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "810ae6042d48e2c9e9215043563a58a80b877bc863228a74cf10c49d4620a6f5" +dependencies = [ + "console", + "lazy_static", + "linked-hash-map", + "pest", + "pest_derive", + "serde", + "similar", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "integer-encoding" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "iri-string" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f0f7638c1e223529f1bfdc48c8b133b9e0b434094d1d28473161ee48b235f78" +dependencies = [ + "nom", +] + +[[package]] +name = "is-terminal" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jobserver" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json_to_table" +version = "0.6.0" +source = "git+https://github.com/zhiburt/tabled/?rev=e449317a1c02eb6b29e409ad6617e5d9eb7b3bd4#e449317a1c02eb6b29e409ad6617e5d9eb7b3bd4" +dependencies = [ + "serde_json", + "tabled", +] + +[[package]] +name = "jsonrpsee" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "jsonrpsee-core", + "jsonrpsee-http-client", + "jsonrpsee-proc-macros", + "jsonrpsee-server", + "jsonrpsee-types", + "jsonrpsee-ws-client", + "tracing", +] + +[[package]] +name = "jsonrpsee-client-transport" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "futures-util", + "http", + "jsonrpsee-core", + "jsonrpsee-types", + "pin-project", + "rustls-native-certs", + "soketto", + "thiserror", + "tokio", + "tokio-rustls 0.23.4", + "tokio-util 0.7.11", + "tracing", + "webpki-roots 0.22.6", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "anyhow", + "arrayvec", + "async-lock", + "async-trait", + "beef", + "futures-channel", + "futures-timer", + "futures-util", + "globset", + "hyper", + "jsonrpsee-types", + "parking_lot 0.12.3", + "rand 0.8.5", + "rustc-hash", + "serde", + "serde_json", + "soketto", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-http-client" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "async-trait", + "hyper", + "hyper-rustls 0.23.2", + "jsonrpsee-core", + "jsonrpsee-types", + "rustc-hash", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "jsonrpsee-server" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "futures-channel", + "futures-util", + "http", + "hyper", + "jsonrpsee-core", + "jsonrpsee-types", + "serde", + "serde_json", + "soketto", + "tokio", + "tokio-stream", + "tokio-util 0.7.11", + "tower", + "tracing", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "anyhow", + "beef", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "jsonrpsee-ws-client" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "http", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", +] + +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.7", + "pem", + "ring 0.16.20", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "k256" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +dependencies = [ + "cfg-if", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", + "sha2 0.10.8", + "sha3 0.10.8", +] + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "once_cell", + "sha2 0.10.8", + "signature 2.2.0", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "kqueue" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set", + "ena", + "itertools 0.11.0", + "lalrpop-util", + "petgraph 0.6.5", + "regex", + "regex-syntax 0.8.4", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid 0.2.4", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +dependencies = [ + "regex-automata 0.4.7", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libloading" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +dependencies = [ + "cfg-if", + "windows-targets 0.52.5", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.5.0", + "libc", +] + +[[package]] +name = "librocksdb-sys" +version = "0.11.0+8.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" +dependencies = [ + "bindgen", + "bzip2-sys", + "cc", + "glob", + "libc", + "libz-sys", + "lz4-sys", + "zstd-sys", +] + +[[package]] +name = "libz-sys" +version = "1.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +dependencies = [ + "serde", +] + +[[package]] +name = "lru" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" +dependencies = [ + "hashbrown 0.12.3", +] + +[[package]] +name = "lru" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" +dependencies = [ + "hashbrown 0.13.2", +] + +[[package]] +name = "lru" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" +dependencies = [ + "hashbrown 0.14.5", +] + +[[package]] +name = "lz4-sys" +version = "1.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9764018d143cc854c9f17f0b907de70f14393b1f502da6375dce70f00514eb3" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "markdown-gen" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8034621d7f1258317ca1dfb9205e3925d27ee4aa2a46620a09c567daf0310562" + +[[package]] +name = "match_opt" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "405ba1524a1e6ae755334d6966380c60ec40157e0155f9032dd3c294b6384da9" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchit" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + +[[package]] +name = "memchr" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" + +[[package]] +name = "migrations_internals" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f23f71580015254b020e856feac3df5878c2c7a8812297edd6c0a485ac9dada" +dependencies = [ + "serde", + "toml 0.7.8", +] + +[[package]] +name = "migrations_macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cce3325ac70e67bbab5bd837a31cae01f1a6db64e0e744a33cb03a543469ef08" +dependencies = [ + "migrations_internals", + "proc-macro2 1.0.85", + "quote 1.0.36", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "mockall" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "lazy_static", + "mockall_derive", + "predicates", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +dependencies = [ + "cfg-if", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "moka" +version = "0.12.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0d88686dc561d743b40de8269b26eaf0dc58781bde087b0984646602021d08" +dependencies = [ + "crossbeam-channel", + "crossbeam-epoch", + "crossbeam-utils", + "once_cell", + "parking_lot 0.12.3", + "rustc_version", + "smallvec", + "tagptr", + "thiserror", + "triomphe", + "uuid 1.8.0", +] + +[[package]] +name = "move-abstract-interpreter" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", + "move-bytecode-verifier-meter", +] + +[[package]] +name = "move-abstract-interpreter-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", +] + +[[package]] +name = "move-abstract-stack" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" + +[[package]] +name = "move-binary-format" +version = "0.0.3" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "enum-compat-util", + "move-core-types", + "move-proc-macros", + "ref-cast", + "serde", + "variant_count", +] + +[[package]] +name = "move-borrow-graph" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" + +[[package]] +name = "move-bytecode-source-map" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "move-symbol-pool", + "serde", +] + +[[package]] +name = "move-bytecode-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "move-binary-format", + "move-core-types", + "petgraph 0.5.1", + "serde-reflection", +] + +[[package]] +name = "move-bytecode-verifier" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-verifier-meter" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", + "move-core-types", + "move-vm-config", +] + +[[package]] +name = "move-bytecode-verifier-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter-v2", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-verifier-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter-v2", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-verifier-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter-v2", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-viewer" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "clap 4.5.7", + "crossterm", + "move-binary-format", + "move-bytecode-source-map", + "move-disassembler", + "regex", + "tui", +] + +[[package]] +name = "move-cli" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "codespan-reporting", + "colored", + "difference", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-viewer", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-coverage", + "move-disassembler", + "move-docgen", + "move-errmapgen", + "move-ir-types", + "move-package", + "move-prover", + "move-stdlib", + "move-stdlib-natives", + "move-unit-test", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "serde_yaml", + "tempfile", + "toml_edit 0.14.4", + "walkdir", +] + +[[package]] +name = "move-command-line-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "difference", + "dirs-next", + "hex", + "move-core-types", + "num-bigint 0.4.5", + "once_cell", + "serde", + "sha2 0.9.9", + "vfs", + "walkdir", +] + +[[package]] +name = "move-compiler" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "codespan-reporting", + "dunce", + "hex", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-source-map", + "move-bytecode-verifier", + "move-command-line-common", + "move-core-types", + "move-ir-to-bytecode", + "move-ir-types", + "move-proc-macros", + "move-symbol-pool", + "once_cell", + "petgraph 0.5.1", + "regex", + "serde", + "serde_json", + "similar", + "stacker", + "tempfile", + "vfs", +] + +[[package]] +name = "move-core-types" +version = "0.0.4" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "enum-compat-util", + "ethnum", + "hex", + "leb128", + "move-proc-macros", + "num", + "once_cell", + "primitive-types 0.10.1", + "rand 0.8.5", + "ref-cast", + "serde", + "serde_bytes", + "thiserror", + "uint", +] + +[[package]] +name = "move-coverage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "codespan", + "colored", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "petgraph 0.5.1", + "serde", +] + +[[package]] +name = "move-disassembler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "colored", + "hex", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-coverage", + "move-ir-types", +] + +[[package]] +name = "move-docgen" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "codespan", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-compiler", + "move-model", + "num", + "once_cell", + "regex", + "serde", +] + +[[package]] +name = "move-errmapgen" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "move-command-line-common", + "move-core-types", + "move-model", + "serde", +] + +[[package]] +name = "move-ir-compiler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-verifier", + "move-command-line-common", + "move-ir-to-bytecode", + "serde_json", +] + +[[package]] +name = "move-ir-to-bytecode" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "codespan-reporting", + "log", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-core-types", + "move-ir-to-bytecode-syntax", + "move-ir-types", + "move-symbol-pool", + "ouroboros", +] + +[[package]] +name = "move-ir-to-bytecode-syntax" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "hex", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "move-symbol-pool", +] + +[[package]] +name = "move-ir-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-command-line-common", + "move-core-types", + "move-symbol-pool", + "once_cell", + "serde", +] + +[[package]] +name = "move-model" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "codespan", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-disassembler", + "move-ir-types", + "move-symbol-pool", + "num", + "once_cell", + "regex", + "serde", +] + +[[package]] +name = "move-package" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "clap 4.5.7", + "colored", + "itertools 0.10.5", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-docgen", + "move-model", + "move-symbol-pool", + "named-lock", + "once_cell", + "petgraph 0.5.1", + "regex", + "serde", + "serde_yaml", + "sha2 0.9.9", + "tempfile", + "toml 0.5.11", + "toml_edit 0.14.4", + "treeline", + "vfs", + "walkdir", + "whoami", +] + +[[package]] +name = "move-proc-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "enum-compat-util", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "move-prover" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "clap 4.5.7", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-command-line-common", + "move-compiler", + "move-docgen", + "move-errmapgen", + "move-model", + "move-stackless-bytecode", + "once_cell", + "serde", + "simplelog", + "toml 0.5.11", +] + +[[package]] +name = "move-stackless-bytecode" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "codespan", + "codespan-reporting", + "ethnum", + "im", + "itertools 0.10.5", + "log", + "move-binary-format", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-model", + "num", + "petgraph 0.5.1", + "serde", +] + +[[package]] +name = "move-stdlib" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "hex", + "log", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "move-docgen", + "move-errmapgen", + "move-prover", + "move-stdlib-natives", + "move-vm-runtime", + "sha2 0.9.9", + "walkdir", +] + +[[package]] +name = "move-stdlib-natives" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-stdlib-natives-v0" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime-v0", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-stdlib-natives-v1" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime-v1", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-stdlib-natives-v2" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime-v2", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-symbol-pool" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "once_cell", + "phf", + "serde", +] + +[[package]] +name = "move-transactional-test-runner" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "clap 4.5.7", + "move-binary-format", + "move-bytecode-source-map", + "move-cli", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-disassembler", + "move-ir-compiler", + "move-ir-types", + "move-stdlib", + "move-stdlib-natives", + "move-symbol-pool", + "move-vm-config", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "once_cell", + "rayon", + "regex", + "tempfile", + "tokio", +] + +[[package]] +name = "move-unit-test" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "better_any", + "clap 4.5.7", + "codespan-reporting", + "colored", + "itertools 0.10.5", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-ir-types", + "move-model", + "move-stdlib", + "move-stdlib-natives", + "move-symbol-pool", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "once_cell", + "rand 0.8.5", + "rayon", + "regex", +] + +[[package]] +name = "move-vm-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", + "once_cell", +] + +[[package]] +name = "move-vm-profiler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-vm-config", + "once_cell", + "serde", + "serde_json", + "tracing", +] + +[[package]] +name = "move-vm-runtime" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-runtime-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier-v0", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-runtime-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier-v1", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-runtime-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier-v2", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-test-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "move-binary-format", + "move-core-types", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "serde", +] + +[[package]] +name = "move-vm-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "move-binary-format", + "move-core-types", + "move-vm-profiler", + "serde", + "smallvec", +] + +[[package]] +name = "msim" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=077b735b484cf33e79f9d621db1d0c3a5827b81e#077b735b484cf33e79f9d621db1d0c3a5827b81e" +dependencies = [ + "ahash 0.7.8", + "async-task", + "bincode", + "bytes", + "cc", + "downcast-rs", + "erasable", + "futures", + "lazy_static", + "libc", + "msim-macros", + "naive-timer", + "pin-project-lite", + "rand 0.8.5", + "real_tokio", + "serde", + "socket2 0.4.10", + "tap", + "tokio-util 0.7.10", + "toml 0.5.11", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "msim-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=077b735b484cf33e79f9d621db1d0c3a5827b81e#077b735b484cf33e79f9d621db1d0c3a5827b81e" +dependencies = [ + "darling 0.14.4", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "multer" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" +dependencies = [ + "bytes", + "encoding_rs", + "futures-util", + "http", + "httparse", + "log", + "memchr", + "mime", + "spin 0.9.8", + "version_check", +] + +[[package]] +name = "multiaddr" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "log", + "multibase", + "multihash", + "percent-encoding", + "serde", + "static_assertions", + "unsigned-varint", + "url", +] + +[[package]] +name = "multibase" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +dependencies = [ + "base-x", + "data-encoding", + "data-encoding-macro", +] + +[[package]] +name = "multihash" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" +dependencies = [ + "core2", + "multihash-derive", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "multimap" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" + +[[package]] +name = "mysten-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "parking_lot 0.12.3", + "tokio", +] + +[[package]] +name = "mysten-metrics" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "axum", + "dashmap", + "futures", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "prometheus-closure-metric", + "scopeguard", + "tap", + "tokio", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "mysten-network" +version = "0.2.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "bcs", + "bytes", + "eyre", + "futures", + "http", + "multiaddr", + "pin-project-lite", + "serde", + "snap", + "tokio", + "tokio-stream", + "tonic 0.11.0", + "tonic-health", + "tower", + "tower-http", + "tracing", +] + +[[package]] +name = "mysten-util-mem" +version = "0.11.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "cfg-if", + "ed25519-consensus", + "fastcrypto", + "fastcrypto-tbls", + "hashbrown 0.12.3", + "impl-trait-for-tuples", + "indexmap 2.2.6", + "mysten-util-mem-derive", + "once_cell", + "parking_lot 0.12.3", + "roaring", + "smallvec", +] + +[[package]] +name = "mysten-util-mem-derive" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "proc-macro2 1.0.85", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "naive-timer" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034a0ad7deebf0c2abcf2435950a6666c3c15ea9d8fad0c0f48efa8a7f843fed" + +[[package]] +name = "named-lock" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40a3eb6b7c682b65d1f631ec3176829d72ab450b3aacdd3f719bf220822e59ac" +dependencies = [ + "libc", + "once_cell", + "parking_lot 0.12.3", + "thiserror", + "widestring", + "winapi", +] + +[[package]] +name = "narwhal-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto", + "match_opt", + "mysten-network", + "mysten-util-mem", + "narwhal-crypto", + "rand 0.8.5", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "narwhal-crypto" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "fastcrypto", + "serde", + "shared-crypto", +] + +[[package]] +name = "narwhal-executor" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "bcs", + "bincode", + "bytes", + "fastcrypto", + "futures", + "mockall", + "mysten-metrics", + "narwhal-config", + "narwhal-crypto", + "narwhal-network", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "prometheus", + "serde", + "sui-protocol-config", + "thiserror", + "tokio", + "tonic 0.11.0", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-network" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "async-trait", + "axum", + "axum-server", + "backoff", + "bytes", + "dashmap", + "futures", + "mysten-common", + "mysten-metrics", + "narwhal-crypto", + "narwhal-types", + "parking_lot 0.12.3", + "prometheus", + "quinn-proto", + "rand 0.8.5", + "sui-macros", + "tokio", + "tower", + "tracing", +] + +[[package]] +name = "narwhal-node" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "arc-swap", + "async-trait", + "axum", + "bytes", + "cfg-if", + "clap 4.5.7", + "eyre", + "fastcrypto", + "futures", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "narwhal-worker", + "prometheus", + "rand 0.8.5", + "reqwest", + "sui-keys", + "sui-protocol-config", + "sui-types", + "telemetry-subscribers", + "thiserror", + "tokio", + "tokio-stream", + "tracing", + "tracing-subscriber", + "url", +] + +[[package]] +name = "narwhal-primary" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "async-trait", + "backoff", + "bcs", + "bytes", + "cfg-if", + "fastcrypto", + "futures", + "governor", + "itertools 0.10.5", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-network", + "narwhal-storage", + "narwhal-types", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "rand 0.8.5", + "sui-macros", + "sui-protocol-config", + "tap", + "thiserror", + "tokio", + "tokio-stream", + "tower", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-storage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto", + "fastcrypto-tbls", + "futures", + "lru 0.10.1", + "mysten-common", + "mysten-metrics", + "narwhal-config", + "narwhal-types", + "parking_lot 0.12.3", + "prometheus", + "sui-macros", + "tap", + "tempfile", + "tokio", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-test-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "fastcrypto", + "fdlimit", + "indexmap 2.2.6", + "itertools 0.10.5", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-node", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "narwhal-worker", + "once_cell", + "prometheus", + "rand 0.8.5", + "sui-protocol-config", + "telemetry-subscribers", + "tempfile", + "tokio", + "tonic 0.11.0", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-build", + "anyhow", + "base64 0.21.7", + "bcs", + "bytes", + "derive_builder", + "enum_dispatch", + "fastcrypto", + "futures", + "indexmap 2.2.6", + "mockall", + "mysten-common", + "mysten-metrics", + "mysten-network", + "mysten-util-mem", + "narwhal-config", + "narwhal-crypto", + "once_cell", + "prometheus", + "proptest", + "proptest-derive", + "prost 0.12.6", + "prost-build", + "protobuf-src", + "rand 0.8.5", + "roaring", + "rustversion", + "serde", + "serde_with 2.3.3", + "sui-protocol-config", + "thiserror", + "tokio", + "tonic 0.11.0", + "tonic-build", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-worker" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "arc-swap", + "async-trait", + "byteorder", + "bytes", + "eyre", + "fastcrypto", + "futures", + "governor", + "itertools 0.10.5", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-network", + "narwhal-types", + "prometheus", + "rand 0.8.5", + "sui-protocol-config", + "tap", + "thiserror", + "tokio", + "tonic 0.11.0", + "tower", + "tracing", + "typed-store", +] + +[[package]] +name = "neptune" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06626c9ac04c894e9a23d061ba1309f28506cdc5fe64156d28a15fb57fc8e438" +dependencies = [ + "bellpepper", + "bellpepper-core", + "blake2s_simd", + "blstrs", + "byteorder", + "ff 0.13.0", + "generic-array", + "log", + "pasta_curves", + "serde", + "trait-set", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nonempty" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "995defdca0a589acfdd1bd2e8e3b896b4d4f7675a31fd14c32611440c7f608e6" + +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + +[[package]] +name = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + +[[package]] +name = "notify" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" +dependencies = [ + "bitflags 2.5.0", + "crossbeam-channel", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "log", + "mio", + "walkdir", + "windows-sys 0.48.0", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint 0.4.5", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" +dependencies = [ + "num-integer", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-modular" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a5fe11d4135c3bcdf3a95b18b194afa9608a5f6ff034f5d857bc9a27fb0119" +dependencies = [ + "num-bigint 0.4.5", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-prime" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e238432a7881ec7164503ccc516c014bf009be7984cde1ba56837862543bdec3" +dependencies = [ + "bitvec 1.0.1", + "either", + "lru 0.12.3", + "num-bigint 0.4.5", + "num-integer", + "num-modular", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint 0.4.5", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.9", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", +] + +[[package]] +name = "num_enum" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +dependencies = [ + "num_enum_derive 0.7.2", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "object" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "576dfe1fc8f9df304abb159d767a29d0476f7750fbf8aa7ad07816004a207434" +dependencies = [ + "memchr", +] + +[[package]] +name = "object_store" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f930c88a43b1c3f6e776dfe495b4afab89882dbc81530c632db2ed65451ebcb4" +dependencies = [ + "async-trait", + "base64 0.21.7", + "bytes", + "chrono", + "futures", + "humantime", + "hyper", + "itertools 0.11.0", + "parking_lot 0.12.3", + "percent-encoding", + "quick-xml", + "rand 0.8.5", + "reqwest", + "ring 0.16.20", + "rustls-pemfile", + "serde", + "serde_json", + "snafu", + "tokio", + "tracing", + "url", + "walkdir", +] + +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "oorandom" +version = "11.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "opentelemetry" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9591d937bc0e6d2feb6f71a559540ab300ea49955229c347a517a28d27784c54" +dependencies = [ + "opentelemetry_api", + "opentelemetry_sdk", +] + +[[package]] +name = "opentelemetry" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a" +dependencies = [ + "futures-core", + "futures-sink", + "indexmap 2.2.6", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", + "urlencoding", +] + +[[package]] +name = "opentelemetry-otlp" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e5e5a5c4135864099f3faafbe939eb4d7f9b80ebf68a8448da961b32a7c1275" +dependencies = [ + "async-trait", + "futures-core", + "http", + "opentelemetry-proto", + "opentelemetry-semantic-conventions", + "opentelemetry_api", + "opentelemetry_sdk", + "prost 0.11.9", + "thiserror", + "tokio", + "tonic 0.9.2", +] + +[[package]] +name = "opentelemetry-proto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e3f814aa9f8c905d0ee4bde026afd3b2577a97c10e1699912e3e44f0c4cbeb" +dependencies = [ + "opentelemetry_api", + "opentelemetry_sdk", + "prost 0.11.9", + "tonic 0.9.2", +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73c9f9340ad135068800e7f1b24e9e09ed9e7143f5bf8518ded3d3ec69789269" +dependencies = [ + "opentelemetry 0.20.0", +] + +[[package]] +name = "opentelemetry_api" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a81f725323db1b1206ca3da8bb19874bbd3f57c3bcd59471bfb04525b265b9b" +dependencies = [ + "futures-channel", + "futures-util", + "indexmap 1.9.3", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", + "urlencoding", +] + +[[package]] +name = "opentelemetry_sdk" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa8e705a0612d48139799fcbaba0d4a90f06277153e43dd2bdc16c6f0edd8026" +dependencies = [ + "async-trait", + "crossbeam-channel", + "futures-channel", + "futures-executor", + "futures-util", + "once_cell", + "opentelemetry_api", + "ordered-float", + "percent-encoding", + "rand 0.8.5", + "regex", + "serde_json", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-float" +version = "3.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc" +dependencies = [ + "num-traits", +] + +[[package]] +name = "os_str_bytes" +version = "6.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" + +[[package]] +name = "ouroboros" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2ba07320d39dfea882faa70554b4bd342a5f273ed59ba7c1c6b4c840492c954" +dependencies = [ + "aliasable", + "ouroboros_macro", + "static_assertions", +] + +[[package]] +name = "ouroboros_macro" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec4c6225c69b4ca778c0aea097321a64c421cf4577b331c61b229267edabb6f8" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "primeorder", + "sha2 0.10.8", +] + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group 0.13.0", +] + +[[package]] +name = "papergrid" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae7891b22598926e4398790c8fe6447930c72a67d36d983a49d6ce682ce83290" +dependencies = [ + "bytecount", + "fnv", + "unicode-width", +] + +[[package]] +name = "parity-scale-codec" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" +dependencies = [ + "arrayvec", + "bitvec 0.20.4", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive 2.3.1", + "serde", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +dependencies = [ + "arrayvec", + "bitvec 1.0.1", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive 3.6.12", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.1", + "smallvec", + "windows-targets 0.52.5", +] + +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "pasta_curves" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" +dependencies = [ + "blake2b_simd", + "ff 0.13.0", + "group 0.13.0", + "hex", + "lazy_static", + "rand 0.8.5", + "serde", + "static_assertions", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", + "hmac", + "password-hash", + "sha2 0.10.8", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "pem-rfc7468" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac" +dependencies = [ + "base64ct", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "pest_meta" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" +dependencies = [ + "once_cell", + "pest", + "sha2 0.10.8", +] + +[[package]] +name = "petgraph" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +dependencies = [ + "fixedbitset 0.2.0", + "indexmap 1.9.3", +] + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset 0.4.2", + "indexmap 2.2.6", +] + +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared 0.11.2", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs1" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719" +dependencies = [ + "der 0.6.1", + "pkcs8 0.9.0", + "spki 0.6.0", + "zeroize", +] + +[[package]] +name = "pkcs8" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +dependencies = [ + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.9", + "spki 0.7.3", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "plotters" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7" + +[[package]] +name = "plotters-svg" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81b30686a7d9c3e010b84284bdd26a29f2138574f52f5eb6f794fc0ad924e705" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "portable-atomic" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" + +[[package]] +name = "postgres-protocol" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520" +dependencies = [ + "base64 0.21.7", + "byteorder", + "bytes", + "fallible-iterator", + "hmac", + "md-5", + "memchr", + "rand 0.8.5", + "sha2 0.10.8", + "stringprep", +] + +[[package]] +name = "postgres-types" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d2234cdee9408b523530a9b6d2d6b373d1db34f6a8e51dc03ded1828d7fb67c" +dependencies = [ + "bytes", + "fallible-iterator", + "postgres-protocol", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "pq-sys" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c0052426df997c0cbd30789eb44ca097e3541717a7b8fa36b1c464ee7edebd" +dependencies = [ + "vcpkg", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "predicates" +version = "2.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +dependencies = [ + "difflib", + "float-cmp", + "itertools 0.10.5", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" + +[[package]] +name = "predicates-tree" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +dependencies = [ + "predicates-core", + "termtree", +] + +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2 1.0.85", + "syn 1.0.109", +] + +[[package]] +name = "prettyplease" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +dependencies = [ + "proc-macro2 1.0.85", + "syn 2.0.66", +] + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve 0.13.8", +] + +[[package]] +name = "primitive-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +dependencies = [ + "fixed-hash 0.7.0", + "impl-codec 0.5.1", + "impl-serde 0.3.2", + "uint", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "scale-info", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml 0.5.11", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", +] + +[[package]] +name = "proc-macro2" +version = "1.0.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prometheus" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" +dependencies = [ + "cfg-if", + "fnv", + "lazy_static", + "memchr", + "parking_lot 0.12.3", + "protobuf", + "thiserror", +] + +[[package]] +name = "prometheus-closure-metric" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "prometheus", + "protobuf", +] + +[[package]] +name = "proptest" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags 2.5.0", + "lazy_static", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_xorshift", + "regex-syntax 0.8.4", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "proptest-derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90b46295382dc76166cb7cf2bb4a97952464e4b7ed5a43e6cd34e1fec3349ddc" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", +] + +[[package]] +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive 0.12.6", +] + +[[package]] +name = "prost-build" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" +dependencies = [ + "bytes", + "heck 0.5.0", + "itertools 0.12.1", + "log", + "multimap", + "once_cell", + "petgraph 0.6.5", + "prettyplease 0.2.20", + "prost 0.12.6", + "prost-types", + "regex", + "syn 2.0.66", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "prost-types" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +dependencies = [ + "prost 0.12.6", +] + +[[package]] +name = "protobuf" +version = "2.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" +dependencies = [ + "bytes", +] + +[[package]] +name = "protobuf-src" +version = "1.1.0+21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7ac8852baeb3cc6fb83b93646fb93c0ffe5d14bf138c945ceb4b9948ee0e3c1" +dependencies = [ + "autotools", +] + +[[package]] +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] + +[[package]] +name = "quanta" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi 0.11.0+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quick-xml" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "quinn" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75" +dependencies = [ + "bytes", + "futures-io", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls 0.21.12", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a" +dependencies = [ + "bytes", + "rand 0.8.5", + "ring 0.16.20", + "rustc-hash", + "rustls 0.21.12", + "slab", + "thiserror", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" +dependencies = [ + "bytes", + "libc", + "socket2 0.5.7", + "tracing", + "windows-sys 0.48.0", +] + +[[package]] +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2 0.4.30", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2 1.0.85", +] + +[[package]] +name = "r2d2" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93" +dependencies = [ + "log", + "parking_lot 0.12.3", + "scheduled-thread-pool", +] + +[[package]] +name = "radium" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "rand_xoshiro" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "raw-cpuid" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e29830cbb1290e404f24c73af91c5d8d631ce7e128691e9477556b540cd01ecd" +dependencies = [ + "bitflags 2.5.0", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rcgen" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +dependencies = [ + "pem", + "ring 0.16.20", + "time", + "yasna", +] + +[[package]] +name = "readonly" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a25d631e41bfb5fdcde1d4e2215f62f7f0afa3ff11e26563765bd6ea1d229aeb" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "real_tokio" +version = "1.36.0" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=e47aafebf98e9c1734a8848a1876d5946c44bdd1#e47aafebf98e9c1734a8848a1876d5946c44bdd1" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot 0.12.3", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.7", + "tokio-macros 2.2.0", + "windows-sys 0.48.0", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +dependencies = [ + "bitflags 2.5.0", +] + +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror", +] + +[[package]] +name = "ref-cast" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "regex" +version = "1.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-rustls 0.24.2", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-rustls 0.24.1", + "tokio-util 0.7.11", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots 0.25.4", + "winreg", +] + +[[package]] +name = "retain_mut" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0" + +[[package]] +name = "rfc6979" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +dependencies = [ + "crypto-bigint 0.4.9", + "hmac", + "zeroize", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.15", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "roaring" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1c77081a55300e016cb86f2864415b7518741879db925b8d488a0ee0d2da6bf" +dependencies = [ + "bytemuck", + "byteorder", +] + +[[package]] +name = "rocksdb" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" +dependencies = [ + "libc", + "librocksdb-sys", +] + +[[package]] +name = "rsa" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55a77d189da1fee555ad95b7e50e7457d91c0e089ec68ca69ad2989413bbdab4" +dependencies = [ + "byteorder", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-iter", + "num-traits", + "pkcs1", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "sha2 0.10.8", + "signature 2.2.0", + "subtle", + "zeroize", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.5.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +dependencies = [ + "log", + "ring 0.16.20", + "sct", + "webpki", +] + +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scale-info" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +dependencies = [ + "cfg-if", + "derive_more", + "parity-scale-codec 3.6.12", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "scheduled-thread-pool" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19" +dependencies = [ + "parking_lot 0.12.3", +] + +[[package]] +name = "schemars" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +dependencies = [ + "dyn-clone", + "either", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "serde_derive_internals", + "syn 2.0.66", +] + +[[package]] +name = "scoped-futures" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1473e24c637950c9bd38763220bea91ec3e095a89f672bbd7a10d03e77ba467" +dependencies = [ + "cfg-if", + "pin-utils", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scrypt" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" +dependencies = [ + "hmac", + "pbkdf2 0.11.0", + "salsa20", + "sha2 0.10.8", +] + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "sec1" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +dependencies = [ + "base16ct 0.1.1", + "der 0.6.1", + "generic-array", + "subtle", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.9", + "generic-array", + "pkcs8 0.10.2", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "bitcoin_hashes", + "rand 0.8.5", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +dependencies = [ + "cc", +] + +[[package]] +name = "secrecy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +dependencies = [ + "bitflags 2.5.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + +[[package]] +name = "serde" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-name" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b5b14ebbcc4e4f2b3642fa99c388649da58d1dc3308c7d109f39f565d1710f0" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "serde-reflection" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05a5f801ac62a51a49d378fdb3884480041b99aced450b28990673e8ff99895" +dependencies = [ + "once_cell", + "serde", + "thiserror", +] + +[[package]] +name = "serde_bytes" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_json" +version = "1.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +dependencies = [ + "indexmap 2.2.6", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_spanned" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +dependencies = [ + "base64 0.13.1", + "chrono", + "hex", + "indexmap 1.9.3", + "serde", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "serde", + "serde_derive", + "serde_json", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" +dependencies = [ + "darling 0.20.9", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_yaml" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +dependencies = [ + "indexmap 1.9.3", + "ryu", + "serde", + "yaml-rust", +] + +[[package]] +name = "serial_test" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e56dd856803e253c8f298af3f4d7eb0ae5e23a737252cd90bb4f3b435033b2d" +dependencies = [ + "dashmap", + "futures", + "lazy_static", + "log", + "parking_lot 0.12.3", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shared-crypto" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "eyre", + "fastcrypto", + "serde", + "serde_repr", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "similar" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640" + +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint 0.4.5", + "num-traits", + "thiserror", + "time", +] + +[[package]] +name = "simplelog" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bc0ffd69814a9b251d43afcabf96dad1b29f5028378056257be9e3fecc9f720" +dependencies = [ + "chrono", + "log", + "termcolor", +] + +[[package]] +name = "simulacrum" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "fastcrypto", + "futures", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "once_cell", + "prometheus", + "rand 0.8.5", + "serde", + "shared-crypto", + "sui-config", + "sui-execution", + "sui-framework", + "sui-genesis-builder", + "sui-keys", + "sui-protocol-config", + "sui-storage", + "sui-swarm-config", + "sui-transaction-checks", + "sui-types", + "tracing", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "sized-chunks" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" +dependencies = [ + "bitmaps", + "typenum", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slip10_ed25519" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be0ff28bf14f9610a342169084e87a4f435ad798ec528dc7579a3678fa9dc9a" +dependencies = [ + "hmac-sha512", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "snafu" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6" +dependencies = [ + "doc-comment", + "snafu-derive", +] + +[[package]] +name = "snafu-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "soketto" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +dependencies = [ + "base64 0.13.1", + "bytes", + "futures", + "http", + "httparse", + "log", + "rand 0.8.5", + "sha-1", +] + +[[package]] +name = "solang-parser" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" +dependencies = [ + "itertools 0.11.0", + "lalrpop", + "lalrpop-util", + "phf", + "thiserror", + "unicode-xid 0.2.4", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spinning_top" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +dependencies = [ + "base64ct", + "der 0.6.1", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der 0.7.9", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "stacker" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "winapi", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot 0.12.3", + "phf_shared 0.10.0", + "precomputed-hash", +] + +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros 0.24.3", +] + +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +dependencies = [ + "strum_macros 0.25.3", +] + +[[package]] +name = "strum" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" +dependencies = [ + "strum_macros 0.26.4", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustversion", + "syn 2.0.66", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustversion", + "syn 2.0.66", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "subtle-ng" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + +[[package]] +name = "sui-adapter-latest" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-types", + "mysten-metrics", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-latest", + "sui-protocol-config", + "sui-types", + "sui-verifier-latest", + "tracing", +] + +[[package]] +name = "sui-adapter-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v0", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime-v0", + "move-vm-types", + "once_cell", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-v0", + "sui-protocol-config", + "sui-types", + "sui-verifier-v0", + "tracing", +] + +[[package]] +name = "sui-adapter-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v1", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime-v1", + "move-vm-types", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-v1", + "sui-protocol-config", + "sui-types", + "sui-verifier-v1", + "tracing", +] + +[[package]] +name = "sui-adapter-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v2", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime-v2", + "move-vm-types", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-v2", + "sui-protocol-config", + "sui-types", + "sui-verifier-v2", + "tracing", +] + +[[package]] +name = "sui-archival" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "byteorder", + "bytes", + "fastcrypto", + "futures", + "indicatif", + "num_enum 0.6.1", + "object_store", + "prometheus", + "rand 0.8.5", + "serde", + "serde_json", + "sui-config", + "sui-simulator", + "sui-storage", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "sui-authority-aggregation" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "mysten-metrics", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "sui-bridge" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "arc-swap", + "async-trait", + "axum", + "backoff", + "bcs", + "bin-version", + "clap 4.5.7", + "enum_dispatch", + "ethers", + "eyre", + "fastcrypto", + "futures", + "lru 0.10.1", + "move-core-types", + "mysten-metrics", + "num_enum 0.6.1", + "once_cell", + "prometheus", + "rand 0.8.5", + "reqwest", + "rocksdb", + "serde", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "sui-common", + "sui-config", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-keys", + "sui-sdk 1.27.0", + "sui-test-transaction-builder", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tracing", + "typed-store", + "typed-store-derive", + "url", +] + +[[package]] +name = "sui-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "mysten-metrics", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "sui-config" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "bcs", + "clap 4.5.7", + "csv", + "dirs 4.0.0", + "fastcrypto", + "narwhal-config", + "object_store", + "once_cell", + "prometheus", + "rand 0.8.5", + "reqwest", + "serde", + "serde_with 2.3.3", + "serde_yaml", + "sui-keys", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-core" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "arc-swap", + "async-trait", + "axum", + "bcs", + "bytes", + "chrono", + "consensus-config", + "consensus-core", + "count-min-sketch", + "dashmap", + "diffy", + "either", + "enum_dispatch", + "eyre", + "fastcrypto", + "fastcrypto-tbls", + "fastcrypto-zkp", + "futures", + "im", + "indexmap 2.2.6", + "itertools 0.10.5", + "jsonrpsee", + "lru 0.10.1", + "mockall", + "moka", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-package", + "move-symbol-pool", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-node", + "narwhal-test-utils", + "narwhal-types", + "narwhal-worker", + "num_cpus", + "object_store", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "rand 0.8.5", + "reqwest", + "roaring", + "rocksdb", + "scopeguard", + "serde", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "signature 1.6.4", + "static_assertions", + "sui-archival", + "sui-authority-aggregation", + "sui-config", + "sui-execution", + "sui-framework", + "sui-genesis-builder", + "sui-json-rpc-types", + "sui-macros", + "sui-move-build", + "sui-network", + "sui-protocol-config", + "sui-rest-api", + "sui-simulator", + "sui-storage", + "sui-swarm-config", + "sui-transaction-checks", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "thiserror", + "tokio", + "tokio-retry", + "tokio-stream", + "tracing", + "twox-hash", + "typed-store", + "typed-store-derive", + "zeroize", +] + +[[package]] +name = "sui-ctf-framework" +version = "0.1.0" +source = "git+https://github.com/otter-sec/sui-ctf-framework?branch=justctf2024#2d35e09413445ce624aa9447d0f49bf368126cd8" +dependencies = [ + "clap 3.2.25", + "diesel-async", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-stdlib", + "move-symbol-pool", + "move-transactional-test-runner", + "once_cell", + "sui-protocol-config", + "sui-transactional-test-runner", + "sui-types", + "tempfile", +] + +[[package]] +name = "sui-data-ingestion-core" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "backoff", + "bcs", + "futures", + "mysten-metrics", + "notify", + "object_store", + "prometheus", + "serde", + "serde_json", + "sui-rest-api", + "sui-storage", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "sui-enum-compat-util" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "serde_yaml", +] + +[[package]] +name = "sui-execution" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter", + "move-abstract-interpreter-v2", + "move-binary-format", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v0", + "move-bytecode-verifier-v1", + "move-bytecode-verifier-v2", + "move-vm-config", + "move-vm-runtime", + "move-vm-runtime-v0", + "move-vm-runtime-v1", + "move-vm-runtime-v2", + "sui-adapter-latest", + "sui-adapter-v0", + "sui-adapter-v1", + "sui-adapter-v2", + "sui-move-natives-latest", + "sui-move-natives-v0", + "sui-move-natives-v1", + "sui-move-natives-v2", + "sui-protocol-config", + "sui-types", + "sui-verifier-latest", + "sui-verifier-v0", + "sui-verifier-v1", + "sui-verifier-v2", +] + +[[package]] +name = "sui-framework" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "move-binary-format", + "move-compiler", + "move-core-types", + "move-package", + "once_cell", + "regex", + "serde", + "sui-move-build", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-framework-snapshot" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "bin-version", + "serde", + "serde_json", + "sui-framework", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-genesis-builder" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "camino", + "fastcrypto", + "move-binary-format", + "move-core-types", + "prometheus", + "rand 0.8.5", + "serde", + "serde_with 2.3.3", + "serde_yaml", + "shared-crypto", + "sui-config", + "sui-execution", + "sui-framework", + "sui-framework-snapshot", + "sui-protocol-config", + "sui-simulator", + "sui-types", + "tempfile", + "tracing", +] + +[[package]] +name = "sui-graphql-rpc" +version = "2024.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-graphql", + "async-graphql-axum", + "async-graphql-value", + "async-trait", + "axum", + "bcs", + "bin-version", + "chrono", + "clap 4.5.7", + "const-str", + "diesel", + "downcast", + "either", + "fastcrypto", + "fastcrypto-zkp", + "futures", + "hex", + "http", + "hyper", + "im", + "itertools 0.10.5", + "lru 0.10.1", + "markdown-gen", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-disassembler", + "move-ir-types", + "mysten-metrics", + "mysten-network", + "once_cell", + "prometheus", + "rand 0.8.5", + "regex", + "reqwest", + "serde", + "serde_json", + "serde_with 2.3.3", + "serde_yaml", + "serial_test", + "shared-crypto", + "similar", + "simulacrum", + "sui-graphql-rpc-client", + "sui-graphql-rpc-headers", + "sui-indexer", + "sui-json-rpc", + "sui-json-rpc-types", + "sui-package-resolver", + "sui-protocol-config", + "sui-rest-api", + "sui-sdk 1.27.0", + "sui-swarm-config", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "test-cluster", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "toml 0.7.8", + "tower", + "tower-http", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "sui-graphql-rpc-client" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-graphql", + "axum", + "hyper", + "reqwest", + "serde_json", + "sui-graphql-rpc-headers", + "thiserror", +] + +[[package]] +name = "sui-graphql-rpc-headers" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "axum", +] + +[[package]] +name = "sui-indexer" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "axum", + "backoff", + "bcs", + "cached", + "chrono", + "clap 4.5.7", + "diesel", + "diesel-derive-enum", + "diesel_migrations", + "downcast", + "fastcrypto", + "futures", + "itertools 0.10.5", + "jsonrpsee", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "mysten-metrics", + "prometheus", + "rayon", + "regex", + "secrecy", + "serde", + "serde_json", + "serde_with 2.3.3", + "sui-data-ingestion-core", + "sui-json", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-open-rpc", + "sui-package-resolver", + "sui-protocol-config", + "sui-rest-api", + "sui-sdk 1.27.0", + "sui-transaction-builder", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "tracing", + "url", +] + +[[package]] +name = "sui-json" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "fastcrypto", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "schemars", + "serde", + "serde_json", + "sui-types", +] + +[[package]] +name = "sui-json-rpc" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "arc-swap", + "async-trait", + "axum", + "bcs", + "cached", + "chrono", + "eyre", + "fastcrypto", + "futures", + "hyper", + "indexmap 2.2.6", + "itertools 0.10.5", + "jsonrpsee", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-package", + "mysten-metrics", + "once_cell", + "prometheus", + "serde", + "serde_json", + "shared-crypto", + "signature 1.6.4", + "sui-core", + "sui-json", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-macros", + "sui-open-rpc", + "sui-open-rpc-macros", + "sui-protocol-config", + "sui-storage", + "sui-transaction-builder", + "sui-types", + "tap", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "tower", + "tower-http", + "tracing", + "typed-store-error", +] + +[[package]] +name = "sui-json-rpc-api" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "fastcrypto", + "jsonrpsee", + "mysten-metrics", + "once_cell", + "prometheus", + "sui-json", + "sui-json-rpc-types", + "sui-open-rpc", + "sui-open-rpc-macros", + "sui-types", + "tap", + "tracing", +] + +[[package]] +name = "sui-json-rpc-types" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "colored", + "enum_dispatch", + "fastcrypto", + "itertools 0.10.5", + "json_to_table", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "mysten-metrics", + "schemars", + "serde", + "serde_json", + "serde_with 2.3.3", + "sui-enum-compat-util", + "sui-json", + "sui-macros", + "sui-package-resolver", + "sui-protocol-config", + "sui-types", + "tabled", + "tracing", +] + +[[package]] +name = "sui-keys" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bip32", + "fastcrypto", + "rand 0.8.5", + "regex", + "serde", + "serde_json", + "shared-crypto", + "signature 1.6.4", + "slip10_ed25519", + "sui-types", + "tiny-bip39", +] + +[[package]] +name = "sui-macros" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "once_cell", + "sui-proc-macros", + "tracing", +] + +[[package]] +name = "sui-move-build" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "fastcrypto", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-ir-types", + "move-package", + "move-symbol-pool", + "serde-reflection", + "sui-protocol-config", + "sui-types", + "sui-verifier-latest", + "tempfile", +] + +[[package]] +name = "sui-move-natives-latest" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-vdf", + "fastcrypto-zkp", + "indexmap 2.2.6", + "move-binary-format", + "move-core-types", + "move-stdlib-natives", + "move-vm-runtime", + "move-vm-types", + "rand 0.8.5", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-move-natives-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-zkp", + "linked-hash-map", + "move-binary-format", + "move-core-types", + "move-stdlib-natives-v0", + "move-vm-runtime-v0", + "move-vm-types", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-move-natives-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-zkp", + "linked-hash-map", + "move-binary-format", + "move-core-types", + "move-stdlib-natives-v1", + "move-vm-runtime-v1", + "move-vm-types", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-move-natives-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-zkp", + "indexmap 2.2.6", + "move-binary-format", + "move-core-types", + "move-stdlib-natives-v2", + "move-vm-runtime-v2", + "move-vm-types", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-network" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-build", + "anemo-tower", + "anyhow", + "arc-swap", + "bcs", + "bytes", + "dashmap", + "fastcrypto", + "fastcrypto-tbls", + "futures", + "governor", + "mysten-metrics", + "mysten-network", + "prometheus", + "rand 0.8.5", + "serde", + "sui-archival", + "sui-config", + "sui-macros", + "sui-storage", + "sui-swarm-config", + "sui-types", + "tap", + "tokio", + "tonic 0.11.0", + "tonic-build", + "tower", + "tracing", +] + +[[package]] +name = "sui-node" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "arc-swap", + "axum", + "bin-version", + "clap 4.5.7", + "fastcrypto", + "fastcrypto-zkp", + "futures", + "humantime", + "move-vm-profiler", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-network", + "narwhal-worker", + "prometheus", + "reqwest", + "serde", + "snap", + "sui-archival", + "sui-config", + "sui-core", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-macros", + "sui-network", + "sui-protocol-config", + "sui-rest-api", + "sui-simulator", + "sui-snapshot", + "sui-storage", + "sui-telemetry", + "sui-tls", + "sui-types", + "tap", + "telemetry-subscribers", + "tokio", + "tower", + "tracing", + "typed-store", + "url", +] + +[[package]] +name = "sui-open-rpc" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "schemars", + "serde", + "serde_json", + "versions", +] + +[[package]] +name = "sui-open-rpc-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "derive-syn-parse", + "itertools 0.10.5", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "unescape", +] + +[[package]] +name = "sui-package-resolver" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "bcs", + "eyre", + "lru 0.10.1", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "serde", + "sui-rest-api", + "sui-types", + "thiserror", + "tokio", +] + +[[package]] +name = "sui-proc-macros" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "msim-macros", + "proc-macro2 1.0.85", + "quote 1.0.36", + "sui-enum-compat-util", + "syn 2.0.66", +] + +[[package]] +name = "sui-protocol-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "clap 4.5.7", + "insta", + "move-vm-config", + "schemars", + "serde", + "serde_with 2.3.3", + "sui-protocol-config-macros", + "tracing", +] + +[[package]] +name = "sui-protocol-config-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "sui-rest-api" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "axum", + "bcs", + "fastcrypto", + "itertools 0.10.5", + "mime", + "mysten-network", + "prometheus", + "rand 0.8.5", + "reqwest", + "serde", + "serde_json", + "serde_with 2.3.3", + "sui-sdk 0.0.0", + "sui-types", + "tap", + "thiserror", +] + +[[package]] +name = "sui-sdk" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/sui-rust-sdk.git?rev=ec4236befe57c15fba0dae9e6881c18231882151#ec4236befe57c15fba0dae9e6881c18231882151" +dependencies = [ + "base64ct", + "bcs", + "bnum", + "bs58 0.5.1", + "hex", + "roaring", + "serde", + "serde_derive", + "serde_with 3.8.1", + "winnow 0.6.13", +] + +[[package]] +name = "sui-sdk" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "base64 0.21.7", + "bcs", + "clap 4.5.7", + "colored", + "fastcrypto", + "futures", + "futures-core", + "jsonrpsee", + "move-core-types", + "reqwest", + "serde", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "sui-config", + "sui-json", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-keys", + "sui-transaction-builder", + "sui-types", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "sui-simulator" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "bcs", + "fastcrypto", + "lru 0.10.1", + "move-package", + "msim", + "narwhal-network", + "rand 0.8.5", + "serde", + "sui-framework", + "sui-move-build", + "sui-types", + "telemetry-subscribers", + "tempfile", + "tower", + "tracing", +] + +[[package]] +name = "sui-snapshot" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "byteorder", + "bytes", + "fastcrypto", + "futures", + "indicatif", + "integer-encoding", + "num_enum 0.6.1", + "object_store", + "prometheus", + "serde", + "serde_json", + "sui-config", + "sui-core", + "sui-protocol-config", + "sui-storage", + "sui-types", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "sui-storage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "backoff", + "base64-url", + "bcs", + "byteorder", + "bytes", + "chrono", + "clap 4.5.7", + "eyre", + "fastcrypto", + "futures", + "hyper", + "hyper-rustls 0.24.2", + "indicatif", + "integer-encoding", + "itertools 0.10.5", + "lru 0.10.1", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "mysten-metrics", + "num_enum 0.6.1", + "object_store", + "parking_lot 0.12.3", + "percent-encoding", + "prometheus", + "reqwest", + "rocksdb", + "serde", + "serde_json", + "sui-config", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tracing", + "typed-store", + "typed-store-derive", + "url", + "zstd 0.12.4", +] + +[[package]] +name = "sui-swarm" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "futures", + "mysten-metrics", + "mysten-network", + "prometheus", + "rand 0.8.5", + "sui-config", + "sui-macros", + "sui-node", + "sui-protocol-config", + "sui-simulator", + "sui-swarm-config", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tonic-health", + "tracing", +] + +[[package]] +name = "sui-swarm-config" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "fastcrypto", + "move-bytecode-utils", + "narwhal-config", + "prometheus", + "rand 0.8.5", + "serde", + "serde_with 2.3.3", + "serde_yaml", + "shared-crypto", + "sui-config", + "sui-genesis-builder", + "sui-macros", + "sui-protocol-config", + "sui-simulator", + "sui-types", + "tempfile", + "tracing", +] + +[[package]] +name = "sui-telemetry" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "reqwest", + "serde", + "sui-core", + "tracing", +] + +[[package]] +name = "sui-test-transaction-builder" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "move-core-types", + "shared-crypto", + "sui-genesis-builder", + "sui-move-build", + "sui-sdk 1.27.0", + "sui-types", +] + +[[package]] +name = "sui-tls" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "axum", + "axum-server", + "ed25519", + "fastcrypto", + "pkcs8 0.9.0", + "rcgen", + "reqwest", + "rustls 0.21.12", + "rustls-webpki", + "tokio", + "tokio-rustls 0.24.1", + "tower-layer", + "x509-parser", +] + +[[package]] +name = "sui-transaction-builder" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "futures", + "move-binary-format", + "move-core-types", + "sui-json", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-transaction-checks" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto-zkp", + "once_cell", + "sui-config", + "sui-execution", + "sui-macros", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-transactional-test-runner" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "bimap", + "clap 4.5.7", + "criterion", + "eyre", + "fastcrypto", + "futures", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-stdlib", + "move-symbol-pool", + "move-transactional-test-runner", + "move-vm-runtime", + "msim", + "once_cell", + "rand 0.8.5", + "regex", + "rocksdb", + "serde_json", + "simulacrum", + "sui-config", + "sui-core", + "sui-framework", + "sui-framework-snapshot", + "sui-graphql-rpc", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-rest-api", + "sui-storage", + "sui-swarm-config", + "sui-types", + "telemetry-subscribers", + "tempfile", + "tokio", + "typed-store", + "typed-store-derive", +] + +[[package]] +name = "sui-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "bcs", + "better_any", + "bincode", + "byteorder", + "chrono", + "consensus-config", + "derivative", + "derive_more", + "enum_dispatch", + "eyre", + "fastcrypto", + "fastcrypto-tbls", + "fastcrypto-zkp", + "im", + "indexmap 2.2.6", + "itertools 0.10.5", + "jsonrpsee", + "lru 0.10.1", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-core-types", + "move-disassembler", + "move-ir-types", + "move-vm-profiler", + "move-vm-test-utils", + "move-vm-types", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "nonempty", + "num-bigint 0.4.5", + "num-traits", + "num_enum 0.6.1", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "proptest", + "proptest-derive", + "rand 0.8.5", + "roaring", + "schemars", + "serde", + "serde-name", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "signature 1.6.4", + "static_assertions", + "strum 0.24.1", + "strum_macros 0.24.3", + "sui-enum-compat-util", + "sui-macros", + "sui-protocol-config", + "sui-sdk 0.0.0", + "tap", + "thiserror", + "tonic 0.11.0", + "tracing", + "typed-store-error", +] + +[[package]] +name = "sui-verifier-latest" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter", + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-verifier-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v0", + "move-core-types", + "move-vm-config", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-verifier-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v1", + "move-core-types", + "move-vm-config", + "sui-types", +] + +[[package]] +name = "sui-verifier-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v2", + "move-core-types", + "move-vm-config", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "svm-rs" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" +dependencies = [ + "dirs 5.0.1", + "fs2", + "hex", + "once_cell", + "reqwest", + "semver", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "url", + "zip", +] + +[[package]] +name = "syn" +version = "0.15.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "unicode-xid 0.2.4", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tabled" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce69a5028cd9576063ec1f48edb2c75339fd835e6094ef3e05b3a079bf594a6" +dependencies = [ + "papergrid", + "tabled_derive", + "unicode-width", +] + +[[package]] +name = "tabled_derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99f688a08b54f4f02f0a3c382aefdb7884d3d69609f785bd253dc033243e3fe4" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "tagptr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "telemetry-subscribers" +version = "0.2.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "atomic_float", + "bytes", + "bytes-varint", + "clap 4.5.7", + "crossterm", + "futures", + "once_cell", + "opentelemetry 0.20.0", + "opentelemetry-otlp", + "opentelemetry-proto", + "opentelemetry_api", + "prometheus", + "prost 0.11.9", + "tokio", + "tonic 0.9.2", + "tracing", + "tracing-appender", + "tracing-opentelemetry", + "tracing-subscriber", +] + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terminal_size" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +dependencies = [ + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + +[[package]] +name = "test-cluster" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "fastcrypto", + "fastcrypto-zkp", + "futures", + "jsonrpsee", + "move-binary-format", + "prometheus", + "rand 0.8.5", + "sui-bridge", + "sui-config", + "sui-core", + "sui-framework", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-keys", + "sui-node", + "sui-protocol-config", + "sui-sdk 1.27.0", + "sui-simulator", + "sui-swarm", + "sui-swarm-config", + "sui-test-transaction-builder", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "textwrap" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" + +[[package]] +name = "thiserror" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-bip39" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" +dependencies = [ + "anyhow", + "hmac", + "once_cell", + "pbkdf2 0.11.0", + "rand 0.8.5", + "rustc-hash", + "sha2 0.10.8", + "thiserror", + "unicode-normalization", + "wasm-bindgen", + "zeroize", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot 0.12.3", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.7", + "tokio-macros 2.3.0", + "tracing", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=e47aafebf98e9c1734a8848a1876d5946c44bdd1#e47aafebf98e9c1734a8848a1876d5946c44bdd1" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tokio-macros" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tokio-postgres" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d340244b32d920260ae7448cb72b6e238bddc3d4f7603394e7dd46ed8e48f5b8" +dependencies = [ + "async-trait", + "byteorder", + "bytes", + "fallible-iterator", + "futures-channel", + "futures-util", + "log", + "parking_lot 0.12.3", + "percent-encoding", + "phf", + "pin-project-lite", + "postgres-protocol", + "postgres-types", + "rand 0.8.5", + "socket2 0.5.7", + "tokio", + "tokio-util 0.7.11", + "whoami", +] + +[[package]] +name = "tokio-retry" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +dependencies = [ + "pin-project", + "rand 0.8.5", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls 0.20.9", + "tokio", + "webpki", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util 0.7.11", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", + "tungstenite", + "webpki-roots 0.25.4", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=e47aafebf98e9c1734a8848a1876d5946c44bdd1#e47aafebf98e9c1734a8848a1876d5946c44bdd1" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "futures-util", + "hashbrown 0.14.5", + "pin-project-lite", + "real_tokio", + "slab", + "tracing", +] + +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "futures-util", + "hashbrown 0.14.5", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.14", +] + +[[package]] +name = "toml_datetime" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5376256e44f2443f8896ac012507c19a012df0fe8758b55246ae51a2279db51f" +dependencies = [ + "combine", + "indexmap 1.9.3", + "itertools 0.10.5", + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.13", +] + +[[package]] +name = "tonic" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" +dependencies = [ + "async-trait", + "axum", + "base64 0.21.7", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost 0.11.9", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.21.7", + "bytes", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost 0.12.6", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-build" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2" +dependencies = [ + "prettyplease 0.2.20", + "proc-macro2 1.0.85", + "prost-build", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tonic-health" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cef6e24bc96871001a7e48e820ab240b3de2201e59b517cf52835df2f1d2350" +dependencies = [ + "async-stream", + "prost 0.12.6", + "tokio", + "tokio-stream", + "tonic 0.11.0", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "hdrhistogram", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util 0.7.11", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" +dependencies = [ + "async-compression", + "base64 0.13.1", + "bitflags 1.3.2", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "httpdate", + "iri-string", + "mime", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "tokio", + "tokio-util 0.7.11", + "tower", + "tower-layer", + "tower-service", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-appender" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +dependencies = [ + "crossbeam-channel", + "thiserror", + "time", + "tracing-subscriber", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "futures", + "futures-task", + "pin-project", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-opentelemetry" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75327c6b667828ddc28f5e3f169036cb793c3f588d83bf0f262a7f062ffed3c8" +dependencies = [ + "once_cell", + "opentelemetry 0.20.0", + "opentelemetry_sdk", + "smallvec", + "tracing", + "tracing-core", + "tracing-log 0.1.4", + "tracing-subscriber", +] + +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "serde", + "serde_json", + "sharded-slab", + "smallvec", + "thread_local", + "time", + "tracing", + "tracing-core", + "tracing-log 0.2.0", + "tracing-serde", +] + +[[package]] +name = "trait-set" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b79e2e9c9ab44c6d7c20d5976961b47e8f49ac199154daa514b77cd1ab536625" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "treeline" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" + +[[package]] +name = "triomphe" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b2cb4fbb9995eeb36ac86fadf24031ccd58f99d6b4b2d7b911db70bddb80d90" + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tui" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccdd26cbd674007e649a272da4475fb666d3aa0ad0531da7136db6fab0e5bad1" +dependencies = [ + "bitflags 1.3.2", + "cassowary", + "crossterm", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.8.5", + "rustls 0.21.12", + "sha1", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "rand 0.8.5", + "static_assertions", +] + +[[package]] +name = "typed-store" +version = "0.4.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "bcs", + "bincode", + "collectable", + "eyre", + "fdlimit", + "hdrhistogram", + "itertools 0.10.5", + "msim", + "once_cell", + "ouroboros", + "prometheus", + "rand 0.8.5", + "rocksdb", + "serde", + "sui-macros", + "tap", + "thiserror", + "tokio", + "tracing", + "typed-store-error", +] + +[[package]] +name = "typed-store-derive" +version = "0.3.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "itertools 0.10.5", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "typed-store-error" +version = "0.4.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unescape" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e" + +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-properties" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291" + +[[package]] +name = "unicode-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + +[[package]] +name = "unicode-width" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" + +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "unsigned-varint" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom 0.2.15", + "serde", +] + +[[package]] +name = "uuid" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" +dependencies = [ + "getrandom 0.2.15", + "rand 0.8.5", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "variant_count" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae2faf80ac463422992abf4de234731279c058aaf33171ca70277c98406b124" +dependencies = [ + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "versions" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee97e1d97bd593fb513912a07691b742361b3dd64ad56f2c694ea2dbfe0665d3" +dependencies = [ + "itertools 0.10.5", + "nom", +] + +[[package]] +name = "vfs" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e4fe92cfc1bad19c19925d5eee4b30584dbbdee4ff10183b261acccbef74e2d" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote 1.0.36", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "wasm-streams" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "webpki-roots" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +dependencies = [ + "webpki", +] + +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + +[[package]] +name = "whoami" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9" +dependencies = [ + "redox_syscall 0.4.1", + "wasite", + "web-sys", +] + +[[package]] +name = "widestring" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "x509-parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +dependencies = [ + "asn1-rs", + "base64 0.13.1", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time", +] + +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "synstructure 0.13.1", +] + +[[package]] +name = "zerocopy" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "synstructure 0.13.1", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "zerovec" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "aes", + "byteorder", + "bzip2", + "constant_time_eq 0.1.5", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac", + "pbkdf2 0.11.0", + "sha1", + "time", + "zstd 0.11.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe 5.0.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +dependencies = [ + "zstd-safe 6.0.6", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-safe" +version = "6.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.10+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/Cargo.toml b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/Cargo.toml new file mode 100644 index 000000000..7812092d6 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "framework" +version = "0.1.0" +edition = "2021" +exclude = ["chall/"] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +quote = "1.0.26" +threadpool = "1.8.1" +proc-macro2 = "1.0.66" + +tokio = { version = "1", features = ["full"] } + +move-core-types = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-core-types" } +move-bytecode-source-map = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-bytecode-source-map" } +move-binary-format = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-binary-format" } +move-symbol-pool = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-symbol-pool" } +move-transactional-test-runner = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-transactional-test-runner" } + +sui-types = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "sui-types"} +sui-transactional-test-runner = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "sui-transactional-test-runner"} + +sui-ctf-framework = { git = "https://github.com/otter-sec/sui-ctf-framework", branch = "justctf2024" } diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/chall/Move.lock b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/chall/Move.lock new file mode 100644 index 000000000..6d83d4dca --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/chall/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C1FECA3B112600A783F9F421CC2BF9CE00CE66320440DD4E76D8CD5B87B3AD2C" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet-v1.27.0", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet-v1.27.0", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/chall/Move.toml b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/chall/Move.toml new file mode 100644 index 000000000..919e3960d --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/chall/Move.toml @@ -0,0 +1,11 @@ +[package] +name = "challenge" +version = "0.0.1" +edition = "2024.beta" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[addresses] +challenge = "0x0" +admin = "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/chall/sources/dark_brotterhood.move b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/chall/sources/dark_brotterhood.move new file mode 100644 index 000000000..92c50aca0 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/chall/sources/dark_brotterhood.move @@ -0,0 +1,250 @@ +module challenge::Otter { + + // --------------------------------------------------- + // DEPENDENCIES + // --------------------------------------------------- + + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply}; + use sui::url; + use sui::random::{Self, Random}; + use sui::table::{Self, Table}; + + // --------------------------------------------------- + // CONST + // --------------------------------------------------- + + const NEW: u64 = 1; + const WON: u64 = 2; + const FINISHED: u64 = 3; + + const WRONG_AMOUNT: u64 = 1337; + const BETTER_BRING_A_KNIFE_TO_A_GUNFIGHT: u64 = 1338; + const WRONG_STATE: u64 = 1339; + const ALREADY_REGISTERED: u64 = 1340; + const NOT_REGISTERED: u64 = 1341; + const TOO_MUCH_MONSTERS: u64 = 1342; + const NOT_SOLVED: u64 = 1343; + + const QUEST_LIMIT: u64 = 25; + // --------------------------------------------------- + // STRUCTS + // --------------------------------------------------- + + public struct OTTER has drop {} + + public struct OsecSuply has key { + id: UID, + supply: Supply + } + + public struct Vault has key { + id: UID, + cash: Coin + } + + public struct Monster has store { + fight_status: u64, + reward: u8, + power: u8 + } + + public struct QuestBoard has key, store { + id: UID, + quests: vector, + players: Table + } + + public struct Flag has key, store { + id: UID, + user: address, + flag: bool + } + + public struct Player has key, store { + id: UID, + user: address, + coins: Coin, + power: u8 + } + + // --------------------------------------------------- + // MINT CASH + // --------------------------------------------------- + + fun init(witness: OTTER, ctx: &mut TxContext) { + let (mut treasury, metadata) = coin::create_currency( + witness, 9, b"OSEC", b"Osec", b"Otter ca$h", option::some(url::new_unsafe_from_bytes(b"https://osec.io/")), ctx + ); + transfer::public_freeze_object(metadata); + + let pool_liquidity = coin::mint(&mut treasury, 50000, ctx); + + let vault = Vault { + id: object::new(ctx), + cash: pool_liquidity + }; + + let supply = coin::treasury_into_supply(treasury); + + let osec_supply = OsecSuply { + id: object::new(ctx), + supply + }; + + transfer::transfer(osec_supply, tx_context::sender(ctx)); + + transfer::share_object(QuestBoard { + id: object::new(ctx), + quests: vector::empty(), + players: table::new(ctx) + }); + + transfer::share_object(vault); + } + + public fun mint(sup: &mut OsecSuply, amount: u64, ctx: &mut TxContext): Coin { + let osecBalance = balance::increase_supply(&mut sup.supply, amount); + coin::from_balance(osecBalance, ctx) + } + + public entry fun mint_to(sup: &mut OsecSuply, amount: u64, to: address, ctx: &mut TxContext) { + let osec = mint(sup, amount, ctx); + transfer::public_transfer(osec, to); + } + + public fun burn(sup: &mut OsecSuply, c: Coin): u64 { + balance::decrease_supply(&mut sup.supply, coin::into_balance(c)) + } + + // --------------------------------------------------- + // REGISTER + // --------------------------------------------------- + + public fun register(sup: &mut OsecSuply, board: &mut QuestBoard, player: address, ctx: &mut TxContext) { + assert!(!table::contains(&board.players, player), ALREADY_REGISTERED); + + table::add(&mut board.players, player, false); + + transfer::transfer(Player { + id: object::new(ctx), + user: tx_context::sender(ctx), + coins: mint(sup, 137, ctx), + power: 10 + }, player); + } + + // --------------------------------------------------- + // SHOP + // --------------------------------------------------- + + #[allow(lint(self_transfer))] + public fun buy_flag(vault: &mut Vault, player: &mut Player, ctx: &mut TxContext): Flag { + assert!(coin::value(&player.coins) >= 1337, WRONG_AMOUNT); + + let coins = coin::split(&mut player.coins, 1337, ctx); + coin::join(&mut vault.cash, coins); + + Flag { + id: object::new(ctx), + user: tx_context::sender(ctx), + flag: true + } + } + + public fun buy_sword(vault: &mut Vault, player: &mut Player, ctx: &mut TxContext) { + assert!(coin::value(&player.coins) >= 137, WRONG_AMOUNT); + + let coins = coin::split(&mut player.coins, 137, ctx); + coin::join(&mut vault.cash, coins); + + player.power = player.power + 100; + } + + // --------------------------------------------------- + // ADVENTURE TIME + // --------------------------------------------------- + + #[allow(lint(public_random))] + public fun find_a_monster(board: &mut QuestBoard, r: &Random, ctx: &mut TxContext) { + assert!(vector::length(&board.quests) <= QUEST_LIMIT, TOO_MUCH_MONSTERS); + + let mut generator = random::new_generator(r, ctx); + + let quest = Monster { + fight_status: NEW, + reward: random::generate_u8_in_range(&mut generator, 13, 37), + power: random::generate_u8_in_range(&mut generator, 13, 73) + }; + + vector::push_back(&mut board.quests, quest); + + } + + public fun fight_monster(board: &mut QuestBoard, player: &mut Player, quest_id: u64) { + let quest = vector::borrow_mut(&mut board.quests, quest_id); + assert!(quest.fight_status == NEW, WRONG_STATE); + assert!(player.power > quest.power, BETTER_BRING_A_KNIFE_TO_A_GUNFIGHT); + + player.power = 10; // sword breaks after fighting the monster :c + + quest.fight_status = WON; + } + + public fun return_home(board: &mut QuestBoard, quest_id: u64) { + let quest_to_finish = vector::borrow_mut(&mut board.quests, quest_id); + assert!(quest_to_finish.fight_status == WON, WRONG_STATE); + + quest_to_finish.fight_status = FINISHED; + } + + #[allow(lint(self_transfer))] + public fun get_the_reward( + vault: &mut Vault, + board: &mut QuestBoard, + player: &mut Player, + quest_id: u64, + ctx: &mut TxContext, + ) { + let quest_to_claim = vector::borrow_mut(&mut board.quests, quest_id); + assert!(quest_to_claim.fight_status == FINISHED, WRONG_STATE); + + let monster = vector::pop_back(&mut board.quests); + + let Monster { + fight_status: _, + reward: reward, + power: _ + } = monster; + + let coins = coin::split(&mut vault.cash, (reward as u64), ctx); + coin::join(&mut player.coins, coins); + } + + // --------------------------------------------------- + // PROVE SOLUTION + // --------------------------------------------------- + + public fun prove(board: &mut QuestBoard, flag: Flag) { + let Flag { + id, + user, + flag + } = flag; + + object::delete(id); + + assert!(table::contains(&board.players, user), NOT_REGISTERED); + assert!(flag, NOT_SOLVED); + *table::borrow_mut(&mut board.players, user) = true; + } + + // --------------------------------------------------- + // CHECK WINNER + // --------------------------------------------------- + + public fun check_winner(board: &QuestBoard, player: address) { + assert!(*table::borrow(&board.players, player) == true, NOT_SOLVED); + } + +} diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/run.sh b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/run.sh new file mode 100755 index 000000000..a62fa9ce3 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/run.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +sed -i \ + -E 's/(host[[:space:]]+all[[:space:]]+all[[:space:]]+127.0.0.1\/32[[:space:]]+)scram-sha-256/\1trust/' \ + /etc/postgresql/16/main/pg_hba.conf + +sed -i \ + -E 's/(host[[:space:]]+all[[:space:]]+all[[:space:]]+::1\/128[[:space:]]+)scram-sha-256/\1trust/' \ + /etc/postgresql/16/main/pg_hba.conf + +/etc/init.d/postgresql restart + +sudo -u postgres psql postgres -c "ALTER ROLE postgres WITH SUPERUSER LOGIN PASSWORD 'postgrespw';" +sudo -u postgres psql postgres -c "CREATE DATABASE sui_indexer_v2;" -c "ALTER SYSTEM SET max_connections = 500;" + +cargo r --release diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/rust-toolchain.toml b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/rust-toolchain.toml new file mode 100644 index 000000000..83a52c383 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.76" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/src/main.rs b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/src/main.rs new file mode 100644 index 000000000..fac9a1c72 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/framework/src/main.rs @@ -0,0 +1,302 @@ +use std::env; +use std::error::Error; +use std::fmt; +use std::io::{Read, Write}; +use std::mem::drop; +use std::net::{TcpListener, TcpStream}; +use std::path::Path; + +use tokio; + +use move_transactional_test_runner::framework::{MaybeNamedCompiledModule, MoveTestAdapter}; +use move_bytecode_source_map::{source_map::SourceMap, utils::source_map_from_file}; +use move_binary_format::file_format::CompiledModule; +use move_symbol_pool::Symbol; +use move_core_types::{ + u256::U256, + account_address::AccountAddress, + language_storage::TypeTag, + runtime_value::MoveValue +}; +use sui_types::base_types::SuiAddress; + +use sui_ctf_framework::NumericalAddress; +use sui_transactional_test_runner::{args::SuiValue, test_adapter::FakeID}; + +async fn handle_client(mut stream: TcpStream) -> Result<(), Box> { + + // Initialize SuiTestAdapter + let modules = vec!["Otter"]; + let mut deployed_modules: Vec = Vec::new(); + + let named_addresses = vec![ + ( + "challenge".to_string(), + NumericalAddress::parse_str( + "0x0", + )?, + ), + ( + "solve".to_string(), + NumericalAddress::parse_str( + "0x0", + )?, + ), + ( + "admin".to_string(), + NumericalAddress::parse_str( + "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e", + )?, + ), + ]; + + let mut adapter = sui_ctf_framework::initialize( + named_addresses, + Some(vec!["challenger".to_string(), "solver".to_string()]), + ).await; + + // Check Admin Account + let object_output1 = sui_ctf_framework::view_object(&mut adapter, FakeID::Enumerated(0, 0)).await; + println!("Object Output: {:#?}", object_output1); + + let mut mncp_modules : Vec = Vec::new(); + + for i in 0..modules.len() { + + let module = &modules[i]; + + let mod_path = format!("./chall/build/challenge/bytecode_modules/{}.mv", module); + let src_path = format!("./chall/build/challenge/source_maps/{}.mvsm", module); + let mod_bytes: Vec = std::fs::read(mod_path)?; + + let module: CompiledModule = match CompiledModule::deserialize_with_defaults(&mod_bytes) { + Ok(data) => data, + Err(e) => { + return Err(Box::new(e)) + } + }; + let named_addr_opt: Option = Some(Symbol::from("challenge")); + let source_map: Option = match source_map_from_file(Path::new(&src_path)) { + Ok(data) => Some(data), + Err(e) => { + let _ = adapter.cleanup_resources().await; + println!("error: {:?}, src_path: {}", e, src_path); + return Err("error when generating source map".into()) + } + }; + + let maybe_ncm = MaybeNamedCompiledModule { + named_address: named_addr_opt, + module, + source_map, + }; + + mncp_modules.push( maybe_ncm ); + } + + // Publish Challenge Module + let chall_dependencies: Vec = Vec::new(); + let chall_addr = sui_ctf_framework::publish_compiled_module( + &mut adapter, + mncp_modules, + chall_dependencies, + Some(String::from("challenger")), + ).await; + deployed_modules.push(chall_addr); + println!("[SERVER] Module published at: {:?}", chall_addr); + + let mut solution_data = [0 as u8; 2000]; + let _solution_size = stream.read(&mut solution_data)?; + + // Send Challenge Address + let mut output = String::new(); + fmt::write( + &mut output, + format_args!( + "[SERVER] Challenge modules published at: {}", + chall_addr.to_string().as_str(), + ), + ) + .unwrap(); + stream.write(output.as_bytes()).unwrap(); + + // Publish Solution Module + let mut sol_dependencies: Vec = Vec::new(); + sol_dependencies.push(String::from("challenge")); + + let mut mncp_solution : Vec = Vec::new(); + let module: CompiledModule = match CompiledModule::deserialize_with_defaults(&solution_data.to_vec()) { + Ok(data) => data, + Err(e) => { + let _ = adapter.cleanup_resources().await; + return Err(Box::new(e)) + } + }; + let named_addr_opt: Option = Some(Symbol::from("solve")); + let source_map : Option = None; + + let maybe_ncm = MaybeNamedCompiledModule { + named_address: named_addr_opt, + module, + source_map, + }; + mncp_solution.push( maybe_ncm ); + + let sol_addr = sui_ctf_framework::publish_compiled_module( + &mut adapter, + mncp_solution, + sol_dependencies, + Some(String::from("solver")), + ).await; + println!("[SERVER] Solution published at: {:?}", sol_addr); + + // Send Solution Address + output = String::new(); + fmt::write( + &mut output, + format_args!( + "[SERVER] Solution published at {}", + sol_addr.to_string().as_str() + ), + ) + .unwrap(); + stream.write(output.as_bytes()).unwrap(); + + // Prepare Function Call Arguments + let mut args_reg: Vec = Vec::new(); + let supply = SuiValue::Object(FakeID::Enumerated(2, 1), None); + let questboard = SuiValue::Object(FakeID::Enumerated(2, 2), None); + let player_addr = SuiValue::MoveValue(MoveValue::Address(adapter.compiled_state().resolve_named_address("solver"))); + args_reg.push(supply.clone()); + args_reg.push(questboard.clone()); + args_reg.push(player_addr.clone()); + + let type_args: Vec = Vec::new(); + + // Call Add Liquidity Function + let ret_val = match sui_ctf_framework::call_function( + &mut adapter, + chall_addr, + "Otter", + "register", + args_reg, + type_args, + Some("challenger".to_string()), + ).await { + Ok(output) => output, + Err(e) => { + let _ = adapter.cleanup_resources().await; + println!("[SERVER] error: {e}"); + return Err("error during call to Otter::register".into()) + } + }; + println!("[SERVER] Return value {:#?}", ret_val); + println!(""); + + // Prepare Function Call Arguments + let mut u256_bytes = U256::from(8_u64).to_le_bytes().to_vec(); + u256_bytes.reverse(); + let address: SuiAddress = SuiAddress::from_bytes(&u256_bytes).unwrap(); + let random = SuiValue::ImmShared(FakeID::Known(address.into()), None); + let mut args_solve: Vec = Vec::new(); + let player = SuiValue::Object(FakeID::Enumerated(4, 0), None); + let vault = SuiValue::Object(FakeID::Enumerated(2, 3), None); + args_solve.push(vault.clone()); + args_solve.push(questboard.clone()); + args_solve.push(player.clone()); + args_solve.push(random.clone()); + + let type_args_solve: Vec = Vec::new(); + + // Call solve Function + let ret_val = match sui_ctf_framework::call_function( + &mut adapter, + sol_addr, + "solve", + "solve", + args_solve, + type_args_solve, + Some("solver".to_string()), + ).await { + Ok(output) => output, + Err(e) => { + let _ = adapter.cleanup_resources().await; + println!("[SERVER] error: {e}"); + return Err("error during call to solve::solve".into()) + } + }; + println!("[SERVER] Return value {:#?}", ret_val); + println!(""); + + // Check Solution + let mut args_check: Vec = Vec::new(); + args_check.push(questboard.clone()); + args_check.push(player_addr.clone()); + + let type_args_check: Vec = Vec::new(); + + let sol_ret = sui_ctf_framework::call_function( + &mut adapter, + chall_addr, + "Otter", + "check_winner", + args_check, + type_args_check, + Some("solver".to_string()), + ).await; + println!("[SERVER] Return value {:#?}", sol_ret); + println!(""); + + // Validate Solution + match sol_ret { + Ok(_) => { + println!("[SERVER] Correct Solution!"); + println!(""); + if let Ok(flag) = env::var("FLAG") { + let message = format!("[SERVER] Congrats, flag: {}", flag); + stream.write(message.as_bytes()).unwrap(); + } else { + stream.write("[SERVER] Flag not found, please contact admin".as_bytes()).unwrap(); + } + } + Err(_) => { + println!("[SERVER] Invalid Solution!"); + println!(""); + stream.write("[SERVER] Invalid Solution!".as_bytes()).unwrap(); + } + }; + + let _ = adapter.cleanup_resources().await; + Ok(()) +} + +#[tokio::main] +async fn main() -> Result<(), Box> { + // Create Socket - Port 31337 + let listener = TcpListener::bind("0.0.0.0:31337")?; + println!("[SERVER] Starting server at port 31337!"); + + let local = tokio::task::LocalSet::new(); + + // Wait For Incoming Solution + for stream in listener.incoming() { + match stream { + Ok(stream) => { + println!("[SERVER] New connection: {}", stream.peer_addr()?); + let result = local.run_until( async move { + tokio::task::spawn_local( async { + handle_client(stream).await + }).await + }).await; + println!("[SERVER] Result: {:?}", result); + } + Err(e) => { + println!("[SERVER] Error: {}", e); + } + } + } + + // Close Socket Server + drop(listener); + Ok(()) +} diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/run_client.sh b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/run_client.sh new file mode 100755 index 000000000..1f78679ba --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/run_client.sh @@ -0,0 +1,5 @@ +set -eux + +cd framework-solve/solve && sui move build +cd .. +cargo r --release diff --git a/mover/Zeroc0077/justctf2024/justctf2024-db/sources/run_server.sh b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/run_server.sh new file mode 100755 index 000000000..d0f9be966 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-db/sources/run_server.sh @@ -0,0 +1,5 @@ +set -eux + +cd framework/chall && sui move build +cd .. +cargo r --release diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/Dockerfile b/mover/Zeroc0077/justctf2024/justctf2024-tos/Dockerfile new file mode 100644 index 000000000..de77cf555 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/Dockerfile @@ -0,0 +1,16 @@ +FROM embe221ed/otter_template:latest + +ADD ./sources/framework/chall /work/framework/chall +ADD ./sources/framework/src/main.rs /work/framework/src/ + +# build the challenge contracts +WORKDIR /work/framework/chall +RUN sui move build + +WORKDIR /work/framework + +# build the framework +RUN touch src/main.rs +RUN cargo build --locked --release + +CMD ./run.sh diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/README.md b/mover/Zeroc0077/justctf2024/justctf2024-tos/README.md new file mode 100644 index 000000000..8b7919f69 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/README.md @@ -0,0 +1,28 @@ +# justCTF2024-The Otter Scrolls + +> Description: Behold the ancient Spellbook, a tome of arcane wisdom where spells cast by mystical Otters weave the threads of fate. Embark on this enchanted journey where the secrets of the blockchain will be revealed. Brave adventurers, your quest awaits; may your courage be as boundless as the magic that guides you. + +solve.move: +```move +module solve::solve { + + // [*] Import dependencies + use challenge::theotterscrolls; + + public fun solve( + _spellbook: &mut theotterscrolls::Spellbook, + _ctx: &mut TxContext + ) { + let seq = &mut vector::empty(); + vector::push_back(seq, 1); + vector::push_back(seq, 0); + vector::push_back(seq, 3); + vector::push_back(seq, 3); + vector::push_back(seq, 3); + challenge::theotterscrolls::cast_spell(*seq, _spellbook); + } + +} +``` + +![](./images/1.png) \ No newline at end of file diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/docker-compose.yml b/mover/Zeroc0077/justctf2024/justctf2024-tos/docker-compose.yml new file mode 100644 index 000000000..9b8fc0a0a --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/docker-compose.yml @@ -0,0 +1,11 @@ +services: + tos: + environment: + FLAG: justCTF{Th4t_sp3ll_looks_d4ngerous...keep_y0ur_distance} + PORT: 31337 + build: + context: ./ + dockerfile: ./Dockerfile + ports: + - "31337:31337" + restart: always diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/images/1.png b/mover/Zeroc0077/justctf2024/justctf2024-tos/images/1.png new file mode 100644 index 000000000..578921d55 Binary files /dev/null and b/mover/Zeroc0077/justctf2024/justctf2024-tos/images/1.png differ diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/Cargo.lock b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/Cargo.lock new file mode 100644 index 000000000..d8b563e5e --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "solve-framework" +version = "0.1.0" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/Cargo.toml b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/Cargo.toml new file mode 100644 index 000000000..9fc89b2dd --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "solve-framework" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/dependency/Move.toml b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/dependency/Move.toml new file mode 100644 index 000000000..baebdbb65 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/dependency/Move.toml @@ -0,0 +1,11 @@ +[package] +name = "challenge" +version = "0.0.1" +edition = "2024.beta" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[addresses] +admin = "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e" +challenge = "542fe29e11d10314d3330e060c64f8fb9cd341981279432b03b2bd51cf5d489b" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/dependency/sources/the_otter_scrolls.move b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/dependency/sources/the_otter_scrolls.move new file mode 100644 index 000000000..53b932216 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/dependency/sources/the_otter_scrolls.move @@ -0,0 +1,126 @@ +module challenge::theotterscrolls { + + // --------------------------------------------------- + // DEPENDENCIES + // --------------------------------------------------- + + use sui::table::{Self, Table}; + use std::string::{Self, String}; + + // --------------------------------------------------- + // STRUCTS + // --------------------------------------------------- + + public struct Spellbook has key { + id: UID, + casted: bool, + spells: Table> + } + + // --------------------------------------------------- + // FUNCTIONS + // --------------------------------------------------- + + //The spell consists of five magic words, which have to be read in the correct order! + + fun init(ctx: &mut TxContext) { + + let mut all_words = table::new(ctx); + + let fire = vector[ + string::utf8(b"Blast"), + string::utf8(b"Inferno"), + string::utf8(b"Pyre"), + string::utf8(b"Fenix"), + string::utf8(b"Ember") + ]; + + let wind = vector[ + string::utf8(b"Zephyr"), + string::utf8(b"Swirl"), + string::utf8(b"Breeze"), + string::utf8(b"Gust"), + string::utf8(b"Sigil") + ]; + + let water = vector[ + string::utf8(b"Aquarius"), + string::utf8(b"Mistwalker"), + string::utf8(b"Waves"), + string::utf8(b"Call"), + string::utf8(b"Storm") + ]; + + let earth = vector[ + string::utf8(b"Tremor"), + string::utf8(b"Stoneheart"), + string::utf8(b"Grip"), + string::utf8(b"Granite"), + string::utf8(b"Mudslide") + ]; + + let power = vector[ + string::utf8(b"Alakazam"), + string::utf8(b"Hocus"), + string::utf8(b"Pocus"), + string::utf8(b"Wazzup"), + string::utf8(b"Wrath") + ]; + + table::add(&mut all_words, 0, fire); + table::add(&mut all_words, 1, wind); + table::add(&mut all_words, 2, water); + table::add(&mut all_words, 3, earth); + table::add(&mut all_words, 4, power); + + let spellbook = Spellbook { + id: object::new(ctx), + casted: false, + spells: all_words + }; + + transfer::share_object(spellbook); + } + + public fun cast_spell(spell_sequence: vector, book: &mut Spellbook) { + + let fire = table::remove(&mut book.spells, 0); + let wind = table::remove(&mut book.spells, 1); + let water = table::remove(&mut book.spells, 2); + let earth = table::remove(&mut book.spells, 3); + let power = table::remove(&mut book.spells, 4); + + let fire_word_id = *vector::borrow(&spell_sequence, 0); + let wind_word_id = *vector::borrow(&spell_sequence, 1); + let water_word_id = *vector::borrow(&spell_sequence, 2); + let earth_word_id = *vector::borrow(&spell_sequence, 3); + let power_word_id = *vector::borrow(&spell_sequence, 4); + + let fire_word = vector::borrow(&fire, fire_word_id); + let wind_word = vector::borrow(&wind, wind_word_id); + let water_word = vector::borrow(&water, water_word_id); + let earth_word = vector::borrow(&earth, earth_word_id); + let power_word = vector::borrow(&power, power_word_id); + + if (fire_word == string::utf8(b"Inferno")) { + if (wind_word == string::utf8(b"Zephyr")) { + if (water_word == string::utf8(b"Call")) { + if (earth_word == string::utf8(b"Granite")) { + if (power_word == string::utf8(b"Wazzup")) { + book.casted = true; + } + } + } + } + } + + } + + public fun check_if_spell_casted(book: &Spellbook): bool { + let casted = book.casted; + assert!(casted == true, 1337); + casted + } + +} + diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/solve/Move.toml b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/solve/Move.toml new file mode 100644 index 000000000..262e952e8 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/solve/Move.toml @@ -0,0 +1,14 @@ +[package] +name = "solve" +version = "0.0.1" +edition = "2024.alpha" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[dependencies.challenge] +version = '0.0.1' +local = '../dependency' + +[addresses] +solve = "0x0" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/solve/sources/solve.move b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/solve/sources/solve.move new file mode 100644 index 000000000..900fb8608 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/solve/sources/solve.move @@ -0,0 +1,19 @@ +module solve::solve { + + // [*] Import dependencies + use challenge::theotterscrolls; + + public fun solve( + _spellbook: &mut theotterscrolls::Spellbook, + _ctx: &mut TxContext + ) { + let seq = &mut vector::empty(); + vector::push_back(seq, 1); + vector::push_back(seq, 0); + vector::push_back(seq, 3); + vector::push_back(seq, 3); + vector::push_back(seq, 3); + challenge::theotterscrolls::cast_spell(*seq, _spellbook); + } + +} diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/src/main.rs b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/src/main.rs new file mode 100644 index 000000000..e2f9ab95f --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework-solve/src/main.rs @@ -0,0 +1,59 @@ +use std::net::TcpStream; +use std::io::{Read, Write}; +use std::str::from_utf8; +use std::{error::Error, fs}; +use std::env; + +fn main() -> Result<(), Box> { + + let host = "tos.nc.jctf.pro"; // replace with remote ip + let port = env::var("PORT").unwrap_or_else(|_| "31337".to_string()); + + match TcpStream::connect(format!("{}:{}", host, port)) { + Ok(mut stream) => { + println!(" - Connected!"); + + let mod_data : Vec = fs::read("./solve/build/solve/bytecode_modules/solve.mv").unwrap(); + println!(" - Loaded solution!"); + + stream.write_all(&mod_data)?; + stream.flush()?; + println!(" - Sent solution!"); + + let mut return_data1 = [0 as u8; 200]; + match stream.read(&mut return_data1) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&return_data1).unwrap()); // Get module address + let mut return_data2 = [0 as u8; 200]; + match stream.read(&mut return_data2) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&return_data2).unwrap()); // Get module address + let mut flag = [0 as u8; 200]; + match stream.read(&mut flag) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&flag).unwrap()); // Get flag + + }, + Err(e) => { + println!(" - Failed to receive data: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to receive data: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to connect: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to connect: {}", e); + } + } + println!(" - Terminated."); + + Ok(()) +} diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/Cargo.toml b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/Cargo.toml new file mode 100644 index 000000000..7812092d6 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "framework" +version = "0.1.0" +edition = "2021" +exclude = ["chall/"] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +quote = "1.0.26" +threadpool = "1.8.1" +proc-macro2 = "1.0.66" + +tokio = { version = "1", features = ["full"] } + +move-core-types = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-core-types" } +move-bytecode-source-map = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-bytecode-source-map" } +move-binary-format = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-binary-format" } +move-symbol-pool = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-symbol-pool" } +move-transactional-test-runner = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-transactional-test-runner" } + +sui-types = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "sui-types"} +sui-transactional-test-runner = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "sui-transactional-test-runner"} + +sui-ctf-framework = { git = "https://github.com/otter-sec/sui-ctf-framework", branch = "justctf2024" } diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/chall/Move.toml b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/chall/Move.toml new file mode 100644 index 000000000..919e3960d --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/chall/Move.toml @@ -0,0 +1,11 @@ +[package] +name = "challenge" +version = "0.0.1" +edition = "2024.beta" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[addresses] +challenge = "0x0" +admin = "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/chall/sources/the_otter_scrolls.move b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/chall/sources/the_otter_scrolls.move new file mode 100644 index 000000000..79822618a --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/chall/sources/the_otter_scrolls.move @@ -0,0 +1,127 @@ +module challenge::theotterscrolls { + + // --------------------------------------------------- + // DEPENDENCIES + // --------------------------------------------------- + + use sui::table::{Self, Table}; + use std::string::{Self, String}; + use std::debug; + + // --------------------------------------------------- + // STRUCTS + // --------------------------------------------------- + + public struct Spellbook has key { + id: UID, + casted: bool, + spells: Table> + } + + // --------------------------------------------------- + // FUNCTIONS + // --------------------------------------------------- + + //The spell consists of five magic words, which have to be read in the correct order! + + fun init(ctx: &mut TxContext) { + + let mut all_words = table::new(ctx); + + let fire = vector[ + string::utf8(b"Blast"), + string::utf8(b"Inferno"), + string::utf8(b"Pyre"), + string::utf8(b"Fenix"), + string::utf8(b"Ember") + ]; + + let wind = vector[ + string::utf8(b"Zephyr"), + string::utf8(b"Swirl"), + string::utf8(b"Breeze"), + string::utf8(b"Gust"), + string::utf8(b"Sigil") + ]; + + let water = vector[ + string::utf8(b"Aquarius"), + string::utf8(b"Mistwalker"), + string::utf8(b"Waves"), + string::utf8(b"Call"), + string::utf8(b"Storm") + ]; + + let earth = vector[ + string::utf8(b"Tremor"), + string::utf8(b"Stoneheart"), + string::utf8(b"Grip"), + string::utf8(b"Granite"), + string::utf8(b"Mudslide") + ]; + + let power = vector[ + string::utf8(b"Alakazam"), + string::utf8(b"Hocus"), + string::utf8(b"Pocus"), + string::utf8(b"Wazzup"), + string::utf8(b"Wrath") + ]; + + table::add(&mut all_words, 0, fire); + table::add(&mut all_words, 1, wind); + table::add(&mut all_words, 2, water); + table::add(&mut all_words, 3, earth); + table::add(&mut all_words, 4, power); + + let spellbook = Spellbook { + id: object::new(ctx), + casted: false, + spells: all_words + }; + + transfer::share_object(spellbook); + } + + public fun cast_spell(spell_sequence: vector, book: &mut Spellbook) { + + let fire = table::remove(&mut book.spells, 0); + let wind = table::remove(&mut book.spells, 1); + let water = table::remove(&mut book.spells, 2); + let earth = table::remove(&mut book.spells, 3); + let power = table::remove(&mut book.spells, 4); + + let fire_word_id = *vector::borrow(&spell_sequence, 0); + let wind_word_id = *vector::borrow(&spell_sequence, 1); + let water_word_id = *vector::borrow(&spell_sequence, 2); + let earth_word_id = *vector::borrow(&spell_sequence, 3); + let power_word_id = *vector::borrow(&spell_sequence, 4); + + let fire_word = vector::borrow(&fire, fire_word_id); + let wind_word = vector::borrow(&wind, wind_word_id); + let water_word = vector::borrow(&water, water_word_id); + let earth_word = vector::borrow(&earth, earth_word_id); + let power_word = vector::borrow(&power, power_word_id); + + if (fire_word == string::utf8(b"Inferno")) { + if (wind_word == string::utf8(b"Zephyr")) { + if (water_word == string::utf8(b"Call")) { + if (earth_word == string::utf8(b"Granite")) { + if (power_word == string::utf8(b"Wazzup")) { + book.casted = true; + } + } + } + } + } + + } + + public fun check_if_spell_casted(book: &Spellbook): bool { + let casted = book.casted; + assert!(casted == true, 1337); + casted + } + +} + diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/run.sh b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/run.sh new file mode 100755 index 000000000..a62fa9ce3 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/run.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +sed -i \ + -E 's/(host[[:space:]]+all[[:space:]]+all[[:space:]]+127.0.0.1\/32[[:space:]]+)scram-sha-256/\1trust/' \ + /etc/postgresql/16/main/pg_hba.conf + +sed -i \ + -E 's/(host[[:space:]]+all[[:space:]]+all[[:space:]]+::1\/128[[:space:]]+)scram-sha-256/\1trust/' \ + /etc/postgresql/16/main/pg_hba.conf + +/etc/init.d/postgresql restart + +sudo -u postgres psql postgres -c "ALTER ROLE postgres WITH SUPERUSER LOGIN PASSWORD 'postgrespw';" +sudo -u postgres psql postgres -c "CREATE DATABASE sui_indexer_v2;" -c "ALTER SYSTEM SET max_connections = 500;" + +cargo r --release diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/rust-toolchain.toml b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/rust-toolchain.toml new file mode 100644 index 000000000..83a52c383 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.76" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/src/main.rs b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/src/main.rs new file mode 100644 index 000000000..c07dd850c --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/framework/src/main.rs @@ -0,0 +1,258 @@ +use std::env; +use std::error::Error; +use std::fmt; +use std::io::{Read, Write}; +use std::mem::drop; +use std::net::{TcpListener, TcpStream}; +use std::path::Path; + +use tokio; + +use move_transactional_test_runner::framework::{MaybeNamedCompiledModule, MoveTestAdapter}; +use move_bytecode_source_map::{source_map::SourceMap, utils::source_map_from_file}; +use move_binary_format::file_format::CompiledModule; +use move_symbol_pool::Symbol; +use move_core_types::{ + account_address::AccountAddress, + language_storage::TypeTag, +}; + +use sui_ctf_framework::NumericalAddress; +use sui_transactional_test_runner::{args::SuiValue, test_adapter::FakeID}; + +async fn handle_client(mut stream: TcpStream) -> Result<(), Box> { + + // Initialize SuiTestAdapter + let modules = vec!["theotterscrolls"]; + let mut deployed_modules: Vec = Vec::new(); + + let named_addresses = vec![ + ( + "challenge".to_string(), + NumericalAddress::parse_str( + "0x0", + )?, + ), + ( + "solve".to_string(), + NumericalAddress::parse_str( + "0x0", + )?, + ), + ( + "admin".to_string(), + NumericalAddress::parse_str( + "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e", + )?, + ), + ]; + + let mut adapter = sui_ctf_framework::initialize( + named_addresses, + Some(vec!["challenger".to_string(), "solver".to_string()]), + ).await; + + // Check Admin Account + let object_output1 = sui_ctf_framework::view_object(&mut adapter, FakeID::Enumerated(0, 0)).await; + println!("Object Output: {:#?}", object_output1); + + let mut mncp_modules : Vec = Vec::new(); + + for i in 0..modules.len() { + + let module = &modules[i]; + + let mod_path = format!("./chall/build/challenge/bytecode_modules/{}.mv", module); + let src_path = format!("./chall/build/challenge/source_maps/{}.mvsm", module); + let mod_bytes: Vec = std::fs::read(mod_path)?; + + let module: CompiledModule = match CompiledModule::deserialize_with_defaults(&mod_bytes) { + Ok(data) => data, + Err(e) => { + return Err(Box::new(e)) + } + }; + let named_addr_opt: Option = Some(Symbol::from("challenge")); + let source_map: Option = match source_map_from_file(Path::new(&src_path)) { + Ok(data) => Some(data), + Err(e) => { + let _ = adapter.cleanup_resources().await; + println!("error: {:?}, src_path: {}", e, src_path); + return Err("error when generating source map".into()) + } + }; + + let maybe_ncm = MaybeNamedCompiledModule { + named_address: named_addr_opt, + module, + source_map, + }; + + mncp_modules.push( maybe_ncm ); + } + + // Publish Challenge Module + let chall_dependencies: Vec = Vec::new(); + let chall_addr = sui_ctf_framework::publish_compiled_module( + &mut adapter, + mncp_modules, + chall_dependencies, + Some(String::from("challenger")), + ).await; + deployed_modules.push(chall_addr); + println!("[SERVER] Module published at: {:?}", chall_addr); + + let mut solution_data = [0 as u8; 2000]; + let _solution_size = stream.read(&mut solution_data)?; + + // Send Challenge Address + let mut output = String::new(); + fmt::write( + &mut output, + format_args!( + "[SERVER] Challenge modules published at: {}", + chall_addr.to_string().as_str(), + ), + ) + .unwrap(); + stream.write(output.as_bytes()).unwrap(); + + // Publish Solution Module + let mut sol_dependencies: Vec = Vec::new(); + sol_dependencies.push(String::from("challenge")); + + let mut mncp_solution : Vec = Vec::new(); + let module: CompiledModule = match CompiledModule::deserialize_with_defaults(&solution_data.to_vec()) { + Ok(data) => data, + Err(e) => { + let _ = adapter.cleanup_resources().await; + return Err(Box::new(e)) + } + }; + let named_addr_opt: Option = Some(Symbol::from("solve")); + let source_map : Option = None; + + let maybe_ncm = MaybeNamedCompiledModule { + named_address: named_addr_opt, + module, + source_map, + }; + mncp_solution.push( maybe_ncm ); + + let sol_addr = sui_ctf_framework::publish_compiled_module( + &mut adapter, + mncp_solution, + sol_dependencies, + Some(String::from("solver")), + ).await; + println!("[SERVER] Solution published at: {:?}", sol_addr); + + // Send Solution Address + output = String::new(); + fmt::write( + &mut output, + format_args!( + "[SERVER] Solution published at {}", + sol_addr.to_string().as_str() + ), + ) + .unwrap(); + stream.write(output.as_bytes()).unwrap(); + + // Prepare Function Call Arguments + let mut args_solve: Vec = Vec::new(); + let spellbook = SuiValue::Object(FakeID::Enumerated(2, 0), None); + args_solve.push(spellbook.clone()); + + let type_args_solve: Vec = Vec::new(); + + // Call solve Function + let ret_val = match sui_ctf_framework::call_function( + &mut adapter, + sol_addr, + "solve", + "solve", + args_solve, + type_args_solve, + Some("solver".to_string()), + ).await { + Ok(output) => output, + Err(e) => { + let _ = adapter.cleanup_resources().await; + println!("[SERVER] error: {e}"); + return Err("error during call to solve::solve".into()) + } + }; + println!("[SERVER] Return value {:#?}", ret_val); + println!(""); + + // Check Solution + let mut args_check: Vec = Vec::new(); + args_check.push(spellbook.clone()); + let type_args_check: Vec = Vec::new(); + + let sol_ret = sui_ctf_framework::call_function( + &mut adapter, + chall_addr, + "theotterscrolls", + "check_if_spell_casted", + args_check, + type_args_check, + Some("solver".to_string()), + ).await; + println!("[SERVER] Return value {:#?}", sol_ret); + println!(""); + + // Validate Solution + match sol_ret { + Ok(_) => { + println!("[SERVER] Correct Solution!"); + println!(""); + if let Ok(flag) = env::var("FLAG") { + let message = format!("[SERVER] Congrats, flag: {}", flag); + stream.write(message.as_bytes()).unwrap(); + } else { + stream.write("[SERVER] Flag not found, please contact admin".as_bytes()).unwrap(); + } + } + Err(_) => { + println!("[SERVER] Invalid Solution!"); + println!(""); + stream.write("[SERVER] Invalid Solution!".as_bytes()).unwrap(); + } + }; + + let _ = adapter.cleanup_resources().await; + Ok(()) +} + +#[tokio::main] +async fn main() -> Result<(), Box> { + // Create Socket - Port 31337 + let listener = TcpListener::bind("0.0.0.0:31337")?; + println!("[SERVER] Starting server at port 31337!"); + + let local = tokio::task::LocalSet::new(); + + // Wait For Incoming Solution + for stream in listener.incoming() { + match stream { + Ok(stream) => { + println!("[SERVER] New connection: {}", stream.peer_addr()?); + let result = local.run_until( async move { + tokio::task::spawn_local( async { + handle_client(stream).await + }).await + }).await; + println!("[SERVER] Result: {:?}", result); + } + Err(e) => { + println!("[SERVER] Error: {}", e); + } + } + } + + // Close Socket Server + drop(listener); + Ok(()) +} diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/run_client.sh b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/run_client.sh new file mode 100755 index 000000000..1f78679ba --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/run_client.sh @@ -0,0 +1,5 @@ +set -eux + +cd framework-solve/solve && sui move build +cd .. +cargo r --release diff --git a/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/run_server.sh b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/run_server.sh new file mode 100755 index 000000000..d0f9be966 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-tos/sources/run_server.sh @@ -0,0 +1,5 @@ +set -eux + +cd framework/chall && sui move build +cd .. +cargo r --release diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/Dockerfile b/mover/Zeroc0077/justctf2024/justctf2024-woo/Dockerfile new file mode 100644 index 000000000..de77cf555 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/Dockerfile @@ -0,0 +1,16 @@ +FROM embe221ed/otter_template:latest + +ADD ./sources/framework/chall /work/framework/chall +ADD ./sources/framework/src/main.rs /work/framework/src/ + +# build the challenge contracts +WORKDIR /work/framework/chall +RUN sui move build + +WORKDIR /work/framework + +# build the framework +RUN touch src/main.rs +RUN cargo build --locked --release + +CMD ./run.sh diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/README.md b/mover/Zeroc0077/justctf2024/justctf2024-woo/README.md new file mode 100644 index 000000000..f7559304d --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/README.md @@ -0,0 +1,45 @@ +# justCTF2024-World of Ottercraft + +> Description: Welcome to the World of Ottercraft, where otters rule the blockchain! In this challenge, you'll dive deep into the blockchain to grab the mythical Otter Stone! Beware of the powerful monsters that will try to block your path! Can you outsmart them and fish out the Otter Stone, or will you just end up swimming in circles? + +solve.move: +```move +module solve::solve { + + // [*] Import dependencies + use challenge::Otter::{Self, OTTER}; + + public fun solve( + _board: &mut Otter::QuestBoard, + _vault: &mut Otter::Vault, + _player: &mut Otter::Player, + _ctx: &mut TxContext + ) { + let mut _ticket1 = challenge::Otter::enter_tavern(_player); + challenge::Otter::buy_sword(_player, &mut _ticket1); + challenge::Otter::checkout(_ticket1, _player, _ctx, _vault, _board); + let mut i = 0; + while (i < 10) { + challenge::Otter::find_a_monster(_board, _player); + i = i + 1; + }; + challenge::Otter::bring_it_on(_board, _player, 0); + challenge::Otter::return_home(_board, _player); + challenge::Otter::get_the_reward(_vault, _board, _player, _ctx); + i = 0; + while (i < 9) { + _ticket1 = challenge::Otter::enter_tavern(_player); + challenge::Otter::buy_shield(_player, &mut _ticket1); + challenge::Otter::get_the_reward(_vault, _board, _player, _ctx); + challenge::Otter::checkout(_ticket1, _player, _ctx, _vault, _board); + i = i + 1; + }; + _ticket1 = challenge::Otter::enter_tavern(_player); + challenge::Otter::buy_flag(&mut _ticket1, _player); + challenge::Otter::checkout(_ticket1, _player, _ctx, _vault, _board); + } + +} +``` + +![](./images/1.png) \ No newline at end of file diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/docker-compose.yml b/mover/Zeroc0077/justctf2024/justctf2024-woo/docker-compose.yml new file mode 100644 index 000000000..f67586167 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/docker-compose.yml @@ -0,0 +1,11 @@ +services: + woo: + environment: + FLAG: justCTF{Ott3r_uses_expl0it_its_sup3r_eff3ctiv3} + PORT: 31337 + build: + context: ./ + dockerfile: ./Dockerfile + ports: + - "31337:31337" + restart: always diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/images/1.png b/mover/Zeroc0077/justctf2024/justctf2024-woo/images/1.png new file mode 100644 index 000000000..95f15534f Binary files /dev/null and b/mover/Zeroc0077/justctf2024/justctf2024-woo/images/1.png differ diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/Cargo.lock b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/Cargo.lock new file mode 100644 index 000000000..d8b563e5e --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "solve-framework" +version = "0.1.0" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/Cargo.toml b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/Cargo.toml new file mode 100644 index 000000000..9fc89b2dd --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "solve-framework" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/dependency/Move.toml b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/dependency/Move.toml new file mode 100644 index 000000000..42a8a520a --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/dependency/Move.toml @@ -0,0 +1,11 @@ +[package] +name = "challenge" +version = "0.0.1" +edition = "2024.beta" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[addresses] +admin = "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e" +challenge = "c4c8b6eefb675ba752fd89f6e63e40679126d0cfeca86e34df7fc864e8207e46" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/dependency/sources/quest.move b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/dependency/sources/quest.move new file mode 100644 index 000000000..2fe6fece7 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/dependency/sources/quest.move @@ -0,0 +1,284 @@ +module challenge::Otter { + + // --------------------------------------------------- + // DEPENDENCIES + // --------------------------------------------------- + + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Balance, Supply}; + use sui::table::{Self, Table}; + use sui::url; + + // --------------------------------------------------- + // CONST + // --------------------------------------------------- + + // STATUSES + const PREPARE_FOR_TROUBLE: u64 = 1; + const ON_ADVENTURE: u64 = 2; + const RESTING: u64 = 3; + const SHOPPING: u64 = 4; + const FINISHED: u64 = 5; + + // ERROR CODES + const WRONG_AMOUNT: u64 = 1337; + const BETTER_GET_EQUIPPED: u64 = 1338; + const WRONG_PLAYER_STATE: u64 = 1339; + const ALREADY_REGISTERED: u64 = 1340; + const TOO_MANY_MONSTERS: u64 = 1341; + const BUY_SOMETHING: u64 = 1342; + const NO_SUCH_PLAYER: u64 = 1343; + const NOT_SOLVED: u64 = 1344; + + // LIMITS + const QUEST_LIMIT: u64 = 25; + + // --------------------------------------------------- + // STRUCTS + // --------------------------------------------------- + + public struct OTTER has drop {} + + public struct OsecSuply has key { + id: UID, + supply: Supply + } + + public struct Vault has key { + id: UID, + cash: Coin + } + + public struct Monster has store { + reward: u64, + power: u64 + } + + public struct QuestBoard has key, store { + id: UID, + quests: vector, + players: Table // + } + + public struct Player has key, store { + id: UID, + user: address, + power: u64, + status: u64, + quest_index: u64, + wallet: Balance + } + + public struct TawernTicket { + total: u64, + flag_bought: bool + } + + // --------------------------------------------------- + // MINT CASH + // --------------------------------------------------- + + fun init(witness: OTTER, ctx: &mut TxContext) { + let (mut treasury, metadata) = coin::create_currency(witness, 9, b"OSEC", b"Osec", b"Otter ca$h", option::some(url::new_unsafe_from_bytes(b"https://osec.io/")), ctx); + transfer::public_freeze_object(metadata); + + let pool_liquidity = coin::mint(&mut treasury, 50000, ctx); + + let vault = Vault { + id: object::new(ctx), + cash: pool_liquidity + }; + + let supply = coin::treasury_into_supply(treasury); + + let osec_supply = OsecSuply { + id: object::new(ctx), + supply + }; + + transfer::transfer(osec_supply, tx_context::sender(ctx)); + + transfer::share_object(QuestBoard { + id: object::new(ctx), + quests: vector::empty(), + players: table::new(ctx) + }); + + transfer::share_object(vault); + } + + public fun mint(sup: &mut OsecSuply, amount: u64, ctx: &mut TxContext): Coin { + let osecBalance = balance::increase_supply(&mut sup.supply, amount); + coin::from_balance(osecBalance, ctx) + } + + public entry fun mint_to(sup: &mut OsecSuply, amount: u64, to: address, ctx: &mut TxContext) { + let osec = mint(sup, amount, ctx); + transfer::public_transfer(osec, to); + } + + public fun burn(sup: &mut OsecSuply, c: Coin): u64 { + balance::decrease_supply(&mut sup.supply, coin::into_balance(c)) + } + + // --------------------------------------------------- + // REGISTER - ADMIN FUNCTION + // --------------------------------------------------- + + public fun register(_: &mut OsecSuply, board: &mut QuestBoard, vault: &mut Vault, player: address, ctx: &mut TxContext) { + assert!(!table::contains(&board.players, player), ALREADY_REGISTERED); + + let new_cash = coin::into_balance(coin::split(&mut vault.cash, 250, ctx)); + + let new_player_obj = Player { + id: object::new(ctx), + user: player, + power: 10, + status: RESTING, + quest_index: 0, + wallet: new_cash + }; + + table::add(&mut board.players, player, false); + + transfer::transfer(new_player_obj, player); + } + + public fun check_winner(board: &QuestBoard, player: address) { + assert!(table::contains(&board.players, player), NO_SUCH_PLAYER); + assert!(table::borrow(&board.players, player) == true, NOT_SOLVED); + } + + // --------------------------------------------------- + // TAVERN + // --------------------------------------------------- + + public fun enter_tavern(player: &mut Player): TawernTicket { + assert!(player.status == RESTING, WRONG_PLAYER_STATE); + + player.status = SHOPPING; + + TawernTicket{ total: 0, flag_bought: false } + } + + public fun buy_flag(ticket: &mut TawernTicket, player: &mut Player) { + assert!(player.status == SHOPPING, WRONG_PLAYER_STATE); + + ticket.total = ticket.total + 537; + ticket.flag_bought = true; + } + + public fun buy_sword(player: &mut Player, ticket: &mut TawernTicket) { + assert!(player.status == SHOPPING, WRONG_PLAYER_STATE); + + player.power = player.power + 213; + ticket.total = ticket.total + 140; + } + + public fun buy_shield(player: &mut Player, ticket: &mut TawernTicket) { + assert!(player.status == SHOPPING, WRONG_PLAYER_STATE); + + player.power = player.power + 7; + ticket.total = ticket.total + 20; + } + + public fun buy_power_of_friendship(player: &mut Player, ticket: &mut TawernTicket) { + assert!(player.status == SHOPPING, WRONG_PLAYER_STATE); + + player.power = player.power + 9000; //it's over 9000! + ticket.total = ticket.total + 190; + } + + public fun checkout(ticket: TawernTicket, player: &mut Player, ctx: &mut TxContext, vault: &mut Vault, board: &mut QuestBoard) { + let TawernTicket{ total, flag_bought } = ticket; + + assert!(total > 0, BUY_SOMETHING); + assert!(balance::value(&player.wallet) >= total, WRONG_AMOUNT); + + let balance = balance::split(&mut player.wallet, total); + let coins = coin::from_balance(balance, ctx); + + coin::join(&mut vault.cash, coins); + + if (flag_bought == true) { + + let flag = table::borrow_mut(&mut board.players, tx_context::sender(ctx)); + *flag = true; + + std::debug::print(&std::string::utf8(b"$$$$$$$$$$$$$$$$$$$$$$$$$ FLAG BOUGHT $$$$$$$$$$$$$$$$$$$$$$$$$")); //debug + }; + + player.status = RESTING; + } + + // --------------------------------------------------- + // ADVENTURE TIME + // --------------------------------------------------- + + public fun find_a_monster(board: &mut QuestBoard, player: &mut Player) { + assert!(player.status != SHOPPING && player.status != FINISHED && player.status != ON_ADVENTURE, WRONG_PLAYER_STATE); + assert!(vector::length(&board.quests) <= QUEST_LIMIT, TOO_MANY_MONSTERS); + + let quest = if (vector::length(&board.quests) % 3 == 0) { + Monster { + reward: 100, + power: 73 + } + } else if (vector::length(&board.quests) % 3 == 1) { + Monster { + reward: 62, + power: 81 + } + } else { + Monster { + reward: 79, + power: 94 + } + }; + + vector::push_back(&mut board.quests, quest); + player.status = PREPARE_FOR_TROUBLE; + } + + public fun bring_it_on(board: &mut QuestBoard, player: &mut Player, quest_id: u64) { + assert!(player.status != SHOPPING && player.status != FINISHED && player.status != RESTING && player.status != ON_ADVENTURE, WRONG_PLAYER_STATE); + + let monster = vector::borrow_mut(&mut board.quests, quest_id); + assert!(player.power > monster.power, BETTER_GET_EQUIPPED); + + player.status = ON_ADVENTURE; + + player.power = 10; //equipment breaks after fighting the monster, and friends go to party :c + monster.power = 0; //you win! wow! + player.quest_index = quest_id; + } + + public fun return_home(board: &mut QuestBoard, player: &mut Player) { + assert!(player.status != SHOPPING && player.status != FINISHED && player.status != RESTING && player.status != PREPARE_FOR_TROUBLE, WRONG_PLAYER_STATE); + + let quest_to_finish = vector::borrow(&board.quests, player.quest_index); + assert!(quest_to_finish.power == 0, WRONG_AMOUNT); + + player.status = FINISHED; + } + + public fun get_the_reward(vault: &mut Vault, board: &mut QuestBoard, player: &mut Player, ctx: &mut TxContext) { + assert!(player.status != RESTING && player.status != PREPARE_FOR_TROUBLE && player.status != ON_ADVENTURE, WRONG_PLAYER_STATE); + + let monster = vector::remove(&mut board.quests, player.quest_index); + + let Monster { + reward: reward, + power: _ + } = monster; + + let coins = coin::split(&mut vault.cash, reward, ctx); + let balance = coin::into_balance(coins); + + balance::join(&mut player.wallet, balance); + + player.status = RESTING; + } + +} + diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/solve/Move.toml b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/solve/Move.toml new file mode 100644 index 000000000..262e952e8 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/solve/Move.toml @@ -0,0 +1,14 @@ +[package] +name = "solve" +version = "0.0.1" +edition = "2024.alpha" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[dependencies.challenge] +version = '0.0.1' +local = '../dependency' + +[addresses] +solve = "0x0" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/solve/sources/solve.move b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/solve/sources/solve.move new file mode 100644 index 000000000..ce7a7c1db --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/solve/sources/solve.move @@ -0,0 +1,36 @@ +module solve::solve { + + // [*] Import dependencies + use challenge::Otter::{Self, OTTER}; + + public fun solve( + _board: &mut Otter::QuestBoard, + _vault: &mut Otter::Vault, + _player: &mut Otter::Player, + _ctx: &mut TxContext + ) { + let mut _ticket1 = challenge::Otter::enter_tavern(_player); + challenge::Otter::buy_sword(_player, &mut _ticket1); + challenge::Otter::checkout(_ticket1, _player, _ctx, _vault, _board); + let mut i = 0; + while (i < 10) { + challenge::Otter::find_a_monster(_board, _player); + i = i + 1; + }; + challenge::Otter::bring_it_on(_board, _player, 0); + challenge::Otter::return_home(_board, _player); + challenge::Otter::get_the_reward(_vault, _board, _player, _ctx); + i = 0; + while (i < 9) { + _ticket1 = challenge::Otter::enter_tavern(_player); + challenge::Otter::buy_shield(_player, &mut _ticket1); + challenge::Otter::get_the_reward(_vault, _board, _player, _ctx); + challenge::Otter::checkout(_ticket1, _player, _ctx, _vault, _board); + i = i + 1; + }; + _ticket1 = challenge::Otter::enter_tavern(_player); + challenge::Otter::buy_flag(&mut _ticket1, _player); + challenge::Otter::checkout(_ticket1, _player, _ctx, _vault, _board); + } + +} diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/src/main.rs b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/src/main.rs new file mode 100644 index 000000000..443f931b1 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework-solve/src/main.rs @@ -0,0 +1,59 @@ +use std::net::TcpStream; +use std::io::{Read, Write}; +use std::str::from_utf8; +use std::{error::Error, fs}; +use std::env; + +fn main() -> Result<(), Box> { + + let host = "woo.nc.jctf.pro"; // replace with remote ip + let port = env::var("PORT").unwrap_or_else(|_| "31337".to_string()); + + match TcpStream::connect(format!("{}:{}", host, port)) { + Ok(mut stream) => { + println!(" - Connected!"); + + let mod_data : Vec = fs::read("./solve/build/solve/bytecode_modules/solve.mv").unwrap(); + println!(" - Loaded solution!"); + + stream.write_all(&mod_data)?; + stream.flush()?; + println!(" - Sent solution!"); + + let mut return_data1 = [0 as u8; 200]; + match stream.read(&mut return_data1) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&return_data1).unwrap()); // Get module address + let mut return_data2 = [0 as u8; 200]; + match stream.read(&mut return_data2) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&return_data2).unwrap()); // Get module address + let mut flag = [0 as u8; 200]; + match stream.read(&mut flag) { + Ok(_) => { + println!(" - Connection Output: '{}'", from_utf8(&flag).unwrap()); // Get flag + + }, + Err(e) => { + println!(" - Failed to receive data: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to receive data: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to connect: {}", e); + } + } + }, + Err(e) => { + println!(" - Failed to connect: {}", e); + } + } + println!(" - Terminated."); + + Ok(()) +} diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/Cargo.lock b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/Cargo.lock new file mode 100644 index 000000000..4319501a1 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/Cargo.lock @@ -0,0 +1,12692 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "addchain" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" +dependencies = [ + "num-bigint 0.3.3", + "num-integer", + "num-traits", +] + +[[package]] +name = "addr2line" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom 0.2.15", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "aliasable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anemo" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" +dependencies = [ + "anyhow", + "async-trait", + "bincode", + "bytes", + "ed25519", + "futures", + "hex", + "http", + "matchit 0.5.0", + "pin-project-lite", + "pkcs8 0.9.0", + "quinn", + "quinn-proto", + "rand 0.8.5", + "rcgen", + "ring 0.16.20", + "rustls 0.21.12", + "rustls-webpki", + "serde", + "serde_json", + "socket2 0.5.7", + "tap", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "tower", + "tracing", + "x509-parser", +] + +[[package]] +name = "anemo-build" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" +dependencies = [ + "prettyplease 0.1.25", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "anemo-tower" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" +dependencies = [ + "anemo", + "bytes", + "dashmap", + "futures", + "governor", + "nonzero_ext", + "pin-project-lite", + "tokio", + "tower", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "anstream" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" + +[[package]] +name = "anstyle-parse" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +dependencies = [ + "backtrace", +] + +[[package]] +name = "arc-swap" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" +dependencies = [ + "serde", +] + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-crypto-primitives" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-snark", + "ark-std", + "blake2", + "derivative", + "digest 0.10.7", + "sha2 0.10.8", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.5", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.5", + "num-traits", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "ark-groth16" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" +dependencies = [ + "ark-crypto-primitives", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-relations", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-relations" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" +dependencies = [ + "ark-ff", + "ark-std", + "tracing", +] + +[[package]] +name = "ark-secp256r1" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3975a01b0a6e3eae0f72ec7ca8598a6620fc72fa5981f6f5cca33b7cd788f633" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint 0.4.5", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "ark-snark" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" +dependencies = [ + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "ascii_utils" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71938f30533e4d95a6d17aa530939da3842c2ab6f4f84b9dae68447e4129f74a" + +[[package]] +name = "asn1-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "async-compression" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "async-graphql" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298a5d587d6e6fdb271bf56af2dc325a80eb291fd0fc979146584b9a05494a8c" +dependencies = [ + "async-graphql-derive", + "async-graphql-parser", + "async-graphql-value", + "async-stream", + "async-trait", + "base64 0.13.1", + "bytes", + "chrono", + "fast_chemail", + "fnv", + "futures-channel", + "futures-timer", + "futures-util", + "handlebars", + "http", + "indexmap 2.2.6", + "lru 0.7.8", + "mime", + "multer", + "num-traits", + "once_cell", + "opentelemetry 0.21.0", + "pin-project-lite", + "regex", + "serde", + "serde_json", + "serde_urlencoded", + "static_assertions", + "tempfile", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "async-graphql-axum" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a1c20a2059bffbc95130715b23435a05168c518fba9709c81fa2a38eed990c" +dependencies = [ + "async-graphql", + "async-trait", + "axum", + "bytes", + "futures-util", + "serde_json", + "tokio", + "tokio-stream", + "tokio-util 0.7.11", + "tower-service", +] + +[[package]] +name = "async-graphql-derive" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f329c7eb9b646a72f70c9c4b516c70867d356ec46cb00dcac8ad343fd006b0" +dependencies = [ + "Inflector", + "async-graphql-parser", + "darling 0.20.9", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "strum 0.25.0", + "syn 2.0.66", + "thiserror", +] + +[[package]] +name = "async-graphql-parser" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6139181845757fd6a73fbb8839f3d036d7150b798db0e9bb3c6e83cdd65bd53b" +dependencies = [ + "async-graphql-value", + "pest", + "serde", + "serde_json", +] + +[[package]] +name = "async-graphql-value" +version = "6.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "323a5143f5bdd2030f45e3f2e0c821c9b1d36e79cf382129c64299c50a7f3750" +dependencies = [ + "bytes", + "indexmap 2.2.6", + "serde", + "serde_json", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "async-task" +version = "4.3.0" +source = "git+https://github.com/mystenmark/async-task?rev=4e45b26e11126b191701b9b2ce5e2346b8d7682f#4e45b26e11126b191701b9b2ce5e2346b8d7682f" + +[[package]] +name = "async-trait" +version = "0.1.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version", +] + +[[package]] +name = "async_once" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ce4f10ea3abcd6617873bae9f91d1c5332b4a778bd9ce34d0cd517474c1de82" + +[[package]] +name = "atomic_float" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62af46d040ba9df09edc6528dae9d8e49f5f3e82f55b7d2ec31a733c38dbc49d" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "auto_ops" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7460f7dd8e100147b82a63afca1a20eb6c231ee36b90ba7272e14951cb58af59" + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "autotools" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef941527c41b0fc0dd48511a8154cd5fc7e29200a0ff8b7203c5d777dbc795cf" +dependencies = [ + "cc", +] + +[[package]] +name = "axum" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core", + "base64 0.21.7", + "bitflags 1.3.2", + "bytes", + "futures-util", + "headers", + "http", + "http-body", + "hyper", + "itoa", + "matchit 0.7.3", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sha1", + "sync_wrapper", + "tokio", + "tokio-tungstenite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-server" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "447f28c85900215cc1bea282f32d4a2f22d55c5a300afdfbc661c8d6a632e063" +dependencies = [ + "arc-swap", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile", + "tokio", + "tokio-rustls 0.24.1", + "tower-service", +] + +[[package]] +name = "backoff" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +dependencies = [ + "futures-core", + "getrandom 0.2.15", + "instant", + "pin-project-lite", + "rand 0.8.5", + "tokio", +] + +[[package]] +name = "backtrace" +version = "0.3.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64-url" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb9fb9fb058cc3063b5fc88d9a21eefa2735871498a04e1650da76ed511c8569" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bcs" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" +dependencies = [ + "serde", +] + +[[package]] +name = "bellpepper" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae286c2cb403324ab644c7cc68dceb25fe52ca9429908a726d7ed272c1edf7b" +dependencies = [ + "bellpepper-core", + "byteorder", + "ff 0.13.0", +] + +[[package]] +name = "bellpepper-core" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d8abb418570756396d722841b19edfec21d4e89e1cf8990610663040ecb1aea" +dependencies = [ + "blake2s_simd", + "byteorder", + "ff 0.13.0", + "serde", + "thiserror", +] + +[[package]] +name = "better_any" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b359aebd937c17c725e19efcb661200883f04c49c53e7132224dac26da39d4a0" +dependencies = [ + "better_typeid_derive", +] + +[[package]] +name = "better_typeid_derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3deeecb812ca5300b7d3f66f730cc2ebd3511c3d36c691dd79c165d5b19a26e3" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "bimap" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" + +[[package]] +name = "bin-version" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "const-str", + "git-version", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.65.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" +dependencies = [ + "bitflags 1.3.2", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "peeking_take_while", + "prettyplease 0.2.20", + "proc-macro2 1.0.85", + "quote 1.0.36", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.66", +] + +[[package]] +name = "bip32" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b30ed1d6f8437a487a266c8293aeb95b61a23261273e3e02912cdb8b68bf798b" +dependencies = [ + "bs58 0.4.0", + "hmac", + "k256 0.11.6", + "once_cell", + "pbkdf2 0.11.0", + "rand_core 0.6.4", + "ripemd", + "sha2 0.10.8", + "subtle", + "zeroize", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitcoin-private" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57" + +[[package]] +name = "bitcoin_hashes" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d7066118b13d4b20b23645932dfb3a81ce7e29f95726c2036fa33cd7b092501" +dependencies = [ + "bitcoin-private", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + +[[package]] +name = "bitmaps" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" +dependencies = [ + "typenum", +] + +[[package]] +name = "bitvec" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" +dependencies = [ + "funty 1.1.0", + "radium 0.6.2", + "tap", + "wyz 0.2.0", +] + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty 2.0.0", + "radium 0.7.0", + "tap", + "wyz 0.5.1", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "block-padding 0.2.1", + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blst" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62dc83a094a71d43eeadd254b1ec2d24cb6a0bb6cadce00df51f0db594711a32" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff 0.13.0", + "group 0.13.0", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[package]] +name = "bnum" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56953345e39537a3e18bdaeba4cb0c58a78c1f61f361dc0fa7c5c7340ae87c5f" + +[[package]] +name = "brotli" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +dependencies = [ + "sha2 0.9.9", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2 0.10.8", + "tinyvec", +] + +[[package]] +name = "bstr" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "bytecount" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" + +[[package]] +name = "bytemuck" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +dependencies = [ + "serde", +] + +[[package]] +name = "bytes-varint" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54c1820c7c366b9d26c47143e1604454105a59969aade54e4f695d96acc8332f" +dependencies = [ + "bytes", +] + +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "cached" +version = "0.43.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc2fafddf188d13788e7099295a59b99e99b2148ab2195cae454e754cc099925" +dependencies = [ + "async-trait", + "async_once", + "cached_proc_macro", + "cached_proc_macro_types", + "futures", + "hashbrown 0.13.2", + "instant", + "lazy_static", + "once_cell", + "thiserror", + "tokio", +] + +[[package]] +name = "cached_proc_macro" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10ca87c81aaa3a949dbbe2b5e6c2c45dbc94ba4897e45ea31ff9ec5087be3dc" +dependencies = [ + "cached_proc_macro_types", + "darling 0.14.4", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "cached_proc_macro_types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0" + +[[package]] +name = "camino" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cassowary" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.0.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" +dependencies = [ + "jobserver", + "libc", + "once_cell", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-targets 0.52.5", +] + +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" +dependencies = [ + "atty", + "bitflags 1.3.2", + "clap_derive 3.2.25", + "clap_lex 0.2.4", + "indexmap 1.9.3", + "once_cell", + "strsim 0.10.0", + "termcolor", + "textwrap", +] + +[[package]] +name = "clap" +version = "4.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" +dependencies = [ + "clap_builder", + "clap_derive 4.5.5", +] + +[[package]] +name = "clap_builder" +version = "4.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" +dependencies = [ + "anstream", + "anstyle", + "clap_lex 0.7.1", + "strsim 0.11.1", + "terminal_size", +] + +[[package]] +name = "clap_derive" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "clap_derive" +version = "4.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" +dependencies = [ + "heck 0.5.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "clap_lex" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" + +[[package]] +name = "codespan" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3362992a0d9f1dd7c3d0e89e0ab2bb540b7a95fea8cd798090e758fda2899b5e" +dependencies = [ + "codespan-reporting", + "serde", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "serde", + "termcolor", + "unicode-width", +] + +[[package]] +name = "coins-bip32" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +dependencies = [ + "bs58 0.5.1", + "coins-core", + "digest 0.10.7", + "hmac", + "k256 0.13.3", + "serde", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-bip39" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +dependencies = [ + "bitvec 1.0.1", + "coins-bip32", + "hmac", + "once_cell", + "pbkdf2 0.12.2", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-core" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +dependencies = [ + "base64 0.21.7", + "bech32", + "bs58 0.5.1", + "digest 0.10.7", + "generic-array", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2 0.10.8", + "sha3 0.10.8", + "thiserror", +] + +[[package]] +name = "collectable" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08abddbaad209601e53c7dd4308d8c04c06f17bb7df006434e586a22b83be45a" + +[[package]] +name = "colorchoice" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" + +[[package]] +name = "colored" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +dependencies = [ + "lazy_static", + "windows-sys 0.48.0", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "consensus-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto", + "mysten-network", + "rand 0.8.5", + "serde", + "shared-crypto", +] + +[[package]] +name = "consensus-core" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-build", + "anemo-tower", + "anyhow", + "arc-swap", + "async-trait", + "base64 0.21.7", + "bcs", + "bytes", + "cfg-if", + "consensus-config", + "dashmap", + "enum_dispatch", + "fastcrypto", + "futures", + "http", + "hyper", + "hyper-rustls 0.24.2", + "itertools 0.10.5", + "mockall", + "mysten-common", + "mysten-metrics", + "mysten-network", + "nom", + "parking_lot 0.12.3", + "prometheus", + "prost 0.12.6", + "quinn-proto", + "rand 0.8.5", + "rustls 0.21.12", + "serde", + "shared-crypto", + "sui-macros", + "sui-protocol-config", + "sui-tls", + "tap", + "thiserror", + "tokio", + "tokio-rustls 0.24.1", + "tokio-stream", + "tokio-util 0.7.11", + "tonic 0.11.0", + "tonic-build", + "tower", + "tower-http", + "tracing", + "typed-store", +] + +[[package]] +name = "console" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.52.0", +] + +[[package]] +name = "const-hex" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-str" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3618cccc083bb987a415d85c02ca6c9994ea5b44731ec28b9ecf09658655fba9" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + +[[package]] +name = "count-min-sketch" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca319fe30d7b68949da20d78b612215708af87157d49665a4545dadcc20fecc7" +dependencies = [ + "rand 0.8.5", + "siphasher", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap 4.5.7", + "criterion-plot", + "futures", + "is-terminal", + "itertools 0.10.5", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "tokio", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools 0.10.5", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crossterm" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" +dependencies = [ + "bitflags 1.3.2", + "crossterm_winapi", + "libc", + "mio", + "parking_lot 0.12.3", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "csv" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" +dependencies = [ + "memchr", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.6.4", + "subtle-ng", + "zeroize", +] + +[[package]] +name = "darling" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core 0.14.4", + "darling_macro 0.14.4", +] + +[[package]] +name = "darling" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" +dependencies = [ + "darling_core 0.20.9", + "darling_macro 0.20.9", +] + +[[package]] +name = "darling_core" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.85", + "quote 1.0.36", + "strsim 0.10.0", + "syn 1.0.109", +] + +[[package]] +name = "darling_core" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.85", + "quote 1.0.36", + "strsim 0.11.1", + "syn 2.0.66", +] + +[[package]] +name = "darling_macro" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +dependencies = [ + "darling_core 0.14.4", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" +dependencies = [ + "darling_core 0.20.9", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + +[[package]] +name = "data-encoding-macro" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" +dependencies = [ + "data-encoding", + "syn 1.0.109", +] + +[[package]] +name = "deadpool" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "421fe0f90f2ab22016f32a9881be5134fdd71c65298917084b0c7477cbc3856e" +dependencies = [ + "async-trait", + "deadpool-runtime", + "num_cpus", + "retain_mut", + "tokio", +] + +[[package]] +name = "deadpool-runtime" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "092966b41edc516079bdf31ec78a2e0588d1d0c08f78b91d8307215928642b2b" + +[[package]] +name = "der" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +dependencies = [ + "const-oid", + "pem-rfc7468 0.6.0", + "zeroize", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "pem-rfc7468 0.7.0", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint 0.4.5", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "derive-syn-parse" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" +dependencies = [ + "darling 0.14.4", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder_macro" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" +dependencies = [ + "derive_builder_core", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "diesel" +version = "2.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff236accb9a5069572099f0b350a92e9560e8e63a9b8d546162f4a5e03026bb2" +dependencies = [ + "bitflags 2.5.0", + "byteorder", + "chrono", + "diesel_derives", + "itoa", + "pq-sys", + "r2d2", + "serde_json", +] + +[[package]] +name = "diesel-async" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e7974099f0d9bde0e010dd3a673555276a474f3362a7a52ab535a57b7c5056" +dependencies = [ + "async-trait", + "deadpool", + "diesel", + "futures-util", + "scoped-futures", + "tokio", + "tokio-postgres", +] + +[[package]] +name = "diesel-derive-enum" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81c5131a2895ef64741dad1d483f358c2a229a3a2d1b256778cdc5e146db64d4" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "diesel_derives" +version = "2.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14701062d6bed917b5c7103bdffaee1e4609279e240488ad24e7bd979ca6866c" +dependencies = [ + "diesel_table_macro_syntax", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "diesel_migrations" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6036b3f0120c5961381b570ee20a02432d7e2d27ea60de9578799cf9156914ac" +dependencies = [ + "diesel", + "migrations_internals", + "migrations_macros", +] + +[[package]] +name = "diesel_table_macro_syntax" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5" +dependencies = [ + "syn 2.0.66", +] + +[[package]] +name = "difference" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" + +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + +[[package]] +name = "diffy" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e616e59155c92257e84970156f506287853355f58cd4a6eb167385722c32b790" +dependencies = [ + "nu-ansi-term", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys 0.3.7", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys 0.4.1", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + +[[package]] +name = "downcast" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + +[[package]] +name = "ecdsa" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" +dependencies = [ + "der 0.6.1", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", +] + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der 0.7.9", + "digest 0.10.7", + "elliptic-curve 0.13.8", + "rfc6979 0.4.0", + "signature 2.2.0", + "spki 0.7.3", +] + +[[package]] +name = "ed25519" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +dependencies = [ + "pkcs8 0.9.0", + "signature 1.6.4", + "zeroize", +] + +[[package]] +name = "ed25519-consensus" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" +dependencies = [ + "curve25519-dalek-ng", + "hex", + "rand_core 0.6.4", + "serde", + "sha2 0.9.9", + "thiserror", + "zeroize", +] + +[[package]] +name = "either" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" + +[[package]] +name = "elliptic-curve" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +dependencies = [ + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.1", + "digest 0.10.7", + "ff 0.12.1", + "generic-array", + "group 0.12.1", + "rand_core 0.6.4", + "sec1 0.3.0", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct 0.2.0", + "crypto-bigint 0.5.5", + "digest 0.10.7", + "ff 0.13.0", + "generic-array", + "group 0.13.0", + "pem-rfc7468 0.7.0", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "sec1 0.7.3", + "subtle", + "zeroize", +] + +[[package]] +name = "ena" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +dependencies = [ + "log", +] + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enr" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +dependencies = [ + "base64 0.21.7", + "bytes", + "hex", + "k256 0.13.3", + "log", + "rand 0.8.5", + "rlp", + "serde", + "sha3 0.10.8", + "zeroize", +] + +[[package]] +name = "enum-compat-util" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "serde_yaml", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "erasable" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f11890ce181d47a64e5d1eb4b6caba0e7bae911a356723740d058a5d0340b7d" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "eth-keystore" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" +dependencies = [ + "aes", + "ctr", + "digest 0.10.7", + "hex", + "hmac", + "pbkdf2 0.11.0", + "rand 0.8.5", + "scrypt", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3 0.10.8", + "thiserror", + "uuid 0.8.2", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3 0.10.8", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "primitive-types 0.12.2", + "scale-info", + "uint", +] + +[[package]] +name = "ethers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" +dependencies = [ + "ethers-addressbook", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-middleware", + "ethers-providers", + "ethers-signers", + "ethers-solc", +] + +[[package]] +name = "ethers-addressbook" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" +dependencies = [ + "ethers-core", + "once_cell", + "serde", + "serde_json", +] + +[[package]] +name = "ethers-contract" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" +dependencies = [ + "const-hex", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "futures-util", + "once_cell", + "pin-project", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "ethers-contract-abigen" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" +dependencies = [ + "Inflector", + "const-hex", + "dunce", + "ethers-core", + "ethers-etherscan", + "eyre", + "prettyplease 0.2.20", + "proc-macro2 1.0.85", + "quote 1.0.36", + "regex", + "reqwest", + "serde", + "serde_json", + "syn 2.0.66", + "toml 0.8.14", + "walkdir", +] + +[[package]] +name = "ethers-contract-derive" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" +dependencies = [ + "Inflector", + "const-hex", + "ethers-contract-abigen", + "ethers-core", + "proc-macro2 1.0.85", + "quote 1.0.36", + "serde_json", + "syn 2.0.66", +] + +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" +dependencies = [ + "arrayvec", + "bytes", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve 0.13.8", + "ethabi", + "generic-array", + "k256 0.13.3", + "num_enum 0.7.2", + "once_cell", + "open-fastrlp", + "rand 0.8.5", + "rlp", + "serde", + "serde_json", + "strum 0.26.2", + "syn 2.0.66", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid 0.2.4", +] + +[[package]] +name = "ethers-etherscan" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" +dependencies = [ + "chrono", + "ethers-core", + "reqwest", + "semver", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-middleware" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" +dependencies = [ + "async-trait", + "auto_impl", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-providers", + "ethers-signers", + "futures-channel", + "futures-locks", + "futures-util", + "instant", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", +] + +[[package]] +name = "ethers-providers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.21.7", + "bytes", + "const-hex", + "enr", + "ethers-core", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "http", + "instant", + "jsonwebtoken", + "once_cell", + "pin-project", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-tungstenite", + "tracing", + "tracing-futures", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "ws_stream_wasm", +] + +[[package]] +name = "ethers-signers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" +dependencies = [ + "async-trait", + "coins-bip32", + "coins-bip39", + "const-hex", + "elliptic-curve 0.13.8", + "eth-keystore", + "ethers-core", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-solc" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" +dependencies = [ + "cfg-if", + "const-hex", + "dirs 5.0.1", + "dunce", + "ethers-core", + "glob", + "home", + "md-5", + "num_cpus", + "once_cell", + "path-slash", + "rayon", + "regex", + "semver", + "serde", + "serde_json", + "solang-parser", + "svm-rs", + "thiserror", + "tiny-keccak", + "tokio", + "tracing", + "walkdir", + "yansi", +] + +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fail" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be3c61c59fdc91f5dbc3ea31ee8623122ce80057058be560654c5d410d181a6" +dependencies = [ + "lazy_static", + "log", + "rand 0.7.3", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fast_chemail" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "495a39d30d624c2caabe6312bfead73e7717692b44e0b32df168c275a2e8e9e4" +dependencies = [ + "ascii_utils", +] + +[[package]] +name = "fastcrypto" +version = "0.1.8" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "aes", + "aes-gcm", + "ark-ec", + "ark-ff", + "ark-secp256r1", + "ark-serialize", + "auto_ops", + "base64ct", + "bech32", + "bincode", + "blake2", + "blst", + "bs58 0.4.0", + "cbc", + "ctr", + "curve25519-dalek-ng", + "derive_more", + "digest 0.10.7", + "ecdsa 0.16.9", + "ed25519-consensus", + "elliptic-curve 0.13.8", + "fastcrypto-derive", + "generic-array", + "hex", + "hex-literal", + "hkdf", + "lazy_static", + "num-bigint 0.4.5", + "once_cell", + "p256", + "rand 0.8.5", + "readonly", + "rfc6979 0.4.0", + "rsa", + "schemars", + "secp256k1", + "serde", + "serde_json", + "serde_with 2.3.3", + "sha2 0.10.8", + "sha3 0.10.8", + "signature 2.2.0", + "static_assertions", + "thiserror", + "tokio", + "typenum", + "zeroize", +] + +[[package]] +name = "fastcrypto-derive" +version = "0.1.3" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "fastcrypto-tbls" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "bcs", + "digest 0.10.7", + "fastcrypto", + "hex", + "itertools 0.10.5", + "rand 0.8.5", + "serde", + "sha3 0.10.8", + "tap", + "tracing", + "typenum", +] + +[[package]] +name = "fastcrypto-vdf" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "bcs", + "fastcrypto", + "lazy_static", + "num-bigint 0.4.5", + "num-integer", + "num-prime", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "serde", + "serde_with 2.3.3", +] + +[[package]] +name = "fastcrypto-zkp" +version = "0.1.3" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=c101a5176799db3eb9c801b844e7add92153d291#c101a5176799db3eb9c801b844e7add92153d291" +dependencies = [ + "ark-bls12-381", + "ark-bn254", + "ark-ec", + "ark-ff", + "ark-groth16", + "ark-relations", + "ark-serialize", + "ark-snark", + "blst", + "byte-slice-cast", + "derive_more", + "fastcrypto", + "ff 0.13.0", + "im", + "itertools 0.12.1", + "lazy_static", + "neptune", + "num-bigint 0.4.5", + "once_cell", + "regex", + "reqwest", + "schemars", + "serde", + "serde_json", + "typenum", +] + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fdlimit" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" +dependencies = [ + "libc", +] + +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "bitvec 1.0.1", + "byteorder", + "ff_derive", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff_derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f54704be45ed286151c5e11531316eaef5b8f5af7d597b806fdb8af108d84a" +dependencies = [ + "addchain", + "cfg-if", + "num-bigint 0.3.3", + "num-integer", + "num-traits", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "filetime" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "windows-sys 0.52.0", +] + +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fragile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" + +[[package]] +name = "framework" +version = "0.1.0" +dependencies = [ + "move-binary-format", + "move-bytecode-source-map", + "move-core-types", + "move-symbol-pool", + "move-transactional-test-runner", + "proc-macro2 1.0.85", + "quote 1.0.36", + "sui-ctf-framework", + "sui-transactional-test-runner", + "sui-types", + "threadpool", + "tokio", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "fsevent-sys" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +dependencies = [ + "libc", +] + +[[package]] +name = "funty" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-locks" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" +dependencies = [ + "futures-channel", + "futures-task", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "serde", + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "ghash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +dependencies = [ + "opaque-debug", + "polyval", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + +[[package]] +name = "git-version" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19" +dependencies = [ + "git-version-macro", +] + +[[package]] +name = "git-version-macro" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "globset" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "governor" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" +dependencies = [ + "cfg-if", + "dashmap", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot 0.12.3", + "portable-atomic", + "quanta", + "rand 0.8.5", + "smallvec", + "spinning_top", +] + +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff 0.12.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", + "rand 0.8.5", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.2.6", + "slab", + "tokio", + "tokio-util 0.7.11", + "tracing", +] + +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "handlebars" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" +dependencies = [ + "log", + "pest", + "pest_derive", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.8", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.11", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash 0.8.11", + "allocator-api2", +] + +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +dependencies = [ + "fxhash", +] + +[[package]] +name = "hdrhistogram" +version = "7.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" +dependencies = [ + "base64 0.21.7", + "byteorder", + "crossbeam-channel", + "flate2", + "nom", + "num-traits", +] + +[[package]] +name = "headers" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +dependencies = [ + "base64 0.21.7", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "hmac-sha512" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e806677ce663d0a199541030c816847b36e8dc095f70dae4a4f4ad63da5383" + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" + +[[package]] +name = "httparse" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0e7a4dd27b9476dc40cb050d3632d3bba3a70ddbff012285f7f8559a1e7e545" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.7", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +dependencies = [ + "http", + "hyper", + "log", + "rustls 0.20.9", + "rustls-native-certs", + "tokio", + "tokio-rustls 0.23.4", + "webpki-roots 0.22.6", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http", + "hyper", + "log", + "rustls 0.21.12", + "rustls-native-certs", + "tokio", + "tokio-rustls 0.24.1", + "webpki-roots 0.25.4", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed" +dependencies = [ + "icu_normalizer", + "icu_properties", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "im" +version = "15.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" +dependencies = [ + "bitmaps", + "rand_core 0.6.4", + "rand_xoshiro", + "sized-chunks", + "typenum", + "version_check", +] + +[[package]] +name = "impl-codec" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" +dependencies = [ + "parity-scale-codec 2.3.1", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec 3.6.12", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "indicatif" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +dependencies = [ + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", +] + +[[package]] +name = "inotify" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +dependencies = [ + "bitflags 1.3.2", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding 0.3.3", + "generic-array", +] + +[[package]] +name = "insta" +version = "1.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "810ae6042d48e2c9e9215043563a58a80b877bc863228a74cf10c49d4620a6f5" +dependencies = [ + "console", + "lazy_static", + "linked-hash-map", + "pest", + "pest_derive", + "serde", + "similar", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "integer-encoding" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "iri-string" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f0f7638c1e223529f1bfdc48c8b133b9e0b434094d1d28473161ee48b235f78" +dependencies = [ + "nom", +] + +[[package]] +name = "is-terminal" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jobserver" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json_to_table" +version = "0.6.0" +source = "git+https://github.com/zhiburt/tabled/?rev=e449317a1c02eb6b29e409ad6617e5d9eb7b3bd4#e449317a1c02eb6b29e409ad6617e5d9eb7b3bd4" +dependencies = [ + "serde_json", + "tabled", +] + +[[package]] +name = "jsonrpsee" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "jsonrpsee-core", + "jsonrpsee-http-client", + "jsonrpsee-proc-macros", + "jsonrpsee-server", + "jsonrpsee-types", + "jsonrpsee-ws-client", + "tracing", +] + +[[package]] +name = "jsonrpsee-client-transport" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "futures-util", + "http", + "jsonrpsee-core", + "jsonrpsee-types", + "pin-project", + "rustls-native-certs", + "soketto", + "thiserror", + "tokio", + "tokio-rustls 0.23.4", + "tokio-util 0.7.11", + "tracing", + "webpki-roots 0.22.6", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "anyhow", + "arrayvec", + "async-lock", + "async-trait", + "beef", + "futures-channel", + "futures-timer", + "futures-util", + "globset", + "hyper", + "jsonrpsee-types", + "parking_lot 0.12.3", + "rand 0.8.5", + "rustc-hash", + "serde", + "serde_json", + "soketto", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-http-client" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "async-trait", + "hyper", + "hyper-rustls 0.23.2", + "jsonrpsee-core", + "jsonrpsee-types", + "rustc-hash", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "jsonrpsee-server" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "futures-channel", + "futures-util", + "http", + "hyper", + "jsonrpsee-core", + "jsonrpsee-types", + "serde", + "serde_json", + "soketto", + "tokio", + "tokio-stream", + "tokio-util 0.7.11", + "tower", + "tracing", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "anyhow", + "beef", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "jsonrpsee-ws-client" +version = "0.16.2" +source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" +dependencies = [ + "http", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", +] + +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.7", + "pem", + "ring 0.16.20", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "k256" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +dependencies = [ + "cfg-if", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", + "sha2 0.10.8", + "sha3 0.10.8", +] + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "once_cell", + "sha2 0.10.8", + "signature 2.2.0", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "kqueue" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set", + "ena", + "itertools 0.11.0", + "lalrpop-util", + "petgraph 0.6.5", + "regex", + "regex-syntax 0.8.4", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid 0.2.4", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +dependencies = [ + "regex-automata 0.4.7", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libloading" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +dependencies = [ + "cfg-if", + "windows-targets 0.52.5", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.5.0", + "libc", +] + +[[package]] +name = "librocksdb-sys" +version = "0.11.0+8.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" +dependencies = [ + "bindgen", + "bzip2-sys", + "cc", + "glob", + "libc", + "libz-sys", + "lz4-sys", + "zstd-sys", +] + +[[package]] +name = "libz-sys" +version = "1.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +dependencies = [ + "serde", +] + +[[package]] +name = "lru" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" +dependencies = [ + "hashbrown 0.12.3", +] + +[[package]] +name = "lru" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" +dependencies = [ + "hashbrown 0.13.2", +] + +[[package]] +name = "lru" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" +dependencies = [ + "hashbrown 0.14.5", +] + +[[package]] +name = "lz4-sys" +version = "1.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9764018d143cc854c9f17f0b907de70f14393b1f502da6375dce70f00514eb3" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "markdown-gen" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8034621d7f1258317ca1dfb9205e3925d27ee4aa2a46620a09c567daf0310562" + +[[package]] +name = "match_opt" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "405ba1524a1e6ae755334d6966380c60ec40157e0155f9032dd3c294b6384da9" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchit" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + +[[package]] +name = "memchr" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" + +[[package]] +name = "migrations_internals" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f23f71580015254b020e856feac3df5878c2c7a8812297edd6c0a485ac9dada" +dependencies = [ + "serde", + "toml 0.7.8", +] + +[[package]] +name = "migrations_macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cce3325ac70e67bbab5bd837a31cae01f1a6db64e0e744a33cb03a543469ef08" +dependencies = [ + "migrations_internals", + "proc-macro2 1.0.85", + "quote 1.0.36", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "mockall" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "lazy_static", + "mockall_derive", + "predicates", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +dependencies = [ + "cfg-if", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "moka" +version = "0.12.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0d88686dc561d743b40de8269b26eaf0dc58781bde087b0984646602021d08" +dependencies = [ + "crossbeam-channel", + "crossbeam-epoch", + "crossbeam-utils", + "once_cell", + "parking_lot 0.12.3", + "rustc_version", + "smallvec", + "tagptr", + "thiserror", + "triomphe", + "uuid 1.8.0", +] + +[[package]] +name = "move-abstract-interpreter" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", + "move-bytecode-verifier-meter", +] + +[[package]] +name = "move-abstract-interpreter-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", +] + +[[package]] +name = "move-abstract-stack" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" + +[[package]] +name = "move-binary-format" +version = "0.0.3" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "enum-compat-util", + "move-core-types", + "move-proc-macros", + "ref-cast", + "serde", + "variant_count", +] + +[[package]] +name = "move-borrow-graph" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" + +[[package]] +name = "move-bytecode-source-map" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "move-symbol-pool", + "serde", +] + +[[package]] +name = "move-bytecode-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "move-binary-format", + "move-core-types", + "petgraph 0.5.1", + "serde-reflection", +] + +[[package]] +name = "move-bytecode-verifier" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-verifier-meter" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", + "move-core-types", + "move-vm-config", +] + +[[package]] +name = "move-bytecode-verifier-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter-v2", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-verifier-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter-v2", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-verifier-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter-v2", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-viewer" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "clap 4.5.7", + "crossterm", + "move-binary-format", + "move-bytecode-source-map", + "move-disassembler", + "regex", + "tui", +] + +[[package]] +name = "move-cli" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "codespan-reporting", + "colored", + "difference", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-viewer", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-coverage", + "move-disassembler", + "move-docgen", + "move-errmapgen", + "move-ir-types", + "move-package", + "move-prover", + "move-stdlib", + "move-stdlib-natives", + "move-unit-test", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "serde_yaml", + "tempfile", + "toml_edit 0.14.4", + "walkdir", +] + +[[package]] +name = "move-command-line-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "difference", + "dirs-next", + "hex", + "move-core-types", + "num-bigint 0.4.5", + "once_cell", + "serde", + "sha2 0.9.9", + "vfs", + "walkdir", +] + +[[package]] +name = "move-compiler" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "codespan-reporting", + "dunce", + "hex", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-source-map", + "move-bytecode-verifier", + "move-command-line-common", + "move-core-types", + "move-ir-to-bytecode", + "move-ir-types", + "move-proc-macros", + "move-symbol-pool", + "once_cell", + "petgraph 0.5.1", + "regex", + "serde", + "serde_json", + "similar", + "stacker", + "tempfile", + "vfs", +] + +[[package]] +name = "move-core-types" +version = "0.0.4" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "enum-compat-util", + "ethnum", + "hex", + "leb128", + "move-proc-macros", + "num", + "once_cell", + "primitive-types 0.10.1", + "rand 0.8.5", + "ref-cast", + "serde", + "serde_bytes", + "thiserror", + "uint", +] + +[[package]] +name = "move-coverage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "codespan", + "colored", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "petgraph 0.5.1", + "serde", +] + +[[package]] +name = "move-disassembler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "colored", + "hex", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-coverage", + "move-ir-types", +] + +[[package]] +name = "move-docgen" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "codespan", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-compiler", + "move-model", + "num", + "once_cell", + "regex", + "serde", +] + +[[package]] +name = "move-errmapgen" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "move-command-line-common", + "move-core-types", + "move-model", + "serde", +] + +[[package]] +name = "move-ir-compiler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "clap 4.5.7", + "move-abstract-interpreter", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-verifier", + "move-command-line-common", + "move-ir-to-bytecode", + "serde_json", +] + +[[package]] +name = "move-ir-to-bytecode" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "codespan-reporting", + "log", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-core-types", + "move-ir-to-bytecode-syntax", + "move-ir-types", + "move-symbol-pool", + "ouroboros", +] + +[[package]] +name = "move-ir-to-bytecode-syntax" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "hex", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "move-symbol-pool", +] + +[[package]] +name = "move-ir-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-command-line-common", + "move-core-types", + "move-symbol-pool", + "once_cell", + "serde", +] + +[[package]] +name = "move-model" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "codespan", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-disassembler", + "move-ir-types", + "move-symbol-pool", + "num", + "once_cell", + "regex", + "serde", +] + +[[package]] +name = "move-package" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "clap 4.5.7", + "colored", + "itertools 0.10.5", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-docgen", + "move-model", + "move-symbol-pool", + "named-lock", + "once_cell", + "petgraph 0.5.1", + "regex", + "serde", + "serde_yaml", + "sha2 0.9.9", + "tempfile", + "toml 0.5.11", + "toml_edit 0.14.4", + "treeline", + "vfs", + "walkdir", + "whoami", +] + +[[package]] +name = "move-proc-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "enum-compat-util", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "move-prover" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "clap 4.5.7", + "codespan-reporting", + "itertools 0.10.5", + "log", + "move-command-line-common", + "move-compiler", + "move-docgen", + "move-errmapgen", + "move-model", + "move-stackless-bytecode", + "once_cell", + "serde", + "simplelog", + "toml 0.5.11", +] + +[[package]] +name = "move-stackless-bytecode" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "codespan", + "codespan-reporting", + "ethnum", + "im", + "itertools 0.10.5", + "log", + "move-binary-format", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-model", + "num", + "petgraph 0.5.1", + "serde", +] + +[[package]] +name = "move-stdlib" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "hex", + "log", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "move-docgen", + "move-errmapgen", + "move-prover", + "move-stdlib-natives", + "move-vm-runtime", + "sha2 0.9.9", + "walkdir", +] + +[[package]] +name = "move-stdlib-natives" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-stdlib-natives-v0" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime-v0", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-stdlib-natives-v1" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime-v1", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-stdlib-natives-v2" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "hex", + "move-binary-format", + "move-core-types", + "move-vm-runtime-v2", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-symbol-pool" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "once_cell", + "phf", + "serde", +] + +[[package]] +name = "move-transactional-test-runner" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "clap 4.5.7", + "move-binary-format", + "move-bytecode-source-map", + "move-cli", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-disassembler", + "move-ir-compiler", + "move-ir-types", + "move-stdlib", + "move-stdlib-natives", + "move-symbol-pool", + "move-vm-config", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "once_cell", + "rayon", + "regex", + "tempfile", + "tokio", +] + +[[package]] +name = "move-unit-test" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "better_any", + "clap 4.5.7", + "codespan-reporting", + "colored", + "itertools 0.10.5", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-ir-types", + "move-model", + "move-stdlib", + "move-stdlib-natives", + "move-symbol-pool", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "once_cell", + "rand 0.8.5", + "rayon", + "regex", +] + +[[package]] +name = "move-vm-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-binary-format", + "once_cell", +] + +[[package]] +name = "move-vm-profiler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-vm-config", + "once_cell", + "serde", + "serde_json", + "tracing", +] + +[[package]] +name = "move-vm-runtime" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-runtime-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier-v0", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-runtime-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier-v1", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-runtime-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier-v2", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-test-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "move-binary-format", + "move-core-types", + "move-vm-profiler", + "move-vm-types", + "once_cell", + "serde", +] + +[[package]] +name = "move-vm-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "move-binary-format", + "move-core-types", + "move-vm-profiler", + "serde", + "smallvec", +] + +[[package]] +name = "msim" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=077b735b484cf33e79f9d621db1d0c3a5827b81e#077b735b484cf33e79f9d621db1d0c3a5827b81e" +dependencies = [ + "ahash 0.7.8", + "async-task", + "bincode", + "bytes", + "cc", + "downcast-rs", + "erasable", + "futures", + "lazy_static", + "libc", + "msim-macros", + "naive-timer", + "pin-project-lite", + "rand 0.8.5", + "real_tokio", + "serde", + "socket2 0.4.10", + "tap", + "tokio-util 0.7.10", + "toml 0.5.11", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "msim-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=077b735b484cf33e79f9d621db1d0c3a5827b81e#077b735b484cf33e79f9d621db1d0c3a5827b81e" +dependencies = [ + "darling 0.14.4", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "multer" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" +dependencies = [ + "bytes", + "encoding_rs", + "futures-util", + "http", + "httparse", + "log", + "memchr", + "mime", + "spin 0.9.8", + "version_check", +] + +[[package]] +name = "multiaddr" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "log", + "multibase", + "multihash", + "percent-encoding", + "serde", + "static_assertions", + "unsigned-varint", + "url", +] + +[[package]] +name = "multibase" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +dependencies = [ + "base-x", + "data-encoding", + "data-encoding-macro", +] + +[[package]] +name = "multihash" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" +dependencies = [ + "core2", + "multihash-derive", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "multimap" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" + +[[package]] +name = "mysten-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "parking_lot 0.12.3", + "tokio", +] + +[[package]] +name = "mysten-metrics" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "axum", + "dashmap", + "futures", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "prometheus-closure-metric", + "scopeguard", + "tap", + "tokio", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "mysten-network" +version = "0.2.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "bcs", + "bytes", + "eyre", + "futures", + "http", + "multiaddr", + "pin-project-lite", + "serde", + "snap", + "tokio", + "tokio-stream", + "tonic 0.11.0", + "tonic-health", + "tower", + "tower-http", + "tracing", +] + +[[package]] +name = "mysten-util-mem" +version = "0.11.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "cfg-if", + "ed25519-consensus", + "fastcrypto", + "fastcrypto-tbls", + "hashbrown 0.12.3", + "impl-trait-for-tuples", + "indexmap 2.2.6", + "mysten-util-mem-derive", + "once_cell", + "parking_lot 0.12.3", + "roaring", + "smallvec", +] + +[[package]] +name = "mysten-util-mem-derive" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "proc-macro2 1.0.85", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "naive-timer" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034a0ad7deebf0c2abcf2435950a6666c3c15ea9d8fad0c0f48efa8a7f843fed" + +[[package]] +name = "named-lock" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40a3eb6b7c682b65d1f631ec3176829d72ab450b3aacdd3f719bf220822e59ac" +dependencies = [ + "libc", + "once_cell", + "parking_lot 0.12.3", + "thiserror", + "widestring", + "winapi", +] + +[[package]] +name = "narwhal-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto", + "match_opt", + "mysten-network", + "mysten-util-mem", + "narwhal-crypto", + "rand 0.8.5", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "narwhal-crypto" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "fastcrypto", + "serde", + "shared-crypto", +] + +[[package]] +name = "narwhal-executor" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "bcs", + "bincode", + "bytes", + "fastcrypto", + "futures", + "mockall", + "mysten-metrics", + "narwhal-config", + "narwhal-crypto", + "narwhal-network", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "prometheus", + "serde", + "sui-protocol-config", + "thiserror", + "tokio", + "tonic 0.11.0", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-network" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "async-trait", + "axum", + "axum-server", + "backoff", + "bytes", + "dashmap", + "futures", + "mysten-common", + "mysten-metrics", + "narwhal-crypto", + "narwhal-types", + "parking_lot 0.12.3", + "prometheus", + "quinn-proto", + "rand 0.8.5", + "sui-macros", + "tokio", + "tower", + "tracing", +] + +[[package]] +name = "narwhal-node" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "arc-swap", + "async-trait", + "axum", + "bytes", + "cfg-if", + "clap 4.5.7", + "eyre", + "fastcrypto", + "futures", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "narwhal-worker", + "prometheus", + "rand 0.8.5", + "reqwest", + "sui-keys", + "sui-protocol-config", + "sui-types", + "telemetry-subscribers", + "thiserror", + "tokio", + "tokio-stream", + "tracing", + "tracing-subscriber", + "url", +] + +[[package]] +name = "narwhal-primary" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "async-trait", + "backoff", + "bcs", + "bytes", + "cfg-if", + "fastcrypto", + "futures", + "governor", + "itertools 0.10.5", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-network", + "narwhal-storage", + "narwhal-types", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "rand 0.8.5", + "sui-macros", + "sui-protocol-config", + "tap", + "thiserror", + "tokio", + "tokio-stream", + "tower", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-storage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto", + "fastcrypto-tbls", + "futures", + "lru 0.10.1", + "mysten-common", + "mysten-metrics", + "narwhal-config", + "narwhal-types", + "parking_lot 0.12.3", + "prometheus", + "sui-macros", + "tap", + "tempfile", + "tokio", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-test-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "fastcrypto", + "fdlimit", + "indexmap 2.2.6", + "itertools 0.10.5", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-node", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "narwhal-worker", + "once_cell", + "prometheus", + "rand 0.8.5", + "sui-protocol-config", + "telemetry-subscribers", + "tempfile", + "tokio", + "tonic 0.11.0", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-build", + "anyhow", + "base64 0.21.7", + "bcs", + "bytes", + "derive_builder", + "enum_dispatch", + "fastcrypto", + "futures", + "indexmap 2.2.6", + "mockall", + "mysten-common", + "mysten-metrics", + "mysten-network", + "mysten-util-mem", + "narwhal-config", + "narwhal-crypto", + "once_cell", + "prometheus", + "proptest", + "proptest-derive", + "prost 0.12.6", + "prost-build", + "protobuf-src", + "rand 0.8.5", + "roaring", + "rustversion", + "serde", + "serde_with 2.3.3", + "sui-protocol-config", + "thiserror", + "tokio", + "tonic 0.11.0", + "tonic-build", + "tracing", + "typed-store", +] + +[[package]] +name = "narwhal-worker" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "arc-swap", + "async-trait", + "byteorder", + "bytes", + "eyre", + "fastcrypto", + "futures", + "governor", + "itertools 0.10.5", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-network", + "narwhal-types", + "prometheus", + "rand 0.8.5", + "sui-protocol-config", + "tap", + "thiserror", + "tokio", + "tonic 0.11.0", + "tower", + "tracing", + "typed-store", +] + +[[package]] +name = "neptune" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06626c9ac04c894e9a23d061ba1309f28506cdc5fe64156d28a15fb57fc8e438" +dependencies = [ + "bellpepper", + "bellpepper-core", + "blake2s_simd", + "blstrs", + "byteorder", + "ff 0.13.0", + "generic-array", + "log", + "pasta_curves", + "serde", + "trait-set", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nonempty" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "995defdca0a589acfdd1bd2e8e3b896b4d4f7675a31fd14c32611440c7f608e6" + +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + +[[package]] +name = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + +[[package]] +name = "notify" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" +dependencies = [ + "bitflags 2.5.0", + "crossbeam-channel", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "log", + "mio", + "walkdir", + "windows-sys 0.48.0", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint 0.4.5", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" +dependencies = [ + "num-integer", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-modular" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a5fe11d4135c3bcdf3a95b18b194afa9608a5f6ff034f5d857bc9a27fb0119" +dependencies = [ + "num-bigint 0.4.5", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-prime" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e238432a7881ec7164503ccc516c014bf009be7984cde1ba56837862543bdec3" +dependencies = [ + "bitvec 1.0.1", + "either", + "lru 0.12.3", + "num-bigint 0.4.5", + "num-integer", + "num-modular", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint 0.4.5", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.9", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", +] + +[[package]] +name = "num_enum" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +dependencies = [ + "num_enum_derive 0.7.2", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "object" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e" +dependencies = [ + "memchr", +] + +[[package]] +name = "object_store" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f930c88a43b1c3f6e776dfe495b4afab89882dbc81530c632db2ed65451ebcb4" +dependencies = [ + "async-trait", + "base64 0.21.7", + "bytes", + "chrono", + "futures", + "humantime", + "hyper", + "itertools 0.11.0", + "parking_lot 0.12.3", + "percent-encoding", + "quick-xml", + "rand 0.8.5", + "reqwest", + "ring 0.16.20", + "rustls-pemfile", + "serde", + "serde_json", + "snafu", + "tokio", + "tracing", + "url", + "walkdir", +] + +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "oorandom" +version = "11.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "opentelemetry" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9591d937bc0e6d2feb6f71a559540ab300ea49955229c347a517a28d27784c54" +dependencies = [ + "opentelemetry_api", + "opentelemetry_sdk", +] + +[[package]] +name = "opentelemetry" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a" +dependencies = [ + "futures-core", + "futures-sink", + "indexmap 2.2.6", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", + "urlencoding", +] + +[[package]] +name = "opentelemetry-otlp" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e5e5a5c4135864099f3faafbe939eb4d7f9b80ebf68a8448da961b32a7c1275" +dependencies = [ + "async-trait", + "futures-core", + "http", + "opentelemetry-proto", + "opentelemetry-semantic-conventions", + "opentelemetry_api", + "opentelemetry_sdk", + "prost 0.11.9", + "thiserror", + "tokio", + "tonic 0.9.2", +] + +[[package]] +name = "opentelemetry-proto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e3f814aa9f8c905d0ee4bde026afd3b2577a97c10e1699912e3e44f0c4cbeb" +dependencies = [ + "opentelemetry_api", + "opentelemetry_sdk", + "prost 0.11.9", + "tonic 0.9.2", +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73c9f9340ad135068800e7f1b24e9e09ed9e7143f5bf8518ded3d3ec69789269" +dependencies = [ + "opentelemetry 0.20.0", +] + +[[package]] +name = "opentelemetry_api" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a81f725323db1b1206ca3da8bb19874bbd3f57c3bcd59471bfb04525b265b9b" +dependencies = [ + "futures-channel", + "futures-util", + "indexmap 1.9.3", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", + "urlencoding", +] + +[[package]] +name = "opentelemetry_sdk" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa8e705a0612d48139799fcbaba0d4a90f06277153e43dd2bdc16c6f0edd8026" +dependencies = [ + "async-trait", + "crossbeam-channel", + "futures-channel", + "futures-executor", + "futures-util", + "once_cell", + "opentelemetry_api", + "ordered-float", + "percent-encoding", + "rand 0.8.5", + "regex", + "serde_json", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-float" +version = "3.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc" +dependencies = [ + "num-traits", +] + +[[package]] +name = "os_str_bytes" +version = "6.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" + +[[package]] +name = "ouroboros" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2ba07320d39dfea882faa70554b4bd342a5f273ed59ba7c1c6b4c840492c954" +dependencies = [ + "aliasable", + "ouroboros_macro", + "static_assertions", +] + +[[package]] +name = "ouroboros_macro" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec4c6225c69b4ca778c0aea097321a64c421cf4577b331c61b229267edabb6f8" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "primeorder", + "sha2 0.10.8", +] + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group 0.13.0", +] + +[[package]] +name = "papergrid" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae7891b22598926e4398790c8fe6447930c72a67d36d983a49d6ce682ce83290" +dependencies = [ + "bytecount", + "fnv", + "unicode-width", +] + +[[package]] +name = "parity-scale-codec" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" +dependencies = [ + "arrayvec", + "bitvec 0.20.4", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive 2.3.1", + "serde", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +dependencies = [ + "arrayvec", + "bitvec 1.0.1", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive 3.6.12", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.1", + "smallvec", + "windows-targets 0.52.5", +] + +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "pasta_curves" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" +dependencies = [ + "blake2b_simd", + "ff 0.13.0", + "group 0.13.0", + "hex", + "lazy_static", + "rand 0.8.5", + "serde", + "static_assertions", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", + "hmac", + "password-hash", + "sha2 0.10.8", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "pem-rfc7468" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac" +dependencies = [ + "base64ct", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "pest_meta" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" +dependencies = [ + "once_cell", + "pest", + "sha2 0.10.8", +] + +[[package]] +name = "petgraph" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +dependencies = [ + "fixedbitset 0.2.0", + "indexmap 1.9.3", +] + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset 0.4.2", + "indexmap 2.2.6", +] + +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared 0.11.2", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs1" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719" +dependencies = [ + "der 0.6.1", + "pkcs8 0.9.0", + "spki 0.6.0", + "zeroize", +] + +[[package]] +name = "pkcs8" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +dependencies = [ + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.9", + "spki 0.7.3", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "plotters" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7" + +[[package]] +name = "plotters-svg" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81b30686a7d9c3e010b84284bdd26a29f2138574f52f5eb6f794fc0ad924e705" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "portable-atomic" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" + +[[package]] +name = "postgres-protocol" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520" +dependencies = [ + "base64 0.21.7", + "byteorder", + "bytes", + "fallible-iterator", + "hmac", + "md-5", + "memchr", + "rand 0.8.5", + "sha2 0.10.8", + "stringprep", +] + +[[package]] +name = "postgres-types" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d2234cdee9408b523530a9b6d2d6b373d1db34f6a8e51dc03ded1828d7fb67c" +dependencies = [ + "bytes", + "fallible-iterator", + "postgres-protocol", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "pq-sys" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c0052426df997c0cbd30789eb44ca097e3541717a7b8fa36b1c464ee7edebd" +dependencies = [ + "vcpkg", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "predicates" +version = "2.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +dependencies = [ + "difflib", + "float-cmp", + "itertools 0.10.5", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" + +[[package]] +name = "predicates-tree" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +dependencies = [ + "predicates-core", + "termtree", +] + +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2 1.0.85", + "syn 1.0.109", +] + +[[package]] +name = "prettyplease" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +dependencies = [ + "proc-macro2 1.0.85", + "syn 2.0.66", +] + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve 0.13.8", +] + +[[package]] +name = "primitive-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +dependencies = [ + "fixed-hash 0.7.0", + "impl-codec 0.5.1", + "impl-serde 0.3.2", + "uint", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash 0.8.0", + "impl-codec 0.6.0", + "impl-rlp", + "impl-serde 0.4.0", + "scale-info", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml 0.5.11", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", +] + +[[package]] +name = "proc-macro2" +version = "1.0.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prometheus" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" +dependencies = [ + "cfg-if", + "fnv", + "lazy_static", + "memchr", + "parking_lot 0.12.3", + "protobuf", + "thiserror", +] + +[[package]] +name = "prometheus-closure-metric" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "prometheus", + "protobuf", +] + +[[package]] +name = "proptest" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags 2.5.0", + "lazy_static", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_xorshift", + "regex-syntax 0.8.4", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "proptest-derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90b46295382dc76166cb7cf2bb4a97952464e4b7ed5a43e6cd34e1fec3349ddc" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", +] + +[[package]] +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive 0.12.6", +] + +[[package]] +name = "prost-build" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" +dependencies = [ + "bytes", + "heck 0.5.0", + "itertools 0.12.1", + "log", + "multimap", + "once_cell", + "petgraph 0.6.5", + "prettyplease 0.2.20", + "prost 0.12.6", + "prost-types", + "regex", + "syn 2.0.66", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "prost-types" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +dependencies = [ + "prost 0.12.6", +] + +[[package]] +name = "protobuf" +version = "2.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" +dependencies = [ + "bytes", +] + +[[package]] +name = "protobuf-src" +version = "1.1.0+21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7ac8852baeb3cc6fb83b93646fb93c0ffe5d14bf138c945ceb4b9948ee0e3c1" +dependencies = [ + "autotools", +] + +[[package]] +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] + +[[package]] +name = "quanta" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi 0.11.0+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quick-xml" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "quinn" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75" +dependencies = [ + "bytes", + "futures-io", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls 0.21.12", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a" +dependencies = [ + "bytes", + "rand 0.8.5", + "ring 0.16.20", + "rustc-hash", + "rustls 0.21.12", + "slab", + "thiserror", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" +dependencies = [ + "bytes", + "libc", + "socket2 0.5.7", + "tracing", + "windows-sys 0.48.0", +] + +[[package]] +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2 0.4.30", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2 1.0.85", +] + +[[package]] +name = "r2d2" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93" +dependencies = [ + "log", + "parking_lot 0.12.3", + "scheduled-thread-pool", +] + +[[package]] +name = "radium" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "rand_xoshiro" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "raw-cpuid" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e29830cbb1290e404f24c73af91c5d8d631ce7e128691e9477556b540cd01ecd" +dependencies = [ + "bitflags 2.5.0", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rcgen" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +dependencies = [ + "pem", + "ring 0.16.20", + "time", + "yasna", +] + +[[package]] +name = "readonly" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a25d631e41bfb5fdcde1d4e2215f62f7f0afa3ff11e26563765bd6ea1d229aeb" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "real_tokio" +version = "1.36.0" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=e47aafebf98e9c1734a8848a1876d5946c44bdd1#e47aafebf98e9c1734a8848a1876d5946c44bdd1" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot 0.12.3", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.7", + "tokio-macros 2.2.0", + "windows-sys 0.48.0", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +dependencies = [ + "bitflags 2.5.0", +] + +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror", +] + +[[package]] +name = "ref-cast" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "regex" +version = "1.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-rustls 0.24.2", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-rustls 0.24.1", + "tokio-util 0.7.11", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots 0.25.4", + "winreg", +] + +[[package]] +name = "retain_mut" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0" + +[[package]] +name = "rfc6979" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +dependencies = [ + "crypto-bigint 0.4.9", + "hmac", + "zeroize", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.15", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "roaring" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1c77081a55300e016cb86f2864415b7518741879db925b8d488a0ee0d2da6bf" +dependencies = [ + "bytemuck", + "byteorder", +] + +[[package]] +name = "rocksdb" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" +dependencies = [ + "libc", + "librocksdb-sys", +] + +[[package]] +name = "rsa" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55a77d189da1fee555ad95b7e50e7457d91c0e089ec68ca69ad2989413bbdab4" +dependencies = [ + "byteorder", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-iter", + "num-traits", + "pkcs1", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "sha2 0.10.8", + "signature 2.2.0", + "subtle", + "zeroize", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.5.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +dependencies = [ + "log", + "ring 0.16.20", + "sct", + "webpki", +] + +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scale-info" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +dependencies = [ + "cfg-if", + "derive_more", + "parity-scale-codec 3.6.12", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "scheduled-thread-pool" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19" +dependencies = [ + "parking_lot 0.12.3", +] + +[[package]] +name = "schemars" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +dependencies = [ + "dyn-clone", + "either", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "serde_derive_internals", + "syn 2.0.66", +] + +[[package]] +name = "scoped-futures" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1473e24c637950c9bd38763220bea91ec3e095a89f672bbd7a10d03e77ba467" +dependencies = [ + "cfg-if", + "pin-utils", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scrypt" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" +dependencies = [ + "hmac", + "pbkdf2 0.11.0", + "salsa20", + "sha2 0.10.8", +] + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "sec1" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +dependencies = [ + "base16ct 0.1.1", + "der 0.6.1", + "generic-array", + "subtle", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.9", + "generic-array", + "pkcs8 0.10.2", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "bitcoin_hashes", + "rand 0.8.5", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +dependencies = [ + "cc", +] + +[[package]] +name = "secrecy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +dependencies = [ + "bitflags 2.5.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + +[[package]] +name = "serde" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-name" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b5b14ebbcc4e4f2b3642fa99c388649da58d1dc3308c7d109f39f565d1710f0" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "serde-reflection" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05a5f801ac62a51a49d378fdb3884480041b99aced450b28990673e8ff99895" +dependencies = [ + "once_cell", + "serde", + "thiserror", +] + +[[package]] +name = "serde_bytes" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_json" +version = "1.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +dependencies = [ + "indexmap 2.2.6", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_spanned" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +dependencies = [ + "base64 0.13.1", + "chrono", + "hex", + "indexmap 1.9.3", + "serde", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "serde", + "serde_derive", + "serde_json", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" +dependencies = [ + "darling 0.20.9", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "serde_yaml" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +dependencies = [ + "indexmap 1.9.3", + "ryu", + "serde", + "yaml-rust", +] + +[[package]] +name = "serial_test" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e56dd856803e253c8f298af3f4d7eb0ae5e23a737252cd90bb4f3b435033b2d" +dependencies = [ + "dashmap", + "futures", + "lazy_static", + "log", + "parking_lot 0.12.3", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shared-crypto" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "eyre", + "fastcrypto", + "serde", + "serde_repr", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "similar" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640" + +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint 0.4.5", + "num-traits", + "thiserror", + "time", +] + +[[package]] +name = "simplelog" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bc0ffd69814a9b251d43afcabf96dad1b29f5028378056257be9e3fecc9f720" +dependencies = [ + "chrono", + "log", + "termcolor", +] + +[[package]] +name = "simulacrum" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "fastcrypto", + "futures", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "once_cell", + "prometheus", + "rand 0.8.5", + "serde", + "shared-crypto", + "sui-config", + "sui-execution", + "sui-framework", + "sui-genesis-builder", + "sui-keys", + "sui-protocol-config", + "sui-storage", + "sui-swarm-config", + "sui-transaction-checks", + "sui-types", + "tracing", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "sized-chunks" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" +dependencies = [ + "bitmaps", + "typenum", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slip10_ed25519" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be0ff28bf14f9610a342169084e87a4f435ad798ec528dc7579a3678fa9dc9a" +dependencies = [ + "hmac-sha512", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "snafu" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6" +dependencies = [ + "doc-comment", + "snafu-derive", +] + +[[package]] +name = "snafu-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "soketto" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +dependencies = [ + "base64 0.13.1", + "bytes", + "futures", + "http", + "httparse", + "log", + "rand 0.8.5", + "sha-1", +] + +[[package]] +name = "solang-parser" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" +dependencies = [ + "itertools 0.11.0", + "lalrpop", + "lalrpop-util", + "phf", + "thiserror", + "unicode-xid 0.2.4", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spinning_top" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +dependencies = [ + "base64ct", + "der 0.6.1", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der 0.7.9", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "stacker" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "winapi", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot 0.12.3", + "phf_shared 0.10.0", + "precomputed-hash", +] + +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros 0.24.3", +] + +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +dependencies = [ + "strum_macros 0.25.3", +] + +[[package]] +name = "strum" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" +dependencies = [ + "strum_macros 0.26.4", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustversion", + "syn 2.0.66", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2 1.0.85", + "quote 1.0.36", + "rustversion", + "syn 2.0.66", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "subtle-ng" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + +[[package]] +name = "sui-adapter-latest" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-types", + "mysten-metrics", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-latest", + "sui-protocol-config", + "sui-types", + "sui-verifier-latest", + "tracing", +] + +[[package]] +name = "sui-adapter-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v0", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime-v0", + "move-vm-types", + "once_cell", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-v0", + "sui-protocol-config", + "sui-types", + "sui-verifier-v0", + "tracing", +] + +[[package]] +name = "sui-adapter-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v1", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime-v1", + "move-vm-types", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-v1", + "sui-protocol-config", + "sui-types", + "sui-verifier-v1", + "tracing", +] + +[[package]] +name = "sui-adapter-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v2", + "move-core-types", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime-v2", + "move-vm-types", + "parking_lot 0.12.3", + "serde", + "sui-macros", + "sui-move-natives-v2", + "sui-protocol-config", + "sui-types", + "sui-verifier-v2", + "tracing", +] + +[[package]] +name = "sui-archival" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "byteorder", + "bytes", + "fastcrypto", + "futures", + "indicatif", + "num_enum 0.6.1", + "object_store", + "prometheus", + "rand 0.8.5", + "serde", + "serde_json", + "sui-config", + "sui-simulator", + "sui-storage", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "sui-authority-aggregation" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "mysten-metrics", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "sui-bridge" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "arc-swap", + "async-trait", + "axum", + "backoff", + "bcs", + "bin-version", + "clap 4.5.7", + "enum_dispatch", + "ethers", + "eyre", + "fastcrypto", + "futures", + "lru 0.10.1", + "move-core-types", + "mysten-metrics", + "num_enum 0.6.1", + "once_cell", + "prometheus", + "rand 0.8.5", + "reqwest", + "rocksdb", + "serde", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "sui-common", + "sui-config", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-keys", + "sui-sdk 1.27.0", + "sui-test-transaction-builder", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tracing", + "typed-store", + "typed-store-derive", + "url", +] + +[[package]] +name = "sui-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "mysten-metrics", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "sui-config" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "bcs", + "clap 4.5.7", + "csv", + "dirs 4.0.0", + "fastcrypto", + "narwhal-config", + "object_store", + "once_cell", + "prometheus", + "rand 0.8.5", + "reqwest", + "serde", + "serde_with 2.3.3", + "serde_yaml", + "sui-keys", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-core" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "arc-swap", + "async-trait", + "axum", + "bcs", + "bytes", + "chrono", + "consensus-config", + "consensus-core", + "count-min-sketch", + "dashmap", + "diffy", + "either", + "enum_dispatch", + "eyre", + "fastcrypto", + "fastcrypto-tbls", + "fastcrypto-zkp", + "futures", + "im", + "indexmap 2.2.6", + "itertools 0.10.5", + "jsonrpsee", + "lru 0.10.1", + "mockall", + "moka", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-package", + "move-symbol-pool", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-node", + "narwhal-test-utils", + "narwhal-types", + "narwhal-worker", + "num_cpus", + "object_store", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "rand 0.8.5", + "reqwest", + "roaring", + "rocksdb", + "scopeguard", + "serde", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "signature 1.6.4", + "static_assertions", + "sui-archival", + "sui-authority-aggregation", + "sui-config", + "sui-execution", + "sui-framework", + "sui-genesis-builder", + "sui-json-rpc-types", + "sui-macros", + "sui-move-build", + "sui-network", + "sui-protocol-config", + "sui-rest-api", + "sui-simulator", + "sui-storage", + "sui-swarm-config", + "sui-transaction-checks", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "thiserror", + "tokio", + "tokio-retry", + "tokio-stream", + "tracing", + "twox-hash", + "typed-store", + "typed-store-derive", + "zeroize", +] + +[[package]] +name = "sui-ctf-framework" +version = "0.1.0" +source = "git+https://github.com/otter-sec/sui-ctf-framework?branch=justctf2024#761465a1d97742bb2aea2864cc76cef646232c55" +dependencies = [ + "clap 3.2.25", + "diesel-async", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-stdlib", + "move-symbol-pool", + "move-transactional-test-runner", + "once_cell", + "sui-protocol-config", + "sui-transactional-test-runner", + "sui-types", + "tempfile", +] + +[[package]] +name = "sui-data-ingestion-core" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "backoff", + "bcs", + "futures", + "mysten-metrics", + "notify", + "object_store", + "prometheus", + "serde", + "serde_json", + "sui-rest-api", + "sui-storage", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "sui-enum-compat-util" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "serde_yaml", +] + +[[package]] +name = "sui-execution" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter", + "move-abstract-interpreter-v2", + "move-binary-format", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v0", + "move-bytecode-verifier-v1", + "move-bytecode-verifier-v2", + "move-vm-config", + "move-vm-runtime", + "move-vm-runtime-v0", + "move-vm-runtime-v1", + "move-vm-runtime-v2", + "sui-adapter-latest", + "sui-adapter-v0", + "sui-adapter-v1", + "sui-adapter-v2", + "sui-move-natives-latest", + "sui-move-natives-v0", + "sui-move-natives-v1", + "sui-move-natives-v2", + "sui-protocol-config", + "sui-types", + "sui-verifier-latest", + "sui-verifier-v0", + "sui-verifier-v1", + "sui-verifier-v2", +] + +[[package]] +name = "sui-framework" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "move-binary-format", + "move-compiler", + "move-core-types", + "move-package", + "once_cell", + "regex", + "serde", + "sui-move-build", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-framework-snapshot" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "bin-version", + "serde", + "serde_json", + "sui-framework", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-genesis-builder" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "camino", + "fastcrypto", + "move-binary-format", + "move-core-types", + "prometheus", + "rand 0.8.5", + "serde", + "serde_with 2.3.3", + "serde_yaml", + "shared-crypto", + "sui-config", + "sui-execution", + "sui-framework", + "sui-framework-snapshot", + "sui-protocol-config", + "sui-simulator", + "sui-types", + "tempfile", + "tracing", +] + +[[package]] +name = "sui-graphql-rpc" +version = "2024.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-graphql", + "async-graphql-axum", + "async-graphql-value", + "async-trait", + "axum", + "bcs", + "bin-version", + "chrono", + "clap 4.5.7", + "const-str", + "diesel", + "downcast", + "either", + "fastcrypto", + "fastcrypto-zkp", + "futures", + "hex", + "http", + "hyper", + "im", + "itertools 0.10.5", + "lru 0.10.1", + "markdown-gen", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-disassembler", + "move-ir-types", + "mysten-metrics", + "mysten-network", + "once_cell", + "prometheus", + "rand 0.8.5", + "regex", + "reqwest", + "serde", + "serde_json", + "serde_with 2.3.3", + "serde_yaml", + "serial_test", + "shared-crypto", + "similar", + "simulacrum", + "sui-graphql-rpc-client", + "sui-graphql-rpc-headers", + "sui-indexer", + "sui-json-rpc", + "sui-json-rpc-types", + "sui-package-resolver", + "sui-protocol-config", + "sui-rest-api", + "sui-sdk 1.27.0", + "sui-swarm-config", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "test-cluster", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "toml 0.7.8", + "tower", + "tower-http", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "sui-graphql-rpc-client" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-graphql", + "axum", + "hyper", + "reqwest", + "serde_json", + "sui-graphql-rpc-headers", + "thiserror", +] + +[[package]] +name = "sui-graphql-rpc-headers" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "axum", +] + +[[package]] +name = "sui-indexer" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "axum", + "backoff", + "bcs", + "cached", + "chrono", + "clap 4.5.7", + "diesel", + "diesel-derive-enum", + "diesel_migrations", + "downcast", + "fastcrypto", + "futures", + "itertools 0.10.5", + "jsonrpsee", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "mysten-metrics", + "prometheus", + "rayon", + "regex", + "secrecy", + "serde", + "serde_json", + "serde_with 2.3.3", + "sui-data-ingestion-core", + "sui-json", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-open-rpc", + "sui-package-resolver", + "sui-protocol-config", + "sui-rest-api", + "sui-sdk 1.27.0", + "sui-transaction-builder", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "tracing", + "url", +] + +[[package]] +name = "sui-json" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "fastcrypto", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "schemars", + "serde", + "serde_json", + "sui-types", +] + +[[package]] +name = "sui-json-rpc" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "arc-swap", + "async-trait", + "axum", + "bcs", + "cached", + "chrono", + "eyre", + "fastcrypto", + "futures", + "hyper", + "indexmap 2.2.6", + "itertools 0.10.5", + "jsonrpsee", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-package", + "mysten-metrics", + "once_cell", + "prometheus", + "serde", + "serde_json", + "shared-crypto", + "signature 1.6.4", + "sui-core", + "sui-json", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-macros", + "sui-open-rpc", + "sui-open-rpc-macros", + "sui-protocol-config", + "sui-storage", + "sui-transaction-builder", + "sui-types", + "tap", + "thiserror", + "tokio", + "tokio-util 0.7.11", + "tower", + "tower-http", + "tracing", + "typed-store-error", +] + +[[package]] +name = "sui-json-rpc-api" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "fastcrypto", + "jsonrpsee", + "mysten-metrics", + "once_cell", + "prometheus", + "sui-json", + "sui-json-rpc-types", + "sui-open-rpc", + "sui-open-rpc-macros", + "sui-types", + "tap", + "tracing", +] + +[[package]] +name = "sui-json-rpc-types" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "colored", + "enum_dispatch", + "fastcrypto", + "itertools 0.10.5", + "json_to_table", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "mysten-metrics", + "schemars", + "serde", + "serde_json", + "serde_with 2.3.3", + "sui-enum-compat-util", + "sui-json", + "sui-macros", + "sui-package-resolver", + "sui-protocol-config", + "sui-types", + "tabled", + "tracing", +] + +[[package]] +name = "sui-keys" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bip32", + "fastcrypto", + "rand 0.8.5", + "regex", + "serde", + "serde_json", + "shared-crypto", + "signature 1.6.4", + "slip10_ed25519", + "sui-types", + "tiny-bip39", +] + +[[package]] +name = "sui-macros" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "futures", + "once_cell", + "sui-proc-macros", + "tracing", +] + +[[package]] +name = "sui-move-build" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "fastcrypto", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-ir-types", + "move-package", + "move-symbol-pool", + "serde-reflection", + "sui-protocol-config", + "sui-types", + "sui-verifier-latest", + "tempfile", +] + +[[package]] +name = "sui-move-natives-latest" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-vdf", + "fastcrypto-zkp", + "indexmap 2.2.6", + "move-binary-format", + "move-core-types", + "move-stdlib-natives", + "move-vm-runtime", + "move-vm-types", + "rand 0.8.5", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-move-natives-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-zkp", + "linked-hash-map", + "move-binary-format", + "move-core-types", + "move-stdlib-natives-v0", + "move-vm-runtime-v0", + "move-vm-types", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-move-natives-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-zkp", + "linked-hash-map", + "move-binary-format", + "move-core-types", + "move-stdlib-natives-v1", + "move-vm-runtime-v1", + "move-vm-types", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-move-natives-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "better_any", + "fastcrypto", + "fastcrypto-zkp", + "indexmap 2.2.6", + "move-binary-format", + "move-core-types", + "move-stdlib-natives-v2", + "move-vm-runtime-v2", + "move-vm-types", + "smallvec", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-network" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-build", + "anemo-tower", + "anyhow", + "arc-swap", + "bcs", + "bytes", + "dashmap", + "fastcrypto", + "fastcrypto-tbls", + "futures", + "governor", + "mysten-metrics", + "mysten-network", + "prometheus", + "rand 0.8.5", + "serde", + "sui-archival", + "sui-config", + "sui-macros", + "sui-storage", + "sui-swarm-config", + "sui-types", + "tap", + "tokio", + "tonic 0.11.0", + "tonic-build", + "tower", + "tracing", +] + +[[package]] +name = "sui-node" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "arc-swap", + "axum", + "bin-version", + "clap 4.5.7", + "fastcrypto", + "fastcrypto-zkp", + "futures", + "humantime", + "move-vm-profiler", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-network", + "narwhal-worker", + "prometheus", + "reqwest", + "serde", + "snap", + "sui-archival", + "sui-config", + "sui-core", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-macros", + "sui-network", + "sui-protocol-config", + "sui-rest-api", + "sui-simulator", + "sui-snapshot", + "sui-storage", + "sui-telemetry", + "sui-tls", + "sui-types", + "tap", + "telemetry-subscribers", + "tokio", + "tower", + "tracing", + "typed-store", + "url", +] + +[[package]] +name = "sui-open-rpc" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "schemars", + "serde", + "serde_json", + "versions", +] + +[[package]] +name = "sui-open-rpc-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "derive-syn-parse", + "itertools 0.10.5", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "unescape", +] + +[[package]] +name = "sui-package-resolver" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "bcs", + "eyre", + "lru 0.10.1", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "serde", + "sui-rest-api", + "sui-types", + "thiserror", + "tokio", +] + +[[package]] +name = "sui-proc-macros" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "msim-macros", + "proc-macro2 1.0.85", + "quote 1.0.36", + "sui-enum-compat-util", + "syn 2.0.66", +] + +[[package]] +name = "sui-protocol-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "clap 4.5.7", + "insta", + "move-vm-config", + "schemars", + "serde", + "serde_with 2.3.3", + "sui-protocol-config-macros", + "tracing", +] + +[[package]] +name = "sui-protocol-config-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "sui-rest-api" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "axum", + "bcs", + "fastcrypto", + "itertools 0.10.5", + "mime", + "mysten-network", + "prometheus", + "rand 0.8.5", + "reqwest", + "serde", + "serde_json", + "serde_with 2.3.3", + "sui-sdk 0.0.0", + "sui-types", + "tap", + "thiserror", +] + +[[package]] +name = "sui-sdk" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/sui-rust-sdk.git?rev=ec4236befe57c15fba0dae9e6881c18231882151#ec4236befe57c15fba0dae9e6881c18231882151" +dependencies = [ + "base64ct", + "bcs", + "bnum", + "bs58 0.5.1", + "hex", + "roaring", + "serde", + "serde_derive", + "serde_with 3.8.1", + "winnow 0.6.13", +] + +[[package]] +name = "sui-sdk" +version = "1.27.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "base64 0.21.7", + "bcs", + "clap 4.5.7", + "colored", + "fastcrypto", + "futures", + "futures-core", + "jsonrpsee", + "move-core-types", + "reqwest", + "serde", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "sui-config", + "sui-json", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-keys", + "sui-transaction-builder", + "sui-types", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "sui-simulator" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anemo-tower", + "bcs", + "fastcrypto", + "lru 0.10.1", + "move-package", + "msim", + "narwhal-network", + "rand 0.8.5", + "serde", + "sui-framework", + "sui-move-build", + "sui-types", + "telemetry-subscribers", + "tempfile", + "tower", + "tracing", +] + +[[package]] +name = "sui-snapshot" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "byteorder", + "bytes", + "fastcrypto", + "futures", + "indicatif", + "integer-encoding", + "num_enum 0.6.1", + "object_store", + "prometheus", + "serde", + "serde_json", + "sui-config", + "sui-core", + "sui-protocol-config", + "sui-storage", + "sui-types", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "sui-storage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "backoff", + "base64-url", + "bcs", + "byteorder", + "bytes", + "chrono", + "clap 4.5.7", + "eyre", + "fastcrypto", + "futures", + "hyper", + "hyper-rustls 0.24.2", + "indicatif", + "integer-encoding", + "itertools 0.10.5", + "lru 0.10.1", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "mysten-metrics", + "num_enum 0.6.1", + "object_store", + "parking_lot 0.12.3", + "percent-encoding", + "prometheus", + "reqwest", + "rocksdb", + "serde", + "serde_json", + "sui-config", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tracing", + "typed-store", + "typed-store-derive", + "url", + "zstd 0.12.4", +] + +[[package]] +name = "sui-swarm" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "futures", + "mysten-metrics", + "mysten-network", + "prometheus", + "rand 0.8.5", + "sui-config", + "sui-macros", + "sui-node", + "sui-protocol-config", + "sui-simulator", + "sui-swarm-config", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "tokio", + "tonic-health", + "tracing", +] + +[[package]] +name = "sui-swarm-config" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "fastcrypto", + "move-bytecode-utils", + "narwhal-config", + "prometheus", + "rand 0.8.5", + "serde", + "serde_with 2.3.3", + "serde_yaml", + "shared-crypto", + "sui-config", + "sui-genesis-builder", + "sui-macros", + "sui-protocol-config", + "sui-simulator", + "sui-types", + "tempfile", + "tracing", +] + +[[package]] +name = "sui-telemetry" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "reqwest", + "serde", + "sui-core", + "tracing", +] + +[[package]] +name = "sui-test-transaction-builder" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "bcs", + "move-core-types", + "shared-crypto", + "sui-genesis-builder", + "sui-move-build", + "sui-sdk 1.27.0", + "sui-types", +] + +[[package]] +name = "sui-tls" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "axum", + "axum-server", + "ed25519", + "fastcrypto", + "pkcs8 0.9.0", + "rcgen", + "reqwest", + "rustls 0.21.12", + "rustls-webpki", + "tokio", + "tokio-rustls 0.24.1", + "tower-layer", + "x509-parser", +] + +[[package]] +name = "sui-transaction-builder" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "futures", + "move-binary-format", + "move-core-types", + "sui-json", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-transaction-checks" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "fastcrypto-zkp", + "once_cell", + "sui-config", + "sui-execution", + "sui-macros", + "sui-protocol-config", + "sui-types", + "tracing", +] + +[[package]] +name = "sui-transactional-test-runner" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "bimap", + "clap 4.5.7", + "criterion", + "eyre", + "fastcrypto", + "futures", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-stdlib", + "move-symbol-pool", + "move-transactional-test-runner", + "move-vm-runtime", + "msim", + "once_cell", + "rand 0.8.5", + "regex", + "rocksdb", + "serde_json", + "simulacrum", + "sui-config", + "sui-core", + "sui-framework", + "sui-framework-snapshot", + "sui-graphql-rpc", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-rest-api", + "sui-storage", + "sui-swarm-config", + "sui-types", + "telemetry-subscribers", + "tempfile", + "tokio", + "typed-store", + "typed-store-derive", +] + +[[package]] +name = "sui-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anemo", + "anyhow", + "bcs", + "better_any", + "bincode", + "byteorder", + "chrono", + "consensus-config", + "derivative", + "derive_more", + "enum_dispatch", + "eyre", + "fastcrypto", + "fastcrypto-tbls", + "fastcrypto-zkp", + "im", + "indexmap 2.2.6", + "itertools 0.10.5", + "jsonrpsee", + "lru 0.10.1", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-core-types", + "move-disassembler", + "move-ir-types", + "move-vm-profiler", + "move-vm-test-utils", + "move-vm-types", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "nonempty", + "num-bigint 0.4.5", + "num-traits", + "num_enum 0.6.1", + "once_cell", + "parking_lot 0.12.3", + "prometheus", + "proptest", + "proptest-derive", + "rand 0.8.5", + "roaring", + "schemars", + "serde", + "serde-name", + "serde_json", + "serde_with 2.3.3", + "shared-crypto", + "signature 1.6.4", + "static_assertions", + "strum 0.24.1", + "strum_macros 0.24.3", + "sui-enum-compat-util", + "sui-macros", + "sui-protocol-config", + "sui-sdk 0.0.0", + "tap", + "thiserror", + "tonic 0.11.0", + "tracing", + "typed-store-error", +] + +[[package]] +name = "sui-verifier-latest" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-interpreter", + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-verifier-v0" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v0", + "move-core-types", + "move-vm-config", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "sui-verifier-v1" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v1", + "move-core-types", + "move-vm-config", + "sui-types", +] + +[[package]] +name = "sui-verifier-v2" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "move-abstract-stack", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier-meter", + "move-bytecode-verifier-v2", + "move-core-types", + "move-vm-config", + "sui-protocol-config", + "sui-types", +] + +[[package]] +name = "svm-rs" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" +dependencies = [ + "dirs 5.0.1", + "fs2", + "hex", + "once_cell", + "reqwest", + "semver", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "url", + "zip", +] + +[[package]] +name = "syn" +version = "0.15.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", + "unicode-xid 0.2.4", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tabled" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce69a5028cd9576063ec1f48edb2c75339fd835e6094ef3e05b3a079bf594a6" +dependencies = [ + "papergrid", + "tabled_derive", + "unicode-width", +] + +[[package]] +name = "tabled_derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99f688a08b54f4f02f0a3c382aefdb7884d3d69609f785bd253dc033243e3fe4" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "tagptr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "telemetry-subscribers" +version = "0.2.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "atomic_float", + "bytes", + "bytes-varint", + "clap 4.5.7", + "crossterm", + "futures", + "once_cell", + "opentelemetry 0.20.0", + "opentelemetry-otlp", + "opentelemetry-proto", + "opentelemetry_api", + "prometheus", + "prost 0.11.9", + "tokio", + "tonic 0.9.2", + "tracing", + "tracing-appender", + "tracing-opentelemetry", + "tracing-subscriber", +] + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terminal_size" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +dependencies = [ + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + +[[package]] +name = "test-cluster" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "anyhow", + "bcs", + "fastcrypto", + "fastcrypto-zkp", + "futures", + "jsonrpsee", + "move-binary-format", + "prometheus", + "rand 0.8.5", + "sui-bridge", + "sui-config", + "sui-core", + "sui-framework", + "sui-json-rpc", + "sui-json-rpc-api", + "sui-json-rpc-types", + "sui-keys", + "sui-node", + "sui-protocol-config", + "sui-sdk 1.27.0", + "sui-simulator", + "sui-swarm", + "sui-swarm-config", + "sui-test-transaction-builder", + "sui-types", + "tokio", + "tracing", +] + +[[package]] +name = "textwrap" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" + +[[package]] +name = "thiserror" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-bip39" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" +dependencies = [ + "anyhow", + "hmac", + "once_cell", + "pbkdf2 0.11.0", + "rand 0.8.5", + "rustc-hash", + "sha2 0.10.8", + "thiserror", + "unicode-normalization", + "wasm-bindgen", + "zeroize", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot 0.12.3", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.7", + "tokio-macros 2.3.0", + "tracing", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=e47aafebf98e9c1734a8848a1876d5946c44bdd1#e47aafebf98e9c1734a8848a1876d5946c44bdd1" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tokio-macros" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tokio-postgres" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d340244b32d920260ae7448cb72b6e238bddc3d4f7603394e7dd46ed8e48f5b8" +dependencies = [ + "async-trait", + "byteorder", + "bytes", + "fallible-iterator", + "futures-channel", + "futures-util", + "log", + "parking_lot 0.12.3", + "percent-encoding", + "phf", + "pin-project-lite", + "postgres-protocol", + "postgres-types", + "rand 0.8.5", + "socket2 0.5.7", + "tokio", + "tokio-util 0.7.11", + "whoami", +] + +[[package]] +name = "tokio-retry" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +dependencies = [ + "pin-project", + "rand 0.8.5", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls 0.20.9", + "tokio", + "webpki", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util 0.7.11", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", + "tungstenite", + "webpki-roots 0.25.4", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=e47aafebf98e9c1734a8848a1876d5946c44bdd1#e47aafebf98e9c1734a8848a1876d5946c44bdd1" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "futures-util", + "hashbrown 0.14.5", + "pin-project-lite", + "real_tokio", + "slab", + "tracing", +] + +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "futures-util", + "hashbrown 0.14.5", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.14", +] + +[[package]] +name = "toml_datetime" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5376256e44f2443f8896ac012507c19a012df0fe8758b55246ae51a2279db51f" +dependencies = [ + "combine", + "indexmap 1.9.3", + "itertools 0.10.5", + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.13", +] + +[[package]] +name = "tonic" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" +dependencies = [ + "async-trait", + "axum", + "base64 0.21.7", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost 0.11.9", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.21.7", + "bytes", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost 0.12.6", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-build" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2" +dependencies = [ + "prettyplease 0.2.20", + "proc-macro2 1.0.85", + "prost-build", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tonic-health" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cef6e24bc96871001a7e48e820ab240b3de2201e59b517cf52835df2f1d2350" +dependencies = [ + "async-stream", + "prost 0.12.6", + "tokio", + "tokio-stream", + "tonic 0.11.0", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "hdrhistogram", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util 0.7.11", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" +dependencies = [ + "async-compression", + "base64 0.13.1", + "bitflags 1.3.2", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "httpdate", + "iri-string", + "mime", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "tokio", + "tokio-util 0.7.11", + "tower", + "tower-layer", + "tower-service", + "tracing", + "uuid 1.8.0", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-appender" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +dependencies = [ + "crossbeam-channel", + "thiserror", + "time", + "tracing-subscriber", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "futures", + "futures-task", + "pin-project", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-opentelemetry" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75327c6b667828ddc28f5e3f169036cb793c3f588d83bf0f262a7f062ffed3c8" +dependencies = [ + "once_cell", + "opentelemetry 0.20.0", + "opentelemetry_sdk", + "smallvec", + "tracing", + "tracing-core", + "tracing-log 0.1.4", + "tracing-subscriber", +] + +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "serde", + "serde_json", + "sharded-slab", + "smallvec", + "thread_local", + "time", + "tracing", + "tracing-core", + "tracing-log 0.2.0", + "tracing-serde", +] + +[[package]] +name = "trait-set" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b79e2e9c9ab44c6d7c20d5976961b47e8f49ac199154daa514b77cd1ab536625" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "treeline" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" + +[[package]] +name = "triomphe" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b2cb4fbb9995eeb36ac86fadf24031ccd58f99d6b4b2d7b911db70bddb80d90" + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tui" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccdd26cbd674007e649a272da4475fb666d3aa0ad0531da7136db6fab0e5bad1" +dependencies = [ + "bitflags 1.3.2", + "cassowary", + "crossterm", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.8.5", + "rustls 0.21.12", + "sha1", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "rand 0.8.5", + "static_assertions", +] + +[[package]] +name = "typed-store" +version = "0.4.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "async-trait", + "bcs", + "bincode", + "collectable", + "eyre", + "fdlimit", + "hdrhistogram", + "itertools 0.10.5", + "msim", + "once_cell", + "ouroboros", + "prometheus", + "rand 0.8.5", + "rocksdb", + "serde", + "sui-macros", + "tap", + "thiserror", + "tokio", + "tracing", + "typed-store-error", +] + +[[package]] +name = "typed-store-derive" +version = "0.3.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "itertools 0.10.5", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "typed-store-error" +version = "0.4.0" +source = "git+https://github.com/MystenLabs/sui?tag=devnet-v1.27.0#19df63a5441dabadc57aae958d1d4584d1df12fa" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unescape" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e" + +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-properties" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291" + +[[package]] +name = "unicode-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + +[[package]] +name = "unicode-width" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" + +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "unsigned-varint" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom 0.2.15", + "serde", +] + +[[package]] +name = "uuid" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" +dependencies = [ + "getrandom 0.2.15", + "rand 0.8.5", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "variant_count" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae2faf80ac463422992abf4de234731279c058aaf33171ca70277c98406b124" +dependencies = [ + "quote 1.0.36", + "syn 1.0.109", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "versions" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee97e1d97bd593fb513912a07691b742361b3dd64ad56f2c694ea2dbfe0665d3" +dependencies = [ + "itertools 0.10.5", + "nom", +] + +[[package]] +name = "vfs" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e4fe92cfc1bad19c19925d5eee4b30584dbbdee4ff10183b261acccbef74e2d" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote 1.0.36", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "wasm-streams" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "webpki-roots" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +dependencies = [ + "webpki", +] + +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + +[[package]] +name = "whoami" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9" +dependencies = [ + "redox_syscall 0.4.1", + "wasite", + "web-sys", +] + +[[package]] +name = "widestring" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "x509-parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +dependencies = [ + "asn1-rs", + "base64 0.13.1", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time", +] + +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "synstructure 0.13.1", +] + +[[package]] +name = "zerocopy" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", + "synstructure 0.13.1", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "zerovec" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7" +dependencies = [ + "proc-macro2 1.0.85", + "quote 1.0.36", + "syn 2.0.66", +] + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "aes", + "byteorder", + "bzip2", + "constant_time_eq 0.1.5", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac", + "pbkdf2 0.11.0", + "sha1", + "time", + "zstd 0.11.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe 5.0.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +dependencies = [ + "zstd-safe 6.0.6", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-safe" +version = "6.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.10+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/Cargo.toml b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/Cargo.toml new file mode 100644 index 000000000..7812092d6 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "framework" +version = "0.1.0" +edition = "2021" +exclude = ["chall/"] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +quote = "1.0.26" +threadpool = "1.8.1" +proc-macro2 = "1.0.66" + +tokio = { version = "1", features = ["full"] } + +move-core-types = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-core-types" } +move-bytecode-source-map = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-bytecode-source-map" } +move-binary-format = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-binary-format" } +move-symbol-pool = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-symbol-pool" } +move-transactional-test-runner = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "move-transactional-test-runner" } + +sui-types = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "sui-types"} +sui-transactional-test-runner = { git = "https://github.com/MystenLabs/sui", tag = "devnet-v1.27.0", package = "sui-transactional-test-runner"} + +sui-ctf-framework = { git = "https://github.com/otter-sec/sui-ctf-framework", branch = "justctf2024" } diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/chall/Move.lock b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/chall/Move.lock new file mode 100644 index 000000000..6d83d4dca --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/chall/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C1FECA3B112600A783F9F421CC2BF9CE00CE66320440DD4E76D8CD5B87B3AD2C" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet-v1.27.0", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet-v1.27.0", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/chall/Move.toml b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/chall/Move.toml new file mode 100644 index 000000000..919e3960d --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/chall/Move.toml @@ -0,0 +1,11 @@ +[package] +name = "challenge" +version = "0.0.1" +edition = "2024.beta" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet-v1.27.0" } + +[addresses] +challenge = "0x0" +admin = "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/chall/sources/quest.move b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/chall/sources/quest.move new file mode 100644 index 000000000..2fe6fece7 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/chall/sources/quest.move @@ -0,0 +1,284 @@ +module challenge::Otter { + + // --------------------------------------------------- + // DEPENDENCIES + // --------------------------------------------------- + + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Balance, Supply}; + use sui::table::{Self, Table}; + use sui::url; + + // --------------------------------------------------- + // CONST + // --------------------------------------------------- + + // STATUSES + const PREPARE_FOR_TROUBLE: u64 = 1; + const ON_ADVENTURE: u64 = 2; + const RESTING: u64 = 3; + const SHOPPING: u64 = 4; + const FINISHED: u64 = 5; + + // ERROR CODES + const WRONG_AMOUNT: u64 = 1337; + const BETTER_GET_EQUIPPED: u64 = 1338; + const WRONG_PLAYER_STATE: u64 = 1339; + const ALREADY_REGISTERED: u64 = 1340; + const TOO_MANY_MONSTERS: u64 = 1341; + const BUY_SOMETHING: u64 = 1342; + const NO_SUCH_PLAYER: u64 = 1343; + const NOT_SOLVED: u64 = 1344; + + // LIMITS + const QUEST_LIMIT: u64 = 25; + + // --------------------------------------------------- + // STRUCTS + // --------------------------------------------------- + + public struct OTTER has drop {} + + public struct OsecSuply has key { + id: UID, + supply: Supply + } + + public struct Vault has key { + id: UID, + cash: Coin + } + + public struct Monster has store { + reward: u64, + power: u64 + } + + public struct QuestBoard has key, store { + id: UID, + quests: vector, + players: Table // + } + + public struct Player has key, store { + id: UID, + user: address, + power: u64, + status: u64, + quest_index: u64, + wallet: Balance + } + + public struct TawernTicket { + total: u64, + flag_bought: bool + } + + // --------------------------------------------------- + // MINT CASH + // --------------------------------------------------- + + fun init(witness: OTTER, ctx: &mut TxContext) { + let (mut treasury, metadata) = coin::create_currency(witness, 9, b"OSEC", b"Osec", b"Otter ca$h", option::some(url::new_unsafe_from_bytes(b"https://osec.io/")), ctx); + transfer::public_freeze_object(metadata); + + let pool_liquidity = coin::mint(&mut treasury, 50000, ctx); + + let vault = Vault { + id: object::new(ctx), + cash: pool_liquidity + }; + + let supply = coin::treasury_into_supply(treasury); + + let osec_supply = OsecSuply { + id: object::new(ctx), + supply + }; + + transfer::transfer(osec_supply, tx_context::sender(ctx)); + + transfer::share_object(QuestBoard { + id: object::new(ctx), + quests: vector::empty(), + players: table::new(ctx) + }); + + transfer::share_object(vault); + } + + public fun mint(sup: &mut OsecSuply, amount: u64, ctx: &mut TxContext): Coin { + let osecBalance = balance::increase_supply(&mut sup.supply, amount); + coin::from_balance(osecBalance, ctx) + } + + public entry fun mint_to(sup: &mut OsecSuply, amount: u64, to: address, ctx: &mut TxContext) { + let osec = mint(sup, amount, ctx); + transfer::public_transfer(osec, to); + } + + public fun burn(sup: &mut OsecSuply, c: Coin): u64 { + balance::decrease_supply(&mut sup.supply, coin::into_balance(c)) + } + + // --------------------------------------------------- + // REGISTER - ADMIN FUNCTION + // --------------------------------------------------- + + public fun register(_: &mut OsecSuply, board: &mut QuestBoard, vault: &mut Vault, player: address, ctx: &mut TxContext) { + assert!(!table::contains(&board.players, player), ALREADY_REGISTERED); + + let new_cash = coin::into_balance(coin::split(&mut vault.cash, 250, ctx)); + + let new_player_obj = Player { + id: object::new(ctx), + user: player, + power: 10, + status: RESTING, + quest_index: 0, + wallet: new_cash + }; + + table::add(&mut board.players, player, false); + + transfer::transfer(new_player_obj, player); + } + + public fun check_winner(board: &QuestBoard, player: address) { + assert!(table::contains(&board.players, player), NO_SUCH_PLAYER); + assert!(table::borrow(&board.players, player) == true, NOT_SOLVED); + } + + // --------------------------------------------------- + // TAVERN + // --------------------------------------------------- + + public fun enter_tavern(player: &mut Player): TawernTicket { + assert!(player.status == RESTING, WRONG_PLAYER_STATE); + + player.status = SHOPPING; + + TawernTicket{ total: 0, flag_bought: false } + } + + public fun buy_flag(ticket: &mut TawernTicket, player: &mut Player) { + assert!(player.status == SHOPPING, WRONG_PLAYER_STATE); + + ticket.total = ticket.total + 537; + ticket.flag_bought = true; + } + + public fun buy_sword(player: &mut Player, ticket: &mut TawernTicket) { + assert!(player.status == SHOPPING, WRONG_PLAYER_STATE); + + player.power = player.power + 213; + ticket.total = ticket.total + 140; + } + + public fun buy_shield(player: &mut Player, ticket: &mut TawernTicket) { + assert!(player.status == SHOPPING, WRONG_PLAYER_STATE); + + player.power = player.power + 7; + ticket.total = ticket.total + 20; + } + + public fun buy_power_of_friendship(player: &mut Player, ticket: &mut TawernTicket) { + assert!(player.status == SHOPPING, WRONG_PLAYER_STATE); + + player.power = player.power + 9000; //it's over 9000! + ticket.total = ticket.total + 190; + } + + public fun checkout(ticket: TawernTicket, player: &mut Player, ctx: &mut TxContext, vault: &mut Vault, board: &mut QuestBoard) { + let TawernTicket{ total, flag_bought } = ticket; + + assert!(total > 0, BUY_SOMETHING); + assert!(balance::value(&player.wallet) >= total, WRONG_AMOUNT); + + let balance = balance::split(&mut player.wallet, total); + let coins = coin::from_balance(balance, ctx); + + coin::join(&mut vault.cash, coins); + + if (flag_bought == true) { + + let flag = table::borrow_mut(&mut board.players, tx_context::sender(ctx)); + *flag = true; + + std::debug::print(&std::string::utf8(b"$$$$$$$$$$$$$$$$$$$$$$$$$ FLAG BOUGHT $$$$$$$$$$$$$$$$$$$$$$$$$")); //debug + }; + + player.status = RESTING; + } + + // --------------------------------------------------- + // ADVENTURE TIME + // --------------------------------------------------- + + public fun find_a_monster(board: &mut QuestBoard, player: &mut Player) { + assert!(player.status != SHOPPING && player.status != FINISHED && player.status != ON_ADVENTURE, WRONG_PLAYER_STATE); + assert!(vector::length(&board.quests) <= QUEST_LIMIT, TOO_MANY_MONSTERS); + + let quest = if (vector::length(&board.quests) % 3 == 0) { + Monster { + reward: 100, + power: 73 + } + } else if (vector::length(&board.quests) % 3 == 1) { + Monster { + reward: 62, + power: 81 + } + } else { + Monster { + reward: 79, + power: 94 + } + }; + + vector::push_back(&mut board.quests, quest); + player.status = PREPARE_FOR_TROUBLE; + } + + public fun bring_it_on(board: &mut QuestBoard, player: &mut Player, quest_id: u64) { + assert!(player.status != SHOPPING && player.status != FINISHED && player.status != RESTING && player.status != ON_ADVENTURE, WRONG_PLAYER_STATE); + + let monster = vector::borrow_mut(&mut board.quests, quest_id); + assert!(player.power > monster.power, BETTER_GET_EQUIPPED); + + player.status = ON_ADVENTURE; + + player.power = 10; //equipment breaks after fighting the monster, and friends go to party :c + monster.power = 0; //you win! wow! + player.quest_index = quest_id; + } + + public fun return_home(board: &mut QuestBoard, player: &mut Player) { + assert!(player.status != SHOPPING && player.status != FINISHED && player.status != RESTING && player.status != PREPARE_FOR_TROUBLE, WRONG_PLAYER_STATE); + + let quest_to_finish = vector::borrow(&board.quests, player.quest_index); + assert!(quest_to_finish.power == 0, WRONG_AMOUNT); + + player.status = FINISHED; + } + + public fun get_the_reward(vault: &mut Vault, board: &mut QuestBoard, player: &mut Player, ctx: &mut TxContext) { + assert!(player.status != RESTING && player.status != PREPARE_FOR_TROUBLE && player.status != ON_ADVENTURE, WRONG_PLAYER_STATE); + + let monster = vector::remove(&mut board.quests, player.quest_index); + + let Monster { + reward: reward, + power: _ + } = monster; + + let coins = coin::split(&mut vault.cash, reward, ctx); + let balance = coin::into_balance(coins); + + balance::join(&mut player.wallet, balance); + + player.status = RESTING; + } + +} + diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/run.sh b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/run.sh new file mode 100755 index 000000000..a62fa9ce3 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/run.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +sed -i \ + -E 's/(host[[:space:]]+all[[:space:]]+all[[:space:]]+127.0.0.1\/32[[:space:]]+)scram-sha-256/\1trust/' \ + /etc/postgresql/16/main/pg_hba.conf + +sed -i \ + -E 's/(host[[:space:]]+all[[:space:]]+all[[:space:]]+::1\/128[[:space:]]+)scram-sha-256/\1trust/' \ + /etc/postgresql/16/main/pg_hba.conf + +/etc/init.d/postgresql restart + +sudo -u postgres psql postgres -c "ALTER ROLE postgres WITH SUPERUSER LOGIN PASSWORD 'postgrespw';" +sudo -u postgres psql postgres -c "CREATE DATABASE sui_indexer_v2;" -c "ALTER SYSTEM SET max_connections = 500;" + +cargo r --release diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/rust-toolchain.toml b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/rust-toolchain.toml new file mode 100644 index 000000000..83a52c383 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.76" diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/src/main.rs b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/src/main.rs new file mode 100644 index 000000000..c34932c47 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/framework/src/main.rs @@ -0,0 +1,296 @@ +use std::env; +use std::error::Error; +use std::fmt; +use std::io::{Read, Write}; +use std::mem::drop; +use std::net::{TcpListener, TcpStream}; +use std::path::Path; + +use tokio; + +use move_transactional_test_runner::framework::{MaybeNamedCompiledModule, MoveTestAdapter}; +use move_bytecode_source_map::{source_map::SourceMap, utils::source_map_from_file}; +use move_binary_format::file_format::CompiledModule; +use move_symbol_pool::Symbol; +use move_core_types::{ + account_address::AccountAddress, + language_storage::TypeTag, + runtime_value::MoveValue +}; + +use sui_ctf_framework::NumericalAddress; +use sui_transactional_test_runner::{args::SuiValue, test_adapter::FakeID}; + +async fn handle_client(mut stream: TcpStream) -> Result<(), Box> { + + // Initialize SuiTestAdapter + let modules = vec!["Otter"]; + let mut deployed_modules: Vec = Vec::new(); + + let named_addresses = vec![ + ( + "challenge".to_string(), + NumericalAddress::parse_str( + "0x0", + )?, + ), + ( + "solve".to_string(), + NumericalAddress::parse_str( + "0x0", + )?, + ), + ( + "admin".to_string(), + NumericalAddress::parse_str( + "0xfccc9a421bbb13c1a66a1aa98f0ad75029ede94857779c6915b44f94068b921e", + )?, + ), + ]; + + let mut adapter = sui_ctf_framework::initialize( + named_addresses, + Some(vec!["challenger".to_string(), "solver".to_string()]), + ).await; + + // Check Admin Account + let object_output1 = sui_ctf_framework::view_object(&mut adapter, FakeID::Enumerated(0, 0)).await; + println!("Object Output: {:#?}", object_output1); + + let mut mncp_modules : Vec = Vec::new(); + + for i in 0..modules.len() { + + let module = &modules[i]; + + let mod_path = format!("./chall/build/challenge/bytecode_modules/{}.mv", module); + let src_path = format!("./chall/build/challenge/source_maps/{}.mvsm", module); + let mod_bytes: Vec = std::fs::read(mod_path)?; + + let module: CompiledModule = match CompiledModule::deserialize_with_defaults(&mod_bytes) { + Ok(data) => data, + Err(e) => { + return Err(Box::new(e)) + } + }; + let named_addr_opt: Option = Some(Symbol::from("challenge")); + let source_map: Option = match source_map_from_file(Path::new(&src_path)) { + Ok(data) => Some(data), + Err(e) => { + let _ = adapter.cleanup_resources().await; + println!("error: {:?}, src_path: {}", e, src_path); + return Err("error when generating source map".into()) + } + }; + + let maybe_ncm = MaybeNamedCompiledModule { + named_address: named_addr_opt, + module, + source_map, + }; + + mncp_modules.push( maybe_ncm ); + } + + // Publish Challenge Module + let chall_dependencies: Vec = Vec::new(); + let chall_addr = sui_ctf_framework::publish_compiled_module( + &mut adapter, + mncp_modules, + chall_dependencies, + Some(String::from("challenger")), + ).await; + deployed_modules.push(chall_addr); + println!("[SERVER] Module published at: {:?}", chall_addr); + + let mut solution_data = [0 as u8; 2000]; + let _solution_size = stream.read(&mut solution_data)?; + + // Send Challenge Address + let mut output = String::new(); + fmt::write( + &mut output, + format_args!( + "[SERVER] Challenge modules published at: {}", + chall_addr.to_string().as_str(), + ), + ) + .unwrap(); + stream.write(output.as_bytes()).unwrap(); + + // Publish Solution Module + let mut sol_dependencies: Vec = Vec::new(); + sol_dependencies.push(String::from("challenge")); + + let mut mncp_solution : Vec = Vec::new(); + let module: CompiledModule = match CompiledModule::deserialize_with_defaults(&solution_data.to_vec()) { + Ok(data) => data, + Err(e) => { + let _ = adapter.cleanup_resources().await; + return Err(Box::new(e)) + } + }; + let named_addr_opt: Option = Some(Symbol::from("solve")); + let source_map : Option = None; + + let maybe_ncm = MaybeNamedCompiledModule { + named_address: named_addr_opt, + module, + source_map, + }; + mncp_solution.push( maybe_ncm ); + + let sol_addr = sui_ctf_framework::publish_compiled_module( + &mut adapter, + mncp_solution, + sol_dependencies, + Some(String::from("solver")), + ).await; + println!("[SERVER] Solution published at: {:?}", sol_addr); + + // Send Solution Address + output = String::new(); + fmt::write( + &mut output, + format_args!( + "[SERVER] Solution published at {}", + sol_addr.to_string().as_str() + ), + ) + .unwrap(); + stream.write(output.as_bytes()).unwrap(); + + // Prepare Function Call Arguments + let mut args_reg: Vec = Vec::new(); + let supply = SuiValue::Object(FakeID::Enumerated(2, 1), None); + let questboard = SuiValue::Object(FakeID::Enumerated(2, 2), None); + let vault = SuiValue::Object(FakeID::Enumerated(2, 3), None); + let player_addr = SuiValue::MoveValue(MoveValue::Address(adapter.compiled_state().resolve_named_address("solver"))); + args_reg.push(supply.clone()); + args_reg.push(questboard.clone()); + args_reg.push(vault.clone()); + args_reg.push(player_addr.clone()); + + let type_args: Vec = Vec::new(); + + // Call Add Liquidity Function + let ret_val = match sui_ctf_framework::call_function( + &mut adapter, + chall_addr, + "Otter", + "register", + args_reg, + type_args, + Some("challenger".to_string()), + ).await { + Ok(output) => output, + Err(e) => { + let _ = adapter.cleanup_resources().await; + println!("[SERVER] error: {e}"); + return Err("error during call to Otter::register".into()) + } + }; + println!("[SERVER] Return value {:#?}", ret_val); + println!(""); + + // Prepare Function Call Arguments + let mut args_solve: Vec = Vec::new(); + let player = SuiValue::Object(FakeID::Enumerated(4, 0), None); + args_solve.push(questboard.clone()); + args_solve.push(vault.clone()); + args_solve.push(player.clone()); + + let type_args_solve: Vec = Vec::new(); + + // Call solve Function + let ret_val = match sui_ctf_framework::call_function( + &mut adapter, + sol_addr, + "solve", + "solve", + args_solve, + type_args_solve, + Some("solver".to_string()), + ).await { + Ok(output) => output, + Err(e) => { + let _ = adapter.cleanup_resources().await; + println!("[SERVER] error: {e}"); + return Err("error during call to solve::solve".into()) + } + }; + println!("[SERVER] Return value {:#?}", ret_val); + println!(""); + + // Check Solution + let mut args_check: Vec = Vec::new(); + args_check.push(questboard.clone()); + args_check.push(player_addr.clone()); + + let type_args_check: Vec = Vec::new(); + + let sol_ret = sui_ctf_framework::call_function( + &mut adapter, + chall_addr, + "Otter", + "check_winner", + args_check, + type_args_check, + Some("solver".to_string()), + ).await; + println!("[SERVER] Return value {:#?}", sol_ret); + println!(""); + + // Validate Solution + match sol_ret { + Ok(_) => { + println!("[SERVER] Correct Solution!"); + println!(""); + if let Ok(flag) = env::var("FLAG") { + let message = format!("[SERVER] Congrats, flag: {}", flag); + stream.write(message.as_bytes()).unwrap(); + } else { + stream.write("[SERVER] Flag not found, please contact admin".as_bytes()).unwrap(); + } + } + Err(_) => { + println!("[SERVER] Invalid Solution!"); + println!(""); + stream.write("[SERVER] Invalid Solution!".as_bytes()).unwrap(); + } + }; + + let _ = adapter.cleanup_resources().await; + Ok(()) +} + +#[tokio::main] +async fn main() -> Result<(), Box> { + // Create Socket - Port 31337 + let listener = TcpListener::bind("0.0.0.0:31337")?; + println!("[SERVER] Starting server at port 31337!"); + + let local = tokio::task::LocalSet::new(); + + // Wait For Incoming Solution + for stream in listener.incoming() { + match stream { + Ok(stream) => { + println!("[SERVER] New connection: {}", stream.peer_addr()?); + let result = local.run_until( async move { + tokio::task::spawn_local( async { + handle_client(stream).await + }).await + }).await; + println!("[SERVER] Result: {:?}", result); + } + Err(e) => { + println!("[SERVER] Error: {}", e); + } + } + } + + // Close Socket Server + drop(listener); + Ok(()) +} diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/run_client.sh b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/run_client.sh new file mode 100755 index 000000000..1f78679ba --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/run_client.sh @@ -0,0 +1,5 @@ +set -eux + +cd framework-solve/solve && sui move build +cd .. +cargo r --release diff --git a/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/run_server.sh b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/run_server.sh new file mode 100755 index 000000000..d0f9be966 --- /dev/null +++ b/mover/Zeroc0077/justctf2024/justctf2024-woo/sources/run_server.sh @@ -0,0 +1,5 @@ +set -eux + +cd framework/chall && sui move build +cd .. +cargo r --release diff --git a/mover/Zeroc0077/notes/task1.md b/mover/Zeroc0077/notes/task1.md index 33d569f1c..df51b6b3a 100644 --- a/mover/Zeroc0077/notes/task1.md +++ b/mover/Zeroc0077/notes/task1.md @@ -172,7 +172,7 @@ Transaction Digest: B3fgcACvZfKrXgi7HRL67PE91JZofRkCxbdwUiApkBdV 调用合约函数: ```bash -❯ sui client call --package 0x672625114d409ac01273c1aff18d23c6f62a712df6a30dc01425b37cdb0aec5a --module HelloWorld --function mint --args "zeroc" --gas-budget 100000000 +❯ sui client call --package 0x672625114d409ac01273c1aff18d23c6f62a712df6a30dc01425b37cdb0aec5a --module HelloWorld --function mint --args "zeroc" Transaction Digest: J4FooyR7bD2diM6AEfg7DkiVWX2ZpvnyuSBCWGruKdLx ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ Transaction Data │ diff --git a/mover/Zeroc0077/readme.md b/mover/Zeroc0077/readme.md index 01e7147da..1a8524f89 100644 --- a/mover/Zeroc0077/readme.md +++ b/mover/Zeroc0077/readme.md @@ -32,3 +32,11 @@ ## 06 SDK PTB - [x] save hash : [B7jQFSYnRkKoEWPTNDfupjiFVJPzfqC5W33Y6BqFTtqi](https://suivision.xyz/txblock/B7jQFSYnRkKoEWPTNDfupjiFVJPzfqC5W33Y6BqFTtqi) + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/1.png) +- [x] flag hash : [Bhgw8jrzYcdogSBXJcGWpN5enn6K4emky9x1eW7wvL6i](https://testnet.suivision.xyz/txblock/Bhgw8jrzYcdogSBXJcGWpN5enn6K4emky9x1eW7wvL6i) + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : \ No newline at end of file diff --git a/mover/Zimknn/code/task1/Move.lock b/mover/Zimknn/code/task1/Move.lock new file mode 100644 index 000000000..ca2b880d7 --- /dev/null +++ b/mover/Zimknn/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2E267C18D553336099CDD31F7063857679825E46CD06EC67CC7F7FB0C20317C1" +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.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xb5af92c2683e7e575ad5bc85f92648cb5bd38b543c112e2ee991f96f97b0155a" +latest-published-id = "0xb5af92c2683e7e575ad5bc85f92648cb5bd38b543c112e2ee991f96f97b0155a" +published-version = "1" diff --git a/mover/Zimknn/code/task1/Move.toml b/mover/Zimknn/code/task1/Move.toml new file mode 100644 index 000000000..e75e497eb --- /dev/null +++ b/mover/Zimknn/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1" +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] +task1 = "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/Zimknn/code/task1/sources/task1.move b/mover/Zimknn/code/task1/sources/task1.move new file mode 100644 index 000000000..2bd1ced8a --- /dev/null +++ b/mover/Zimknn/code/task1/sources/task1.move @@ -0,0 +1,21 @@ +module task1::hello_move { + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct HelloObj has key, store { + id: UID, + say: string::String + } + + public fun mint(ctx: &mut TxContext) { + let object = HelloObj { + id: object::new(ctx), + say: string::utf8(b"Hello Zimknn!") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } +} + + diff --git a/mover/Zimknn/code/task2/Move.lock b/mover/Zimknn/code/task2/Move.lock new file mode 100644 index 000000000..507bc6776 --- /dev/null +++ b/mover/Zimknn/code/task2/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E7A65BF39B740E195045E87B46B06936199C063AFE29D8948B9C6B9B853033A8" +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.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xba5d4f63fb896cb96668ba14849f1ee4a02c9e5666128cccef254a4a40827ada" +latest-published-id = "0xba5d4f63fb896cb96668ba14849f1ee4a02c9e5666128cccef254a4a40827ada" +published-version = "1" diff --git a/mover/Zimknn/code/task2/Move.toml b/mover/Zimknn/code/task2/Move.toml new file mode 100644 index 000000000..6a6098d99 --- /dev/null +++ b/mover/Zimknn/code/task2/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task2" +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] +task2 = "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/Zimknn/code/task2/sources/coin.move b/mover/Zimknn/code/task2/sources/coin.move new file mode 100644 index 000000000..822ed8e67 --- /dev/null +++ b/mover/Zimknn/code/task2/sources/coin.move @@ -0,0 +1,26 @@ +module task2::zimknn_coin { + use sui::coin; + use sui::coin::{TreasuryCap}; + use sui::transfer::{public_transfer, public_freeze_object}; + + public struct ZIMKNN_COIN has drop{} + fun init(witness: ZIMKNN_COIN, ctx: &mut TxContext){ + let (treasuryCap, denyCap ,metadata) = coin::create_regulated_currency( + witness, + 8, + b"ZIMKNN", + b"ZIMKNN Coin", + b"move coin", + option::none(), + ctx + ); + public_transfer(treasuryCap, tx_context::sender(ctx)); + public_transfer(denyCap, tx_context::sender(ctx)); + public_freeze_object(metadata); + } + + public entry fun mint(cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext){ + let coin = coin::mint(cap, amount, ctx); + public_transfer(coin, recipient); + } +} \ No newline at end of file diff --git a/mover/Zimknn/code/task2/sources/faucet.move b/mover/Zimknn/code/task2/sources/faucet.move new file mode 100644 index 000000000..0402ac2a9 --- /dev/null +++ b/mover/Zimknn/code/task2/sources/faucet.move @@ -0,0 +1,24 @@ +module task2::zimknn_faucet_coin { + use sui::coin; + use sui::coin::TreasuryCap; + use sui::transfer::{ public_share_object, public_freeze_object}; + + public struct ZIMKNN_FAUCET_COIN has drop{} + fun init(witness: ZIMKNN_FAUCET_COIN, ctx: &mut TxContext){ + let (treasury, metadata) = coin::create_currency( + witness, + 8, + b"ZIMKNN_PUBLIC", + b"zimknn Faucet coin", + b"test faucet coin", + option::none(), + ctx + ); + public_share_object(treasury); + public_freeze_object(metadata); + } + + public entry fun mint(cap: &mut TreasuryCap, value: u64, recipient: address, ctx: &mut TxContext){ + coin::mint_and_transfer(cap, value, recipient, ctx); + } +} \ No newline at end of file diff --git a/mover/Zimknn/code/task3/Move.lock b/mover/Zimknn/code/task3/Move.lock new file mode 100644 index 000000000..c79469451 --- /dev/null +++ b/mover/Zimknn/code/task3/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "DEDE53BD567ECEDC2009BE853A86F47F6BDC3F1F03A6B00FAED274F07E74A18B" +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.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x51bec691c37be7828398c972f6b630a6e250a7f21ff5295099d322cd56198c41" +latest-published-id = "0x51bec691c37be7828398c972f6b630a6e250a7f21ff5295099d322cd56198c41" +published-version = "1" diff --git a/mover/Zimknn/code/task3/Move.toml b/mover/Zimknn/code/task3/Move.toml new file mode 100644 index 000000000..480be1592 --- /dev/null +++ b/mover/Zimknn/code/task3/Move.toml @@ -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" + diff --git a/mover/Zimknn/code/task3/sources/task3.move b/mover/Zimknn/code/task3/sources/task3.move new file mode 100644 index 000000000..1b70d5bca --- /dev/null +++ b/mover/Zimknn/code/task3/sources/task3.move @@ -0,0 +1,47 @@ +module task3::zimknn_nft { + use std::ascii::String; + use std::string::utf8; + use sui::display; + use sui::object; + use sui::object::{UID}; + use sui::package; + use sui::transfer; + use sui::transfer::public_transfer; + use sui::tx_context; + use sui::tx_context::{TxContext}; + + public struct ZIMKNN_NFT has drop {} + + public struct NFT has key,store { + id: UID, + name: String, + } + + fun init(otw: ZIMKNN_NFT, ctx: &mut sui::tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://avatars.githubusercontent.com/u/169317792"), + ]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values,ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + public entry fun mint_to(name: String, recipient: address,ctx: &mut TxContext) { + let nft = NFT{ + id: object::new(ctx), + name, + }; + public_transfer(nft, recipient) + } +} \ No newline at end of file diff --git a/mover/Zimknn/code/task4/Move.lock b/mover/Zimknn/code/task4/Move.lock new file mode 100644 index 000000000..a69b774d1 --- /dev/null +++ b/mover/Zimknn/code/task4/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "3ABF32818B72E6D04438DED6A1EE7108F878BD790FA71CF7256257AEA16B0E43" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "task2" }, +] + +[[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.package]] +name = "task2" +source = { local = "../task2" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.29.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x3f1f464e51c7f96bc4f707d74d0ec132dbf4a2bc097828001724e4c4a0151baf" +latest-published-id = "0x3f1f464e51c7f96bc4f707d74d0ec132dbf4a2bc097828001724e4c4a0151baf" +published-version = "1" diff --git a/mover/Zimknn/code/task4/Move.toml b/mover/Zimknn/code/task4/Move.toml new file mode 100644 index 000000000..b83b8eef9 --- /dev/null +++ b/mover/Zimknn/code/task4/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "task4" +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" } +task2 = { local = "../task2" } + +# 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] +task4 = "0x0" +task2 = "0x2f980ae2b2a73f93cf6b8a0d8744627dab914b5270c3dfbd4ca63758ac2d21fe" + +# 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/Zimknn/code/task4/sources/task4.move b/mover/Zimknn/code/task4/sources/task4.move new file mode 100644 index 000000000..38da28b05 --- /dev/null +++ b/mover/Zimknn/code/task4/sources/task4.move @@ -0,0 +1,92 @@ +module task4::flip_coin { + + use sui::balance; + use sui::balance::{Balance, zero}; + use sui::coin; + use sui::coin::{from_balance, into_balance}; + use sui::random; + use sui::random::Random; + use sui::transfer::{share_object, transfer, public_transfer}; + use sui::tx_context::sender; + use task2::zimknn_faucet_coin::{ZIMKNN_FAUCET_COIN}; + + public struct Game has key { + id: UID, + val: Balance + } + + public struct AdaminCap has key { + id: UID + } + + + fun init(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + val: zero() + }; + + share_object(game); + + let admin = AdaminCap { + id: object::new(ctx) + }; + + transfer(admin, sender(ctx)); + } + #[allow(lint(public_random))] + public entry fun play( + game: &mut Game, + flip_value: bool, + in: coin::Coin, + rand: &Random, + ctx: &mut TxContext + ) { + let coin_value = coin::value(&in); + + let game_val = balance::value(&game.val); + + // 池子总量大于投注数量,防止给用户返还资金不够 + if (game_val < coin_value) { + abort 0 + }; + // 池子总量大于投注数量10倍,防止all in漏洞 + if (game_val < coin_value * 10) { + abort 1 + }; + + let mut gen = random::new_generator(rand, ctx); + let flag = random::generate_bool(&mut gen); + + let play_address = sender(ctx); + if (flip_value == flag) { + withdraw(game, coin_value, play_address, ctx); + public_transfer(in, play_address); + } else { + deposit(game, in, ctx); + } + } + + fun deposit(game: &mut Game, in: coin::Coin, _ctx: &mut TxContext) { + let in_balance = into_balance(in); + balance::join(&mut game.val, in_balance); + } + + public entry fun public_deposit( + game: &mut Game, + in: coin::Coin, + ctx: &mut TxContext + ) { + deposit(game, in, ctx); + } + + fun withdraw(game: &mut Game, amt: u64, to: address, ctx: &mut TxContext) { + let win_balance = balance::split(&mut game.val, amt); + let win_coin = from_balance(win_balance, ctx); + public_transfer(win_coin, to); + } + + public entry fun public_withdraw(_: &AdaminCap, game: &mut Game, amt: u64, ctx: &mut TxContext) { + withdraw(game, amt, sender(ctx), ctx); + } +} \ No newline at end of file diff --git a/mover/Zimknn/code/task5/Move.lock b/mover/Zimknn/code/task5/Move.lock new file mode 100644 index 000000000..c5a6bf5d9 --- /dev/null +++ b/mover/Zimknn/code/task5/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "39149E9191F5A7299278C257F4DBF8CA774C7A7EC549B5951C87448D6A311A49" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x60f45a1dcbb8fee154af0f8c0e0dc41a171f3050ead824aad23037b9c8448c07" +latest-published-id = "0x60f45a1dcbb8fee154af0f8c0e0dc41a171f3050ead824aad23037b9c8448c07" +published-version = "1" diff --git a/mover/Zimknn/code/task5/Move.toml b/mover/Zimknn/code/task5/Move.toml new file mode 100644 index 000000000..fef2bd16c --- /dev/null +++ b/mover/Zimknn/code/task5/Move.toml @@ -0,0 +1,37 @@ +[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 (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/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] +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" + diff --git a/mover/Zimknn/code/task5/sources/task5.move b/mover/Zimknn/code/task5/sources/task5.move new file mode 100644 index 000000000..343bf61a9 --- /dev/null +++ b/mover/Zimknn/code/task5/sources/task5.move @@ -0,0 +1,261 @@ +module task5::zimknn_swap { + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply, Balance}; + use sui::math; + + const EZeroAmount: u64 = 0; + + const EReservesEmpty: u64 = 2; + + const EPoolFull: u64 = 4; + + const FEE_SCALING: u128 = 10000; + + const FEE_PERCENT: u128 = 30; + + const MAX_POOL_VALUE: u64 = { + 18446744073709551615 / 10000 + }; + + public struct LSP has drop {} + + public struct Pool has key { + id: UID, + token_a: Balance, + token_b: Balance, + lsp_supply: Supply>, + /// Fee Percent is denominated in basis points. + fee_percent: u64 + } + + fun init(_: &mut TxContext) { + } + + entry fun create_pool ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + create_pool_inner(token_a, token_b, ctx), + tx_context::sender(ctx) + ); + } + + fun create_pool_inner ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + let fee_percent = (FEE_PERCENT as u64); + + let token_a_amt = coin::value(&token_a); + let token_b_amt = coin::value(&token_b); + + assert!(token_a_amt > 0 && token_b_amt > 0, EZeroAmount); + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let share = math::sqrt(token_a_amt) * math::sqrt(token_b_amt); + let mut lsp_supply = balance::create_supply(LSP {}); + let lsp = balance::increase_supply(&mut lsp_supply, share); + + transfer::share_object(Pool { + id: object::new(ctx), + token_a: coin::into_balance(token_a), + token_b: coin::into_balance(token_b), + lsp_supply, + fee_percent, + }); + + coin::from_balance(lsp, ctx) + } + + entry fun add_liquidity ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + add_liquidity_inner(pool, token_a, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun add_liquidity_inner ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + assert!(coin::value(&token_a) > 0 && coin::value(&token_b) > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, lsp_supply) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_balance = coin::into_balance(token_a); + let token_b_balance = coin::into_balance(token_b); + + let token_a_added = balance::value(&token_a_balance); + let token_b_added = balance::value(&token_b_balance); + + let share_minted = math::min( + (token_a_added * lsp_supply) / token_a_amt, + (token_b_added * lsp_supply) / token_b_amt + ); + + let token_a_amt = balance::join(&mut pool.token_a, token_a_balance); + let token_b_amt = balance::join(&mut pool.token_b, token_b_balance); + + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let balance = balance::increase_supply(&mut pool.lsp_supply, share_minted); + + coin::from_balance(balance, ctx) + } + + entry fun remove_liquidity ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ) { + let (token_a, token_b) = remove_liquidity_inner(pool, lsp, ctx); + let sender = tx_context::sender(ctx); + + transfer::public_transfer(token_a, sender); + transfer::public_transfer(token_b, sender); + } + + fun remove_liquidity_inner ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ): (Coin, Coin) { + let lsp_amount = coin::value(&lsp); + assert!(lsp_amount > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, total_supply) = get_amounts(pool); + + let token_a = (token_a_amt * lsp_amount) / total_supply; + let token_b = (token_b_amt * lsp_amount) / total_supply; + + balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); + + ( + coin::take(&mut pool.token_a, token_a, ctx), + coin::take(&mut pool.token_b, token_b, ctx), + ) + } + + entry fun swap_a_to_b ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_a_to_b_inner(pool, token_a, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_a_to_b_inner ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ): Coin { + let token_a_amt = coin::value(&token_a); + assert!(token_a_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_b_amt = sell_token_a(pool, token_a_amt); + + balance::join(&mut pool.token_a, coin::into_balance(token_a)); + + coin::take(&mut pool.token_b, token_b_amt, ctx) + } + + entry fun swap_b_to_a ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_b_to_a_inner(pool, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_b_to_a_inner ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ): Coin { + let token_b_amt = coin::value(&token_b); + assert!(token_b_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_amt = sell_token_b(pool, token_b_amt); + + balance::join(&mut pool.token_b, coin::into_balance(token_b)); + + coin::take(&mut pool.token_a, token_a_amt, ctx) + } + + public fun sell_token_a(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_a_amt, + token_b_amt, + pool.fee_percent + ) + } + + public fun sell_token_b(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_b_amt, + token_a_amt, + pool.fee_percent + ) + } + + public fun get_amounts(pool: &Pool): (u64, u64, u64) { + ( + balance::value(&pool.token_a), + balance::value(&pool.token_b), + balance::supply_value(&pool.lsp_supply), + ) + } + + public fun calc_output_amount( + input_amount: u64, + input_reserve: u64, + output_reserve: u64, + fee_percent: u64 + ): u64 { + let ( + input_amount, + input_reserve, + output_reserve, + fee_percent + ) = ( + (input_amount as u128), + (input_reserve as u128), + (output_reserve as u128), + (fee_percent as u128), + ); + + let input_with_fee = input_amount * FEE_SCALING / (FEE_SCALING - fee_percent); + + let total = input_reserve * output_reserve; + let output_amount = output_reserve - total / (input_reserve + input_with_fee); + + (output_amount as u64) + } +} diff --git a/mover/Zimknn/code/task6/index.html b/mover/Zimknn/code/task6/index.html new file mode 100644 index 000000000..bb7f75b16 --- /dev/null +++ b/mover/Zimknn/code/task6/index.html @@ -0,0 +1,59 @@ + + + + + + + Sui dApp Starter + + + + +
+ + + diff --git a/mover/Zimknn/code/task6/package.json b/mover/Zimknn/code/task6/package.json new file mode 100644 index 000000000..4d2443da7 --- /dev/null +++ b/mover/Zimknn/code/task6/package.json @@ -0,0 +1,36 @@ +{ + "name": "basic-dapp-ptb", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@mysten/dapp-kit": "0.14.11", + "@mysten/sui": "1.2.1", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@tanstack/react-query": "^5.0.0", + "navi-sdk": "^1.1.23", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } +} diff --git a/mover/Zimknn/code/task6/prettier.config.cjs b/mover/Zimknn/code/task6/prettier.config.cjs new file mode 100644 index 000000000..c07541106 --- /dev/null +++ b/mover/Zimknn/code/task6/prettier.config.cjs @@ -0,0 +1,4 @@ +// eslint-disable-next-line no-undef +module.exports = { + proseWrap: "always", +}; diff --git a/mover/Zimknn/code/task6/src/Execute.tsx b/mover/Zimknn/code/task6/src/Execute.tsx new file mode 100644 index 000000000..828522541 --- /dev/null +++ b/mover/Zimknn/code/task6/src/Execute.tsx @@ -0,0 +1,61 @@ +import {useCurrentAccount, useSignAndExecuteTransaction} from "@mysten/dapp-kit"; +import {Container, Flex, Heading, Text, Button} from "@radix-ui/themes"; +import {supply_borrow_supply} from "./transactions/navi.ts"; + +const formatDateNumber = (num: number) => { + return num < 10 ? `0${num}` : num; +} + +const Execute = () => { + const account = useCurrentAccount(); + const {mutate: signAndExecute} = useSignAndExecuteTransaction(); + + const date = new Date(); + const month = formatDateNumber(date.getMonth() + 1); + const day = formatDateNumber(date.getDate()); + const hour = formatDateNumber(date.getHours()); + const usdcAmt = Number(`0.${month}${day}${hour}`); + + return ( + + Wallet Status + + {account ? ( + + Wallet connected + Address: {account.address} + + ) : ( + Wallet not connected + )} + + {account ? ( + + 执行交易 + + 1. [存入Navi Protocol 1 SUI] + {`2.[借出当前日期的USDC ${usdcAmt} 的 USDC ]`} + 3.[然后在存入等额的USDC] + + + + ) : null} + + ); +} + +export default Execute; diff --git a/mover/Zimknn/code/task6/src/const.ts b/mover/Zimknn/code/task6/src/const.ts new file mode 100644 index 000000000..48f89f7f0 --- /dev/null +++ b/mover/Zimknn/code/task6/src/const.ts @@ -0,0 +1,2 @@ +export const SUI_COIN_TYPE = '0x2::coin::Coin<0x2::sui::SUI>'; +export const USDC_COIN_TYPE = '0x2::coin::Coin<0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN>'; diff --git a/mover/Zimknn/code/task6/src/main.tsx b/mover/Zimknn/code/task6/src/main.tsx new file mode 100644 index 000000000..21e0bec07 --- /dev/null +++ b/mover/Zimknn/code/task6/src/main.tsx @@ -0,0 +1,37 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "@mysten/dapp-kit/dist/index.css"; +import "@radix-ui/themes/styles.css"; + +import { getFullnodeUrl } from "@mysten/sui/client"; +import { + SuiClientProvider, + WalletProvider, + createNetworkConfig, +} from "@mysten/dapp-kit"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { Theme } from "@radix-ui/themes"; +import App from "./App.tsx"; + +const queryClient = new QueryClient(); + +const { networkConfig } = createNetworkConfig({ + localnet: { url: getFullnodeUrl("localnet") }, + devnet: { url: getFullnodeUrl("devnet") }, + testnet: { url: getFullnodeUrl("testnet") }, + mainnet: { url: getFullnodeUrl("mainnet") }, +}); + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + + + + + + + , +); diff --git a/mover/Zimknn/code/task6/src/transactions/navi.ts b/mover/Zimknn/code/task6/src/transactions/navi.ts new file mode 100644 index 000000000..103f12cc4 --- /dev/null +++ b/mover/Zimknn/code/task6/src/transactions/navi.ts @@ -0,0 +1,43 @@ +import { TransactionBlock } from '@mysten/sui.js/transactions'; +import { Transaction } from '@mysten/sui/transactions'; +import { depositCoin, borrowCoin, } from 'navi-sdk/dist/libs/PTB' +import { Sui, USDC } from "navi-sdk/dist/address"; +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from 'navi-sdk/dist/address' + + +export const supply_borrow_supply = async ({ signAndExecute, usdcAmt, onSuccess = () => { }, onError = () => { } }: { + signAndExecute: any; + usdcAmt: number; + onSuccess?: (result: any) => void; + onError?: (result: any) => void; +}) => { + let tx = new Transaction(); + + // 设置gas + tx.setGasBudget(1e9); + + // 分离出1sui + const [sui_1] = tx.splitCoins(tx.gas, [1e9]); + + // // 存入navi + const Sui_Pool: PoolConfig = pool[Sui.symbol as keyof Pool]; + await depositCoin(tx as any as TransactionBlock, Sui_Pool, sui_1, 1e9); + + // // 借出 usdc + const USDC_Pool: PoolConfig = pool[USDC.symbol as keyof Pool]; + const [usdc_coin] = await borrowCoin(tx as any as TransactionBlock, USDC_Pool, usdcAmt * 1e6); + + // // 存入 usdc + await depositCoin(tx as any as TransactionBlock, USDC_Pool, usdc_coin, usdcAmt * 1e6); + + // 签名执行交易 + await signAndExecute({ + transaction: tx, + }, { + onSuccess, + onError, + }); + +} + diff --git a/mover/Zimknn/code/task6/src/vite-env.d.ts b/mover/Zimknn/code/task6/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/mover/Zimknn/code/task6/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mover/Zimknn/code/task6/tsconfig.json b/mover/Zimknn/code/task6/tsconfig.json new file mode 100644 index 000000000..a7fc6fbf2 --- /dev/null +++ b/mover/Zimknn/code/task6/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/Zimknn/code/task6/tsconfig.node.json b/mover/Zimknn/code/task6/tsconfig.node.json new file mode 100644 index 000000000..42872c59f --- /dev/null +++ b/mover/Zimknn/code/task6/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/Zimknn/code/task6/vite.config.ts b/mover/Zimknn/code/task6/vite.config.ts new file mode 100644 index 000000000..d366e8c8d --- /dev/null +++ b/mover/Zimknn/code/task6/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); diff --git a/mover/Zimknn/images/1.png b/mover/Zimknn/images/1.png new file mode 100644 index 000000000..107b8f9c8 Binary files /dev/null and b/mover/Zimknn/images/1.png differ diff --git a/mover/Zimknn/images/2.png b/mover/Zimknn/images/2.png new file mode 100644 index 000000000..2cedc5338 Binary files /dev/null and b/mover/Zimknn/images/2.png differ diff --git a/mover/Zimknn/images/3.png b/mover/Zimknn/images/3.png new file mode 100644 index 000000000..84e53e3b6 Binary files /dev/null and b/mover/Zimknn/images/3.png differ diff --git a/mover/Zimknn/images/4.png b/mover/Zimknn/images/4.png new file mode 100644 index 000000000..908321c91 Binary files /dev/null and b/mover/Zimknn/images/4.png differ diff --git a/mover/Zimknn/notes/readme.md b/mover/Zimknn/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/Zimknn/readme.md b/mover/Zimknn/readme.md new file mode 100644 index 000000000..c501629c7 --- /dev/null +++ b/mover/Zimknn/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x8fc22efb62f5c78dc81137bd436ac7d9ed69332f5c1eba9c4de1f4e0a3497164` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `Zimknn` + +## 个人简介 +- 工作经验: 1年 +- 技术栈: `Python` +> 重要提示 请认真写自己的简介 +- 机器学习从业经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `zmk005` + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.28.3 +- [x] Sui钱包截图: ![Sui钱包截图](./images/1.png) +- [x] package id: [0xb5af92c2683e7e575ad5bc85f92648cb5bd38b543c112e2ee991f96f97b0155a](https://suiscan.xyz/testnet/object/0xb5af92c2683e7e575ad5bc85f92648cb5bd38b543c112e2ee991f96f97b0155a) +- [x] package id 在 scan上的查看截图:![Scan截图](./images/2.png) + +## 02 move coin +- [x] My Coin package id : 0xba5d4f63fb896cb96668ba14849f1ee4a02c9e5666128cccef254a4a40827ada +- [x] Faucet package id : 0xba5d4f63fb896cb96668ba14849f1ee4a02c9e5666128cccef254a4a40827ada +- [x] 转账 `My Coin` hash : AhPYTbVED6ESJmpHsPbLePtLbEosg1FwC2mw96fq45ew +- [x] `Faucet Coin` address1 mint hash : CcRQL3hnkPQSBLkjPJ6NGmG9LcVggHk96qjF7j9qE1sh +- [x] `Faucet Coin` address2 mint hash : 3ro5QZ3iuGTvMxWQGyASUiJcKYTmrP8mawKa556TLPS3 + +## 03 move NFT +- [x] nft package id : 0x51bec691c37be7828398c972f6b630a6e250a7f21ff5295099d322cd56198c41 +- [x] nft object id : 0xcb33b8fb75f525a05d33d9638641a1ce19764943377a5ccc230a57fbb0a27118 +- [x] 转账 nft hash: BQ9vSbZxhkaK5CaNnwfCidqnbq5yxnrfknvMZbGSR2pt +- [x] scan上的NFT截图:![Scan截图](./images/3.png) + +## 04 Move Game +- [x] game package id: 0x3f1f464e51c7f96bc4f707d74d0ec132dbf4a2bc097828001724e4c4a0151baf +- [x] deposit Coin hash: 5cfWVGueaiprYudEoHAHj8R9HcTR24hZeeWUE1UiwL2U +- [x] withdraw `Coin` hash: GFsm1UD4pLstbpMdEaZkFLEZ7ZdX4D8UfGcrbdeqjWh6 +- [x] play game hash: 6SoDei5yuSD5vjrsemtVtCtjJvcs4474f6k5zKJwoTDG + +## 05 Move Swap +- [x] swap package id : 0x60f45a1dcbb8fee154af0f8c0e0dc41a171f3050ead824aad23037b9c8448c07 +- [x] call swap CoinA-> CoinB hash : AwAvob7gkvjUL7DatNCgWu2dbSLzeAAr8j6X78Tq45ox +- [x] call swap CoinB-> CoinA hash : DAcPFxNXcvNVQKvfjPqySJqrRXPeSkVcnk8h8K8MScS + +## 06 Dapp-kit SDK PTB +- [x] save hash : ACF95mGZPubeRdXDA3cftSiJV2rua5cWfiT2Vn2iE3Q8 + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/4.png) +- [x] flag hash : FW1s7miLz3Bg8X5b9aoMjMsEWBzPin1TgRhHXitexkTL + +## 08 Move CTF Lets Move +- [x] proof : f6b4d7278ff03e53bcc6 +- [x] flag hash : 5JVawCtxvqnust8M9mvoMgA7QUVgn1NchGdy4m12uAs8 diff --git a/mover/aYoung-CS/notes/readme.md b/mover/aYoung-CS/notes/readme.md index ef394bf2b..88282da53 100644 --- a/mover/aYoung-CS/notes/readme.md +++ b/mover/aYoung-CS/notes/readme.md @@ -64,7 +64,7 @@ curl --location --request POST 'https://faucet.testnet.sui.io/gas' \ 新建:`sui move new ` 测试:`sui move test`或者`sui move test `,后者测试名字包含xxxx的 -发布:`sui client publish --gas-budget 100000000` +发布:`sui client publish ` 发布后`init`返回的object id会在object changes - created objects里体现 diff --git a/mover/admi-n/code/readme.md b/mover/admi-n/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/admi-n/images/image-20240703223730697.png b/mover/admi-n/images/image-20240703223730697.png new file mode 100644 index 000000000..7620abdbf Binary files /dev/null and b/mover/admi-n/images/image-20240703223730697.png differ diff --git a/mover/admi-n/images/image-20240703223954540.png b/mover/admi-n/images/image-20240703223954540.png new file mode 100644 index 000000000..da4276dfb Binary files /dev/null and b/mover/admi-n/images/image-20240703223954540.png differ diff --git a/mover/admi-n/images/image-20240704002434259.png b/mover/admi-n/images/image-20240704002434259.png new file mode 100644 index 000000000..c4376abb8 Binary files /dev/null and b/mover/admi-n/images/image-20240704002434259.png differ diff --git a/mover/admi-n/notes/readme.md b/mover/admi-n/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/admi-n/readme.md b/mover/admi-n/readme.md new file mode 100644 index 000000000..12ee14ae1 --- /dev/null +++ b/mover/admi-n/readme.md @@ -0,0 +1,74 @@ +## 基本信息 +- Sui钱包地址: `0x45dc113dd85e77addcfaf2788df0e1d0ce7b49cb622b5189650a8a137b2267c2` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `S7iter` + +## 个人简介 +- 工作经验: 1年 +- 技术栈: python,php,solidity +- 本科在读,参与过多场CTF和web2安全项目,web2漏洞研究,web2安全转web3安全ing。 +- 参与过几次web3黑客松。 +- Blog:`oosec.cn` +- 联系方式: :`S7iter@gmail.com` + +## 任务 + +## 01 hello move +- [x] Sui cli version: + +![image-20240703223730697](images/image-20240703223730697.png) + +- [x] Sui钱包截图: + +image-20240703223954540 + +- [x] package id: 0x7b509c50a64262ae50cd748c75150d26b7249b9a1bd34eac7d04148dc1c3ffbe + +- [x] package id 在 scan上的查看截图: + + image-20240704002434259 + + + +## 02 move coin + +- [x] My Coin package id : 0x9c83bf7e29c32e9f1ab9605e14576a853d369fa7f28a83ed45c668a9bcc2ec89 +- [x] Faucet package id : 0x9c83bf7e29c32e9f1ab9605e14576a853d369fa7f28a83ed45c668a9bcc2ec89 +- [x] 转账 `My Coin` hash: CYmTsGoAD2x4iW9A1XGvkDZzWEf141Nx6MYnRmVqBvHR +- [x] `Faucet Coin` address1 mint hash: FET1skAGTHdZdauKJcXZKxc3KX2FB8kCQXve7YqH1ks +- [x] `Faucet Coin` address2 mint hash: FbxBECy4FHSSQZwwrtxryJixeKqN3MUqjW2PCC9LpMEB + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : + + + + + + + diff --git a/mover/aiqubits/code/task2/faucet_coin/Move.lock b/mover/aiqubits/code/task2/faucet_coin/Move.lock new file mode 100644 index 000000000..ff511531d --- /dev/null +++ b/mover/aiqubits/code/task2/faucet_coin/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "231433BFFFBB3B02CB58FF53DD2C2C373C692343F9C33DA57B160CADB84AFF69" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.25.1" +edition = "2024.beta" +flavor = "sui" diff --git a/mover/aiqubits/code/task2/faucet_coin/Move.toml b/mover/aiqubits/code/task2/faucet_coin/Move.toml new file mode 100644 index 000000000..62fd211b1 --- /dev/null +++ b/mover/aiqubits/code/task2/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)"] +published-at = "0x6a8a1f3dc800b09b3165df9e82f06cf8af5effa9120929e731674ecd09b76967" +[dependencies] +Sui = { git = "https://gitee.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] +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/aiqubits/code/task2/faucet_coin/sources/faucet_coin.move b/mover/aiqubits/code/task2/faucet_coin/sources/faucet_coin.move new file mode 100644 index 000000000..43729887b --- /dev/null +++ b/mover/aiqubits/code/task2/faucet_coin/sources/faucet_coin.move @@ -0,0 +1,43 @@ +module faucet_coin::aiqubit_faucet { + use std::option; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + use sui::object; + use sui::balance::{Self, Balance}; + use sui::url::{Url,Self}; + + public struct AIQUBIT_FAUCET has drop {} + + #[allow(lint(share_owned))] + fun init(witness: AIQUBIT_FAUCET, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 6, + b"AIQF", + b"AIQUBIT_FAUCET", + b"Don't ask why", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/35585232?v=4")), + ctx + ); + + transfer::public_freeze_object(metadata); + + transfer::public_share_object(treasury_cap) + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } + + #[test_only] + public fun test_init(ctx: &mut TxContext) { + init(AIQUBIT_FAUCET {}, ctx); + } +} diff --git a/mover/aiqubits/code/task2/faucet_coin/tests/faucet_coin_tests.move b/mover/aiqubits/code/task2/faucet_coin/tests/faucet_coin_tests.move new file mode 100644 index 000000000..257acf185 --- /dev/null +++ b/mover/aiqubits/code/task2/faucet_coin/tests/faucet_coin_tests.move @@ -0,0 +1,45 @@ +#[test_only] +module faucet_coin::my_coin_tests { + use faucet_coin::aiqubit_faucet::{Self, AIQUBIT_FAUCET}; + use sui::coin::{Coin, TreasuryCap}; + use sui::test_scenario::{Self, next_tx, ctx}; + use sui::object; + use sui::balance::{Self, Balance}; + + #[test] + fun mint_burn() { + // Initialize a mock sender address + let addr1 = @0xA; + let addr2 = @0xB; + + // Begins a multi transaction scenario with addr1 as the sender + let mut scenario = test_scenario::begin(addr1); + + // Run the coin module init function + { + aiqubit_faucet::test_init(ctx(&mut scenario)) + }; + + // Mint a `Coin` object + next_tx(&mut scenario, addr1); + { + let mut treasury_cap = test_scenario::take_from_sender>(&scenario); + + aiqubit_faucet::mint(&mut treasury_cap, 100, addr1, test_scenario::ctx(&mut scenario)); + + test_scenario::return_to_address>(addr2, treasury_cap); + }; + + // Burn a `Coin` object + next_tx(&mut scenario, addr1); + { + let coin = test_scenario::take_from_sender>(&scenario); + let mut treasury_cap = test_scenario::take_from_sender>(&scenario); + aiqubit_faucet::burn(&mut treasury_cap, coin); + test_scenario::return_to_address>(addr1, treasury_cap); + }; + + // Cleans up the scenario object + test_scenario::end(scenario); + } +} \ No newline at end of file diff --git a/mover/aiqubits/code/task2/my_coin/Move.lock b/mover/aiqubits/code/task2/my_coin/Move.lock new file mode 100644 index 000000000..6d87f4855 --- /dev/null +++ b/mover/aiqubits/code/task2/my_coin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "837E1BE1E9D777A88A7A690D7144460A4BEF0543655FA617878BE8FEFDC1AD1A" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.25.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x17636e03c667ef7f98138252cb68ed6bed56fe5c07869459f2e6195822cb1ffb" +latest-published-id = "0x17636e03c667ef7f98138252cb68ed6bed56fe5c07869459f2e6195822cb1ffb" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xb4b03a2729a2dac3053c86a422aab9a1f5c9a8aec4e20c6f1d004e40a779d153" +latest-published-id = "0xb4b03a2729a2dac3053c86a422aab9a1f5c9a8aec4e20c6f1d004e40a779d153" +published-version = "1" diff --git a/mover/aiqubits/code/task2/my_coin/Move.toml b/mover/aiqubits/code/task2/my_coin/Move.toml new file mode 100644 index 000000000..7138eb2cc --- /dev/null +++ b/mover/aiqubits/code/task2/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)"] +published-at = "0xb4b03a2729a2dac3053c86a422aab9a1f5c9a8aec4e20c6f1d004e40a779d153" +[dependencies] +Sui = { git = "https://gitee.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] +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/aiqubits/code/task2/my_coin/sources/my_coin.move b/mover/aiqubits/code/task2/my_coin/sources/my_coin.move new file mode 100644 index 000000000..2f71649bf --- /dev/null +++ b/mover/aiqubits/code/task2/my_coin/sources/my_coin.move @@ -0,0 +1,56 @@ +module my_coin::aiqubit_coin { + use std::option; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + use sui::url::{Self,Url}; + + /// The type identifier of coin. The coin will have a type + /// tag of kind: `Coin` + /// Make sure that the name of the type matches the module's name. + public struct AIQUBIT_COIN has drop {} + + /// Module initializer is called once on module publish. A treasury + /// cap is sent to the publisher, who then controls minting and burning + fun init(witness: AIQUBIT_COIN, ctx: &mut TxContext) { + // let win = MYCOIN{}; + + let (treasury, metadata) = coin::create_currency( + witness, + 9, // decimals + b"AIQC", // symbol + b"AIQUBIT_COIN", // name + b"Don't ask why", // description + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/35585232?v=4")), // icon url + ctx + ); + + // transfer the `TreasuryCap` to the sender, so they can mint and burn + transfer::public_transfer(treasury, tx_context::sender(ctx)); + + // metadata is typically frozen after creation + transfer::public_freeze_object(metadata); + } + + public entry fun mint( + treasury: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury, amount, recipient, ctx); + } + + public fun burn( + treasury: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury, coin); + } + + #[test_only] + public fun test_init(ctx: &mut TxContext) { + init(AIQUBIT_COIN {}, ctx); + } + +} \ No newline at end of file diff --git a/mover/aiqubits/code/task2/my_coin/tests/my_coin_tests.move b/mover/aiqubits/code/task2/my_coin/tests/my_coin_tests.move new file mode 100644 index 000000000..27b28134a --- /dev/null +++ b/mover/aiqubits/code/task2/my_coin/tests/my_coin_tests.move @@ -0,0 +1,40 @@ +#[test_only] +module my_coin::my_coin_tests { + use my_coin::aiqubit_coin::{Self, AIQUBIT_COIN}; + use sui::coin::{Coin, TreasuryCap}; + use sui::test_scenario::{Self, next_tx, ctx}; + + #[test] + fun mint_burn() { + // Initialize a mock sender address + let addr1 = @0xA; + + // Begins a multi transaction scenario with addr1 as the sender + let mut scenario = test_scenario::begin(addr1); + + // Run the coin module init function + { + aiqubit_coin::test_init(ctx(&mut scenario)) + }; + + // Mint a `Coin` object + next_tx(&mut scenario, addr1); + { + let mut treasury_cap = test_scenario::take_from_sender>(&scenario); + aiqubit_coin::mint(&mut treasury_cap, 100, addr1, test_scenario::ctx(&mut scenario)); + test_scenario::return_to_address>(addr1, treasury_cap); + }; + + // Burn a `Coin` object + next_tx(&mut scenario, addr1); + { + let coin = test_scenario::take_from_sender>(&scenario); + let mut treasury_cap = test_scenario::take_from_sender>(&scenario); + aiqubit_coin::burn(&mut treasury_cap, coin); + test_scenario::return_to_address>(addr1, treasury_cap); + }; + + // Cleans up the scenario object + test_scenario::end(scenario); + } +} \ No newline at end of file diff --git a/mover/aiqubits/code/task3/aiqubit_nft/Move.lock b/mover/aiqubits/code/task3/aiqubit_nft/Move.lock new file mode 100644 index 000000000..dabd07ae5 --- /dev/null +++ b/mover/aiqubits/code/task3/aiqubit_nft/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C247505F73E7BEBF9815EC281B79FD0789803FE6BFE54A7B5DB61FDE15E7D246" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.25.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xb7b70c834341061bf680c05fc6f4cd6ebd55cf444fcdae1e8e4902adbf625245" +latest-published-id = "0xb7b70c834341061bf680c05fc6f4cd6ebd55cf444fcdae1e8e4902adbf625245" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x3e388ec2e18459c40e6efb2633b992575dc2b40181df5b9feafb66175f9ff733" +latest-published-id = "0x3e388ec2e18459c40e6efb2633b992575dc2b40181df5b9feafb66175f9ff733" +published-version = "1" diff --git a/mover/aiqubits/code/task3/aiqubit_nft/Move.toml b/mover/aiqubits/code/task3/aiqubit_nft/Move.toml new file mode 100644 index 000000000..0117fe152 --- /dev/null +++ b/mover/aiqubits/code/task3/aiqubit_nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "aiqubit_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/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] +aiqubit_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/aiqubits/code/task3/aiqubit_nft/sources/aiqubit_nft.move b/mover/aiqubits/code/task3/aiqubit_nft/sources/aiqubit_nft.move new file mode 100644 index 000000000..bfc800ea0 --- /dev/null +++ b/mover/aiqubits/code/task3/aiqubit_nft/sources/aiqubit_nft.move @@ -0,0 +1,103 @@ +module aiqubit_nft::aiqubit_nft { + use sui::url::{Url, Self}; + use std::string; + use sui::object::{Self, ID, UID}; + use sui::event; + use sui::transfer; + use sui::tx_context::{TxContext, Self}; + + public struct AiqubitNFT has key, store { + id: UID, + name: string::String, + description: string::String, + url: Url, + } + + public struct AiqubitNFTMintEvent has copy, drop { + object_id: ID, + creator: address, + name: string::String, + } + + public struct AiqubitNFTTransferEvent has copy, drop { + object_id: ID, + from: address, + to: address, + } + + public struct AiqubitNFTBurnEvent has copy, drop { + object_id: ID, + } + + // Public view function + public fun name(nft: &AiqubitNFT): string::String { + nft.name + } + + public fun description(nft: &AiqubitNFT): string::String { + nft.description + } + + public fun url(nft: &AiqubitNFT): Url { + nft.url + } + + // Entrypoints + public entry fun mint_nft( + name: vector, + description: vector, + url: vector, + ctx: &mut TxContext + ) { + let sender = tx_context::sender(ctx); + let nft = AiqubitNFT { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + url: url::new_unsafe_from_bytes(url), + }; + + event::emit(AiqubitNFTMintEvent { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + public entry fun transfer_nft( + nft: AiqubitNFT, + recipient: address, + _: &mut TxContext + ) { + event::emit(AiqubitNFTTransferEvent { + object_id: object::id(&nft), + from: tx_context::sender(_), + to: recipient, + }); + + transfer::public_transfer(nft, recipient); + } + + public entry fun update_description( + nft: &mut AiqubitNFT, + description: vector, + _: &mut TxContext + ) { + nft.description = string::utf8(description); + } + + public entry fun burn( + nft: AiqubitNFT, + _: &mut TxContext + ) { + let AiqubitNFT { id, name: _, description: _, url: _} = nft; + + event::emit(AiqubitNFTBurnEvent { + object_id: object::uid_to_inner(&id), + }); + + object::delete(id); + } +} diff --git a/mover/aiqubits/code/task3/aiqubit_nft/tests/aiqubit_nft_tests.move b/mover/aiqubits/code/task3/aiqubit_nft/tests/aiqubit_nft_tests.move new file mode 100644 index 000000000..979d7ab39 --- /dev/null +++ b/mover/aiqubits/code/task3/aiqubit_nft/tests/aiqubit_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module aiqubit_nft::aiqubit_nft_tests { + // uncomment this line to import the module + // use aiqubit_nft::aiqubit_nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_aiqubit_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::aiqubit_nft::aiqubit_nft_tests::ENotImplemented)] + fun test_aiqubit_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/aiqubits/code/task4/aiqubit_game/Move.lock b/mover/aiqubits/code/task4/aiqubit_game/Move.lock new file mode 100644 index 000000000..3b8a80cef --- /dev/null +++ b/mover/aiqubits/code/task4/aiqubit_game/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "AADA7E781E24EF3FFEE362735F34802810641763654F480D7AAF4CD004DD0BB1" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.25.1" +edition = "2024.beta" +flavor = "sui" diff --git a/mover/aiqubits/code/task4/aiqubit_game/Move.toml b/mover/aiqubits/code/task4/aiqubit_game/Move.toml new file mode 100644 index 000000000..8fba37678 --- /dev/null +++ b/mover/aiqubits/code/task4/aiqubit_game/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "aiqubit_game" +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/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 +faucet_coin = { local = "../../task2/faucet_coin" } + +# To resolve a version conflict and force a specific version for dependency +# override use `override = true` +# Override = { local = "../conflicting/version", override = true } + +[addresses] +aiqubit_game = "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/aiqubits/code/task4/aiqubit_game/sources/aiqubit_game.move b/mover/aiqubits/code/task4/aiqubit_game/sources/aiqubit_game.move new file mode 100644 index 000000000..7eb70fcf2 --- /dev/null +++ b/mover/aiqubits/code/task4/aiqubit_game/sources/aiqubit_game.move @@ -0,0 +1,139 @@ +/// Module: task4 +module aiqubit_game::aiqubit_game { + use std::string::{Self, String}; + use sui::clock::{Self, Clock}; + use sui::event; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::tx_context::sender; + use faucet_coin::aiqubit_faucet::{Self, AIQUBIT_FAUCET}; + + const EInvalidNumber: u64 = 0; + const EPoolNotEnough: u64 = 1; + const EInputNotEnough: u64 = 2; + + public struct GameResult has copy, drop { + your_roll: u8, + npc_roll: u8, + result: String, + is_winner: bool, + } + + public struct Game has key { + id: UID, + pool: Balance, + ticket: u64, + reward: u64, + } + + public fun game_pool(game: &Game): u64 { + balance::value(&game.pool) + } + + public fun game_ticket(game: &Game): u64 { + game.ticket + } + + public fun game_reward(game: &Game): u64 { + game.reward + } + + public struct AdminCap has key { + id: UID, + } + + fun init(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + pool: balance::zero(), + ticket: 1_000, + reward: 2_000, + }; + transfer::share_object(game); + + let admin_cap = AdminCap { id: object::new(ctx) }; + transfer::transfer(admin_cap, sender(ctx)); + } + + fun get_random_roll(clock: &Clock) : u8 { + ((clock::timestamp_ms(clock) % 6) + 1) as u8 + } + + public entry fun play(choice: u8, game: &mut Game, input: Coin, clock: &Clock, ctx: &mut TxContext) { + assert!(choice < 7, EInvalidNumber); + assert!(balance::value(&game.pool) >= game.reward - game.ticket, EPoolNotEnough); + + let input_value = coin::value(&input); + assert!(input_value >= game.ticket, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > game.ticket) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, game.ticket) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + }; + + let player_roll = choice; + let npc_roll = get_random_roll(clock); + let (result, is_winner) = if (player_roll > npc_roll) { + (string::utf8(b"Win"), true) + } else if (player_roll == npc_roll) { + (string::utf8(b"Draw"), false) + } else { + (string::utf8(b"Lose"), false) + }; + + if (is_winner) { + let reward_balance = balance::split(&mut game.pool, game.reward); + let reward = coin::from_balance(reward_balance, ctx); + transfer::public_transfer(reward, sender(ctx)); + }; + + event::emit(GameResult { + your_roll: player_roll, + npc_roll: npc_roll, + result, + is_winner, + }); + } + + public entry fun deposit(game: &mut Game, input: Coin, amount: u64, ctx: &mut TxContext) { + let input_value = coin::value(&input); + assert!(input_value >= amount, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > amount) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, amount) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + } + } + + public entry fun withdraw(_: &AdminCap, game: &mut Game, amount: u64, ctx: &mut TxContext) { + let output_balance = balance::split(&mut game.pool, amount); + let output = coin::from_balance(output_balance, ctx); + transfer::public_transfer(output, sender(ctx)); + } + + public entry fun set_ticket(_: &AdminCap, game: &mut Game, ticket: u64, _: &mut TxContext) { + game.ticket = ticket; + } + + public entry fun set_reward(_: &AdminCap, game: &mut Game, reward: u64, _: &mut TxContext) { + game.reward = reward; + } + + public entry fun get_faucet_coin(treasury_cap: &mut TreasuryCap, amount: u64, ctx: &mut TxContext) { + aiqubit_faucet::mint(treasury_cap, amount, sender(ctx), ctx); + } +} diff --git a/mover/aiqubits/code/task4/aiqubit_game/tests/aiqubit_game_tests.move b/mover/aiqubits/code/task4/aiqubit_game/tests/aiqubit_game_tests.move new file mode 100644 index 000000000..ed14ae752 --- /dev/null +++ b/mover/aiqubits/code/task4/aiqubit_game/tests/aiqubit_game_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module aiqubit_game::aiqubit_game_tests { + // uncomment this line to import the module + // use aiqubit_game::aiqubit_game; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_aiqubit_game() { + // pass + } + + #[test, expected_failure(abort_code = ::aiqubit_game::aiqubit_game_tests::ENotImplemented)] + fun test_aiqubit_game_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/aiqubits/code/task5/aiqubit_swap/Move.lock b/mover/aiqubits/code/task5/aiqubit_swap/Move.lock new file mode 100644 index 000000000..aa4535d2f --- /dev/null +++ b/mover/aiqubits/code/task5/aiqubit_swap/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "22BFE8F1082927B61CAC8BB0777DC0850B5570010D64A2FA4064170F4215C588" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.25.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x57b4d1062f1cb5681ab6f00551b91647e9209a5317c23b541717842e3d7ff37c" +latest-published-id = "0x57b4d1062f1cb5681ab6f00551b91647e9209a5317c23b541717842e3d7ff37c" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xde2a12b321ef377b77a117b8fa055dd7c56a9564b557965a3d6fef2f8054a270" +latest-published-id = "0xde2a12b321ef377b77a117b8fa055dd7c56a9564b557965a3d6fef2f8054a270" +published-version = "1" diff --git a/mover/aiqubits/code/task5/aiqubit_swap/Move.toml b/mover/aiqubits/code/task5/aiqubit_swap/Move.toml new file mode 100644 index 000000000..265d65e06 --- /dev/null +++ b/mover/aiqubits/code/task5/aiqubit_swap/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "aiqubit_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 (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/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] +aiqubit_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" + diff --git a/mover/aiqubits/code/task5/aiqubit_swap/sources/aiqubit_swap.move b/mover/aiqubits/code/task5/aiqubit_swap/sources/aiqubit_swap.move new file mode 100644 index 000000000..a9e941285 --- /dev/null +++ b/mover/aiqubits/code/task5/aiqubit_swap/sources/aiqubit_swap.move @@ -0,0 +1,200 @@ +/// Module: task5 +module aiqubit_swap::aiqubit_swap { + use sui::object::{Self, UID}; + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply, Balance}; + use sui::transfer; + use sui::math; + use sui::tx_context::{Self, TxContext}; + + const E_ZERO_AMOUNT: u64 = 0; + const E_RESERVES_EMPTY: u64 = 2; + const E_POOL_FULL: u64 = 4; + const FEE_SCALING: u128 = 10000; + const FEE_PERCENT: u128 = 30; + const MAX_POOL_VALUE: u64 = 18446744073709551615 / 10000; + + public struct LSP has drop {} + + public struct Pool has key { + id: UID, + token_a: Balance, + token_b: Balance, + lsp_supply: Supply>, + fee_percent: u64 + } + + fun init(_: &mut TxContext) {} + + entry fun create_pool( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + let fee_percent = FEE_PERCENT as u64; + let token_a_amt = coin::value(&token_a); + let token_b_amt = coin::value(&token_b); + + assert!(token_a_amt > 0 && token_b_amt > 0, E_ZERO_AMOUNT); + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, E_POOL_FULL); + + let share = math::sqrt(token_a_amt) * math::sqrt(token_b_amt); + let mut lsp_supply = balance::create_supply(LSP {}); + let lsp = balance::increase_supply(&mut lsp_supply, share); + + let pool = Pool { + id: object::new(ctx), + token_a: coin::into_balance(token_a), + token_b: coin::into_balance(token_b), + lsp_supply, + fee_percent, + }; + + transfer::share_object(pool); + + transfer::public_transfer( + coin::from_balance(lsp, ctx), + tx_context::sender(ctx) + ); + } + + entry fun add_liquidity( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + assert!(coin::value(&token_a) > 0 && coin::value(&token_b) > 0, E_ZERO_AMOUNT); + + let (token_a_amt, token_b_amt, lsp_supply) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, E_RESERVES_EMPTY); + + let token_a_balance = coin::into_balance(token_a); + let token_b_balance = coin::into_balance(token_b); + let token_a_added = balance::value(&token_a_balance); + let token_b_added = balance::value(&token_b_balance); + + let share_minted = math::min( + (token_a_added * lsp_supply) / token_a_amt, + (token_b_added * lsp_supply) / token_b_amt + ); + + balance::join(&mut pool.token_a, token_a_balance); + balance::join(&mut pool.token_b, token_b_balance); + + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, E_POOL_FULL); + + let lsp = balance::increase_supply(&mut pool.lsp_supply, share_minted); + + transfer::public_transfer( + coin::from_balance(lsp, ctx), + tx_context::sender(ctx) + ) + } + + entry fun remove_liquidity( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ) { + let lsp_amount = coin::value(&lsp); + assert!(lsp_amount > 0, E_ZERO_AMOUNT); + + let (token_a_amt, token_b_amt, total_supply) = get_amounts(pool); + let token_a_share = (token_a_amt * lsp_amount) / total_supply; + let token_b_share = (token_b_amt * lsp_amount) / total_supply; + + balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); + + transfer::public_transfer(coin::take(&mut pool.token_a, token_a_share, ctx), tx_context::sender(ctx)); + transfer::public_transfer(coin::take(&mut pool.token_b, token_b_share, ctx), tx_context::sender(ctx)); + } + + entry fun swap_a_to_b( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ) { + let token_a_amt = coin::value(&token_a); + assert!(token_a_amt > 0, E_ZERO_AMOUNT); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, E_RESERVES_EMPTY); + + let token_b_amt = sell_token_a(pool, token_a_amt); + balance::join(&mut pool.token_a, coin::into_balance(token_a)); + + transfer::public_transfer(coin::take(&mut pool.token_b, token_b_amt, ctx), tx_context::sender(ctx)); + } + + entry fun swap_b_to_a( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ) { + let token_b_amt = coin::value(&token_b); + assert!(token_b_amt > 0, E_ZERO_AMOUNT); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, E_RESERVES_EMPTY); + + let token_a_amt = sell_token_b(pool, token_b_amt); + balance::join(&mut pool.token_b, coin::into_balance(token_b)); + + transfer::public_transfer(coin::take(&mut pool.token_a, token_a_amt, ctx), tx_context::sender(ctx)); + } + + public fun sell_token_a(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_a_amt, + token_b_amt, + pool.fee_percent + ) + } + + public fun sell_token_b(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_b_amt, + token_a_amt, + pool.fee_percent + ) + } + + public fun get_amounts(pool: &Pool): (u64, u64, u64) { + ( + balance::value(&pool.token_a), + balance::value(&pool.token_b), + balance::supply_value(&pool.lsp_supply), + ) + } + + public fun calc_output_amount( + input_amount: u64, + input_reserve: u64, + output_reserve: u64, + fee_percent: u64 + ): u64 { + let ( + input_amount, + input_reserve, + output_reserve, + fee_percent + ) = ( + (input_amount as u128), + (input_reserve as u128), + (output_reserve as u128), + (fee_percent as u128), + ); + + let input_with_fee = input_amount * FEE_SCALING / (FEE_SCALING - fee_percent); + + let total = input_reserve * output_reserve; + let output_amount = output_reserve - total / (input_reserve + input_with_fee); + + (output_amount as u64) + } +} diff --git a/mover/aiqubits/code/task5/aiqubit_swap/tests/aiqubit_swap_tests.move b/mover/aiqubits/code/task5/aiqubit_swap/tests/aiqubit_swap_tests.move new file mode 100644 index 000000000..61808a037 --- /dev/null +++ b/mover/aiqubits/code/task5/aiqubit_swap/tests/aiqubit_swap_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module aiqubit_swap::aiqubit_swap_tests { + // uncomment this line to import the module + // use aiqubit_swap::aiqubit_swap; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_aiqubit_swap() { + // pass + } + + #[test, expected_failure(abort_code = ::aiqubit_swap::aiqubit_swap_tests::ENotImplemented)] + fun test_aiqubit_swap_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/aiqubits/code/task6/aiqubit_sdk_ptb/index.html b/mover/aiqubits/code/task6/aiqubit_sdk_ptb/index.html new file mode 100644 index 000000000..6425a8877 --- /dev/null +++ b/mover/aiqubits/code/task6/aiqubit_sdk_ptb/index.html @@ -0,0 +1,12 @@ + + + + + + aiqubit_sdk_ptb + + +
+ + + diff --git a/mover/aiqubits/code/task6/aiqubit_sdk_ptb/package-lock.json b/mover/aiqubits/code/task6/aiqubit_sdk_ptb/package-lock.json new file mode 100644 index 000000000..8347c974b --- /dev/null +++ b/mover/aiqubits/code/task6/aiqubit_sdk_ptb/package-lock.json @@ -0,0 +1,7437 @@ +{ + "name": "with-vite", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "with-vite", + "version": "0.0.0", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@suiet/wallet-kit": "0.2.24", + "navi-sdk": "^1.1.21", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tweetnacl": "^1.0.3" + }, + "devDependencies": { + "@types/react": "^18.0.22", + "@types/react-dom": "^18.0.7", + "@vitejs/plugin-react": "^2.2.0", + "typescript": "^5.4.3", + "vite": "^3.2.7" + } + }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, + "node_modules/@0no-co/graphqlsp": { + "version": "1.12.5", + "resolved": "https://registry.npmmirror.com/@0no-co/graphqlsp/-/graphqlsp-1.12.5.tgz", + "integrity": "sha512-YS9s8sf3XLaVdBt33u1mbUdfUSLiarQW1SFd3ITh2CLWz1nVnVTN0oCrpepuFHUJ7rt+b6Gk14sgjP4ONdeZfQ==", + "dependencies": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.24.6.tgz", + "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", + "dependencies": { + "@babel/highlight": "^7.24.6", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.24.6.tgz", + "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.24.6.tgz", + "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helpers": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/traverse": "^7.24.6", + "@babel/types": "^7.24.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.24.6.tgz", + "integrity": "sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==", + "dependencies": { + "@babel/types": "^7.24.6", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz", + "integrity": "sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.6.tgz", + "integrity": "sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", + "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", + "dependencies": { + "@babel/compat-data": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.6.tgz", + "integrity": "sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-member-expression-to-functions": "^7.24.6", + "@babel/helper-optimise-call-expression": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.6.tgz", + "integrity": "sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz", + "integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz", + "integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==", + "dependencies": { + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz", + "integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.6.tgz", + "integrity": "sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz", + "integrity": "sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", + "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.6.tgz", + "integrity": "sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz", + "integrity": "sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.6.tgz", + "integrity": "sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-wrap-function": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.6.tgz", + "integrity": "sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-member-expression-to-functions": "^7.24.6", + "@babel/helper-optimise-call-expression": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", + "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.6.tgz", + "integrity": "sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz", + "integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz", + "integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", + "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz", + "integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.6.tgz", + "integrity": "sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==", + "dependencies": { + "@babel/helper-function-name": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.24.6.tgz", + "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", + "dependencies": { + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.24.6.tgz", + "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.6", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz", + "integrity": "sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6.tgz", + "integrity": "sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6.tgz", + "integrity": "sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/plugin-transform-optional-chaining": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6.tgz", + "integrity": "sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.6.tgz", + "integrity": "sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.6.tgz", + "integrity": "sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.6.tgz", + "integrity": "sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.6.tgz", + "integrity": "sha512-TzCtxGgVTEJWWwcYwQhCIQ6WaKlo80/B+Onsk4RRCcYqpYGFcG9etPW94VToGte5AAcxRrhjPUFvUS3Y2qKi4A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.6.tgz", + "integrity": "sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.6.tgz", + "integrity": "sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-remap-async-to-generator": "^7.24.6", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.6.tgz", + "integrity": "sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==", + "dependencies": { + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-remap-async-to-generator": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.6.tgz", + "integrity": "sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.6.tgz", + "integrity": "sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.6.tgz", + "integrity": "sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.6.tgz", + "integrity": "sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.6.tgz", + "integrity": "sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.6.tgz", + "integrity": "sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/template": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.6.tgz", + "integrity": "sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.6.tgz", + "integrity": "sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.6.tgz", + "integrity": "sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.6.tgz", + "integrity": "sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.6.tgz", + "integrity": "sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.6.tgz", + "integrity": "sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.6.tgz", + "integrity": "sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.6.tgz", + "integrity": "sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.6.tgz", + "integrity": "sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.6.tgz", + "integrity": "sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.6.tgz", + "integrity": "sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.6.tgz", + "integrity": "sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.6.tgz", + "integrity": "sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.6.tgz", + "integrity": "sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.6.tgz", + "integrity": "sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.6.tgz", + "integrity": "sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.6.tgz", + "integrity": "sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.6.tgz", + "integrity": "sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.6.tgz", + "integrity": "sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.6.tgz", + "integrity": "sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.6.tgz", + "integrity": "sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.6.tgz", + "integrity": "sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.6.tgz", + "integrity": "sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.6.tgz", + "integrity": "sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.6.tgz", + "integrity": "sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.6.tgz", + "integrity": "sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.6.tgz", + "integrity": "sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.6.tgz", + "integrity": "sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.6.tgz", + "integrity": "sha512-vQfyXRtG/kNIcTYRd/49uJnwvMig9X3R4XsTVXRml2RFupZFY+2RDuK+/ymb+MfX2WuIHAgUZc2xEvQrnI7QCg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.6.tgz", + "integrity": "sha512-/3iiEEHDsJuj9QU09gbyWGSUxDboFcD7Nj6dnHIlboWSodxXAoaY/zlNMHeYAC0WsERMqgO9a7UaM77CsYgWcg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.6.tgz", + "integrity": "sha512-pCtPHhpRZHfwdA5G1Gpk5mIzMA99hv0R8S/Ket50Rw+S+8hkt3wBWqdqHaPw0CuUYxdshUgsPiLQ5fAs4ASMhw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-jsx": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.6.tgz", + "integrity": "sha512-F7EsNp5StNDouSSdYyDSxh4J+xvj/JqG+Cb6s2fA+jCyHOzigG5vTwgH8tU2U8Voyiu5zCG9bAK49wTr/wPH0w==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.6.tgz", + "integrity": "sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.6.tgz", + "integrity": "sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.6.tgz", + "integrity": "sha512-0HoDQlFJJkXRyV2N+xOpUETbKHcouSwijRQbKWVtxsPoq5bbB30qZag9/pSc5xcWVYjTHlLsBsY+hZDnzQTPNw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.6.tgz", + "integrity": "sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.6.tgz", + "integrity": "sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.6.tgz", + "integrity": "sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.6.tgz", + "integrity": "sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.6.tgz", + "integrity": "sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.6.tgz", + "integrity": "sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.6.tgz", + "integrity": "sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.6.tgz", + "integrity": "sha512-H0i+hDLmaYYSt6KU9cZE0gb3Cbssa/oxWis7PX4ofQzbvsfix9Lbh8SRk7LCPDlLWJHUiFeHU0qRRpF/4Zv7mQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-typescript": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.6.tgz", + "integrity": "sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.6.tgz", + "integrity": "sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.6.tgz", + "integrity": "sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.6.tgz", + "integrity": "sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.24.6.tgz", + "integrity": "sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==", + "dependencies": { + "@babel/compat-data": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.6", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.6", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.6", + "@babel/plugin-syntax-import-attributes": "^7.24.6", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.6", + "@babel/plugin-transform-async-generator-functions": "^7.24.6", + "@babel/plugin-transform-async-to-generator": "^7.24.6", + "@babel/plugin-transform-block-scoped-functions": "^7.24.6", + "@babel/plugin-transform-block-scoping": "^7.24.6", + "@babel/plugin-transform-class-properties": "^7.24.6", + "@babel/plugin-transform-class-static-block": "^7.24.6", + "@babel/plugin-transform-classes": "^7.24.6", + "@babel/plugin-transform-computed-properties": "^7.24.6", + "@babel/plugin-transform-destructuring": "^7.24.6", + "@babel/plugin-transform-dotall-regex": "^7.24.6", + "@babel/plugin-transform-duplicate-keys": "^7.24.6", + "@babel/plugin-transform-dynamic-import": "^7.24.6", + "@babel/plugin-transform-exponentiation-operator": "^7.24.6", + "@babel/plugin-transform-export-namespace-from": "^7.24.6", + "@babel/plugin-transform-for-of": "^7.24.6", + "@babel/plugin-transform-function-name": "^7.24.6", + "@babel/plugin-transform-json-strings": "^7.24.6", + "@babel/plugin-transform-literals": "^7.24.6", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.6", + "@babel/plugin-transform-member-expression-literals": "^7.24.6", + "@babel/plugin-transform-modules-amd": "^7.24.6", + "@babel/plugin-transform-modules-commonjs": "^7.24.6", + "@babel/plugin-transform-modules-systemjs": "^7.24.6", + "@babel/plugin-transform-modules-umd": "^7.24.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.6", + "@babel/plugin-transform-new-target": "^7.24.6", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.6", + "@babel/plugin-transform-numeric-separator": "^7.24.6", + "@babel/plugin-transform-object-rest-spread": "^7.24.6", + "@babel/plugin-transform-object-super": "^7.24.6", + "@babel/plugin-transform-optional-catch-binding": "^7.24.6", + "@babel/plugin-transform-optional-chaining": "^7.24.6", + "@babel/plugin-transform-parameters": "^7.24.6", + "@babel/plugin-transform-private-methods": "^7.24.6", + "@babel/plugin-transform-private-property-in-object": "^7.24.6", + "@babel/plugin-transform-property-literals": "^7.24.6", + "@babel/plugin-transform-regenerator": "^7.24.6", + "@babel/plugin-transform-reserved-words": "^7.24.6", + "@babel/plugin-transform-shorthand-properties": "^7.24.6", + "@babel/plugin-transform-spread": "^7.24.6", + "@babel/plugin-transform-sticky-regex": "^7.24.6", + "@babel/plugin-transform-template-literals": "^7.24.6", + "@babel/plugin-transform-typeof-symbol": "^7.24.6", + "@babel/plugin-transform-unicode-escapes": "^7.24.6", + "@babel/plugin-transform-unicode-property-regex": "^7.24.6", + "@babel/plugin-transform-unicode-regex": "^7.24.6", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.6", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/preset-react/-/preset-react-7.24.6.tgz", + "integrity": "sha512-8mpzh1bWvmINmwM3xpz6ahu57mNaWavMm+wBNjQ4AFu1nghKBiIRET7l/Wmj4drXany/BBGjJZngICcD98F1iw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-transform-react-display-name": "^7.24.6", + "@babel/plugin-transform-react-jsx": "^7.24.6", + "@babel/plugin-transform-react-jsx-development": "^7.24.6", + "@babel/plugin-transform-react-pure-annotations": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/preset-typescript/-/preset-typescript-7.24.6.tgz", + "integrity": "sha512-U10aHPDnokCFRXgyT/MaIRTivUu2K/mu0vJlwRS9LxJmJet+PFQNKpggPyFCUtC6zWSBPjvxjnpNkAn3Uw2m5w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-syntax-jsx": "^7.24.6", + "@babel/plugin-transform-modules-commonjs": "^7.24.6", + "@babel/plugin-transform-typescript": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, + "node_modules/@babel/runtime": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.6.tgz", + "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.24.6.tgz", + "integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==", + "dependencies": { + "@babel/code-frame": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.24.6.tgz", + "integrity": "sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==", + "dependencies": { + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.24.6.tgz", + "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==", + "dependencies": { + "@babel/helper-string-parser": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@digitak/grubber": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/@digitak/grubber/-/grubber-3.1.4.tgz", + "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@gql.tada/cli-utils": { + "version": "1.3.9", + "resolved": "https://registry.npmmirror.com/@gql.tada/cli-utils/-/cli-utils-1.3.9.tgz", + "integrity": "sha512-oRb7SG/+csx9CiypSJTI21KaLfulOUnhX1vxg4FXi2snub9XShkGR2XnnlJVTAOZXY9Vcxti1NutAElxdDkycA==", + "dependencies": { + "@0no-co/graphqlsp": "^1.12.1", + "@gql.tada/internal": "1.0.0", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@gql.tada/internal": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@gql.tada/internal/-/internal-1.0.0.tgz", + "integrity": "sha512-B55aIYyZn5ewdgMqoJciPAwF5DKYX6HBabTU+ap/dpNH3EgJrLomc8Y8w+MCxCyOx+dXL9OduT6eWnVr7J7Eyg==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/sui.js": { + "version": "0.51.2", + "resolved": "https://registry.npmmirror.com/@mysten/sui.js/-/sui.js-0.51.2.tgz", + "integrity": "sha512-RRG/VHhVvkQlWqodFZagRxVDo3SbXh4e3xTBplhPNNyybugbWj/V+wGrNv5/KtxfVxHBw6jTCoB798ijqPBq7g==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.4.1", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@mysten/wallet-standard": { + "version": "0.11.2", + "resolved": "https://registry.npmmirror.com/@mysten/wallet-standard/-/wallet-standard-0.11.2.tgz", + "integrity": "sha512-wDuXHwmdYS+9ewH6w4Fg67QwDpYN6JTKPWC/fuEWRuHy4uS77DfrIG6KHtU0tReMGapevXovKpw6WoSHJHDDHg==", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@wallet-standard/core": "1.0.3" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz", + "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", + "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-escape-keydown": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", + "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", + "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", + "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", + "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", + "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", + "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@scure/base": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/@scure/base/-/base-1.1.6.tgz", + "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "node_modules/@suiet/wallet-kit": { + "version": "0.2.24", + "resolved": "https://registry.npmmirror.com/@suiet/wallet-kit/-/wallet-kit-0.2.24.tgz", + "integrity": "sha512-BXJ3Hv7ey9eUQVqhtLZpY3X8Ek+ODligRtWb6hnnPXsKys2h3kS0FygEZhoilMn3+cvmAtnW1sW1mrtM6aacDw==", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@mysten/wallet-standard": "0.11.2", + "@radix-ui/react-dialog": "^1.0.2", + "@suiet/wallet-sdk": "0.2.21", + "@svgr/rollup": "^6.5.1", + "@wallet-standard/core": "1.0.3", + "buffer": "^6.0.3", + "classnames": "^2.3.2", + "lodash-es": "^4.17.21", + "mitt": "^3.0.0", + "react-query": "^3.39.2" + }, + "peerDependencies": { + "@mysten/sui.js": "0.51.2", + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@suiet/wallet-sdk": { + "version": "0.2.21", + "resolved": "https://registry.npmmirror.com/@suiet/wallet-sdk/-/wallet-sdk-0.2.21.tgz", + "integrity": "sha512-d0IlSgZpbwIO6LTs3pric/M/4Rq/Ip4OezOUTRStp3PE02+9dVbNsRbCv7NjP50Vf660U3u3TdhVg7looi3yCw==", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@mysten/wallet-standard": "0.11.2", + "@noble/hashes": "^1.3.0", + "buffer": "^6.0.3", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "peerDependencies": { + "@mysten/sui.js": "0.51.2" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", + "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", + "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", + "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", + "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", + "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", + "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", + "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", + "@svgr/babel-plugin-remove-jsx-attribute": "*", + "@svgr/babel-plugin-remove-jsx-empty-expression": "*", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", + "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", + "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", + "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", + "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/core/-/core-6.5.1.tgz", + "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", + "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "dependencies": { + "@babel/types": "^7.20.0", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", + "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/hast-util-to-babel-ast": "^6.5.1", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "^6.0.0" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", + "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "dependencies": { + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "svgo": "^2.8.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/rollup": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/rollup/-/rollup-6.5.1.tgz", + "integrity": "sha512-GeUfq0grJfpcn2jRWRaZ4npn27nnWK21vUj6MqDqknuJnEqGADcZZjO9wrUAaPLr3InAnQi0Z7nwiNUdzkaj6A==", + "dependencies": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-constant-elements": "^7.18.12", + "@babel/preset-env": "^7.19.4", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@rollup/pluginutils": "^4.2.1", + "@svgr/core": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "@svgr/plugin-svgo": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "devOptional": true + }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "devOptional": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "devOptional": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-2.2.0.tgz", + "integrity": "sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-jsx": "^7.19.0", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.19.6", + "magic-string": "^0.26.7", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^3.0.0" + } + }, + "node_modules/@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "dependencies": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot/node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.2.5.tgz", + "integrity": "sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==", + "dependencies": { + "@volar/source-map": "2.2.5" + } + }, + "node_modules/@volar/source-map": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-2.2.5.tgz", + "integrity": "sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==", + "dependencies": { + "muggle-string": "^0.4.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dependencies": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.19", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-2.0.19.tgz", + "integrity": "sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==", + "dependencies": { + "@volar/language-core": "~2.2.4", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/@wallet-standard/app": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@wallet-standard/app/-/app-1.0.1.tgz", + "integrity": "sha512-LnLYq2Vy2guTZ8GQKKSXQK3+FRGPil75XEdkZqE6fiLixJhZJoJa5hT7lXxwe0ykVTt9LEThdTbOpT7KadS26Q==", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/base": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@wallet-standard/base/-/base-1.0.1.tgz", + "integrity": "sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w==", + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/core": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@wallet-standard/core/-/core-1.0.3.tgz", + "integrity": "sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==", + "dependencies": { + "@wallet-standard/app": "^1.0.1", + "@wallet-standard/base": "^1.0.1", + "@wallet-standard/features": "^1.0.3", + "@wallet-standard/wallet": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/features": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@wallet-standard/features/-/features-1.0.3.tgz", + "integrity": "sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/wallet": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@wallet-standard/wallet/-/wallet-1.0.1.tgz", + "integrity": "sha512-qkhJeuQU2afQTZ02yMZE5SFc91Fo3hyFjFkpQglHudENNyiSG0oUKcIjky8X32xVSaumgTZSQUAzpXnCTWHzKQ==", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/broadcast-channel": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/broadcast-channel/-/broadcast-channel-3.7.0.tgz", + "integrity": "sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "detect-node": "^2.1.0", + "js-sha3": "0.8.0", + "microseconds": "0.2.0", + "nano-time": "1.0.0", + "oblivious-set": "1.0.0", + "rimraf": "3.0.2", + "unload": "2.2.0" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001623", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001623.tgz", + "integrity": "sha512-X/XhAVKlpIxWPpgRTnlgZssJrF0m6YtRA0QDWgsBNT12uZM6LPRydR7ip405Y3t1LamD8cP2TZFEDZFBf5ApcA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmmirror.com/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/code-red/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "peer": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==" + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.783", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.783.tgz", + "integrity": "sha512-bT0jEz/Xz1fahQpbZ1D7LgmPYZ3iHVY39NcWWro1+hA2IvjiPeaXtfSqrQ+nXjApMvQRE2ASt1itSLRrebHMRQ==" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz", + "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz", + "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz", + "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz", + "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz", + "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz", + "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz", + "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz", + "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz", + "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz", + "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz", + "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz", + "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz", + "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz", + "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz", + "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz", + "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz", + "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz", + "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz", + "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz", + "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esrun": { + "version": "3.2.26", + "resolved": "https://registry.npmmirror.com/esrun/-/esrun-3.2.26.tgz", + "integrity": "sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==", + "dependencies": { + "@digitak/grubber": "^3.1.4", + "chokidar": "^3.5.1", + "esbuild": "^0.17.4" + }, + "bin": { + "esrun": "bin.js" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "engines": { + "node": "*" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/gql.tada": { + "version": "1.7.5", + "resolved": "https://registry.npmmirror.com/gql.tada/-/gql.tada-1.7.5.tgz", + "integrity": "sha512-GepPTee+FWSVVZQ7GiJHzsGNo7gOb59kcn4mUPYLlkbpeJfOUwpuoB05ZNaXG0W4qZVPd1I7R2UgMHBjY1lGlQ==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5", + "@gql.tada/cli-utils": "1.3.9", + "@gql.tada/internal": "1.0.0" + }, + "bin": { + "gql-tada": "bin/cli.js", + "gql.tada": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmmirror.com/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "peer": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "peer": true + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmmirror.com/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.26.7", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/match-sorter": { + "version": "6.3.4", + "resolved": "https://registry.npmmirror.com/match-sorter/-/match-sorter-6.3.4.tgz", + "integrity": "sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==", + "dependencies": { + "@babel/runtime": "^7.23.8", + "remove-accents": "0.5.0" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "peer": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/microseconds": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/microseconds/-/microseconds-0.2.0.tgz", + "integrity": "sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + }, + "node_modules/mlly": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.0.tgz", + "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.0", + "ufo": "^1.5.3" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "node_modules/nano-time": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/nano-time/-/nano-time-1.0.0.tgz", + "integrity": "sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==", + "dependencies": { + "big-integer": "^1.6.16" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/navi-sdk": { + "version": "1.1.21", + "resolved": "https://registry.npmmirror.com/navi-sdk/-/navi-sdk-1.1.21.tgz", + "integrity": "sha512-AumnovQqslq9WSUOrJiILDH/Jh/ygslJS2WNcIIfovG4HpSLx+Q8qKHjg3bydsnnFIr4o0qdPiMb1K2nB8mwMQ==", + "dependencies": { + "@mysten/sui.js": "^0.50.1", + "axios": "^1.6.7", + "esrun": "^3.2.26", + "tsconfig-paths": "^4.2.0", + "vitest": "^1.3.1" + } + }, + "node_modules/navi-sdk/node_modules/@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmmirror.com/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/oblivious-set": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/oblivious-set/-/oblivious-set-1.0.0.tgz", + "integrity": "sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/periscopic/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/react-query": { + "version": "3.39.3", + "resolved": "https://registry.npmmirror.com/react-query/-/react-query-3.39.3.tgz", + "integrity": "sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "broadcast-channel": "^3.4.1", + "match-sorter": "^6.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmmirror.com/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.5.5", + "resolved": "https://registry.npmmirror.com/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", + "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.3", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmmirror.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remove-accents": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/remove-accents/-/remove-accents-0.5.0.tgz", + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==" + }, + "node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svelte": { + "version": "4.2.17", + "resolved": "https://registry.npmmirror.com/svelte/-/svelte-4.2.17.tgz", + "integrity": "sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/svelte/node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/svelte2tsx": { + "version": "0.7.8", + "resolved": "https://registry.npmmirror.com/svelte2tsx/-/svelte2tsx-0.7.8.tgz", + "integrity": "sha512-ABK3RDFcy59AqAiU1N5Kxu1RnKrb1GDMrQjLgNgJfE8Q+coCKpjCAPtUVKQM2HnmuqeNWcT3NqfXbE+ZmN5Pow==", + "dependencies": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + }, + "peerDependencies": { + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", + "typescript": "^4.9.4 || ^5.0.0" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==" + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unload": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/unload/-/unload-2.2.0.tgz", + "integrity": "sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==", + "dependencies": { + "@babel/runtime": "^7.6.2", + "detect-node": "^2.0.4" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/vite": { + "version": "3.2.10", + "resolved": "https://registry.npmmirror.com/vite/-/vite-3.2.10.tgz", + "integrity": "sha512-Dx3olBo/ODNiMVk/cA5Yft9Ws+snLOXrhLtrI3F4XLt4syz2Yg8fayZMWScPKoz12v5BUv7VEmQHnsfpY80fYw==", + "dev": true, + "dependencies": { + "esbuild": "^0.15.9", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/vite-node/node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/vite-node/node_modules/vite": { + "version": "5.2.11", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.2.11.tgz", + "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.15.18", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.15.18.tgz", + "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.15.18", + "@esbuild/linux-loong64": "0.15.18", + "esbuild-android-64": "0.15.18", + "esbuild-android-arm64": "0.15.18", + "esbuild-darwin-64": "0.15.18", + "esbuild-darwin-arm64": "0.15.18", + "esbuild-freebsd-64": "0.15.18", + "esbuild-freebsd-arm64": "0.15.18", + "esbuild-linux-32": "0.15.18", + "esbuild-linux-64": "0.15.18", + "esbuild-linux-arm": "0.15.18", + "esbuild-linux-arm64": "0.15.18", + "esbuild-linux-mips64le": "0.15.18", + "esbuild-linux-ppc64le": "0.15.18", + "esbuild-linux-riscv64": "0.15.18", + "esbuild-linux-s390x": "0.15.18", + "esbuild-netbsd-64": "0.15.18", + "esbuild-openbsd-64": "0.15.18", + "esbuild-sunos-64": "0.15.18", + "esbuild-windows-32": "0.15.18", + "esbuild-windows-64": "0.15.18", + "esbuild-windows-arm64": "0.15.18" + } + }, + "node_modules/vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "dependencies": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/vitest/node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/vitest/node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/vitest/node_modules/vite": { + "version": "5.2.11", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.2.11.tgz", + "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/mover/aiqubits/code/task6/aiqubit_sdk_ptb/package.json b/mover/aiqubits/code/task6/aiqubit_sdk_ptb/package.json new file mode 100644 index 000000000..076a96228 --- /dev/null +++ b/mover/aiqubits/code/task6/aiqubit_sdk_ptb/package.json @@ -0,0 +1,24 @@ +{ + "name": "with-vite", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --port 3000" + }, + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@suiet/wallet-kit": "0.2.24", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tweetnacl": "^1.0.3", + "navi-sdk": "^1.1.21" + }, + "devDependencies": { + "@types/react": "^18.0.22", + "@types/react-dom": "^18.0.7", + "@vitejs/plugin-react": "^2.2.0", + "typescript": "^5.4.3", + "vite": "^3.2.7" + } +} diff --git a/mover/aiqubits/code/task6/aiqubit_sdk_ptb/src/index.css b/mover/aiqubits/code/task6/aiqubit_sdk_ptb/src/index.css new file mode 100644 index 000000000..3ef486a9d --- /dev/null +++ b/mover/aiqubits/code/task6/aiqubit_sdk_ptb/src/index.css @@ -0,0 +1,109 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; + color: #535bf2; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} + + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} + +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +.card { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 2em; +} + +.read-the-docs { + color: #888; +} + +.btn-group button+button{ + margin-left: 12px; +} \ No newline at end of file diff --git a/mover/aiqubits/code/task6/aiqubit_sdk_ptb/src/main.tsx b/mover/aiqubits/code/task6/aiqubit_sdk_ptb/src/main.tsx new file mode 100644 index 000000000..20b20e8d1 --- /dev/null +++ b/mover/aiqubits/code/task6/aiqubit_sdk_ptb/src/main.tsx @@ -0,0 +1,114 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import { + WalletProvider, +} from '@suiet/wallet-kit'; +import { + ConnectButton, + useAccountBalance, + useWallet, + ErrorCode, + formatSUI, +} from "@suiet/wallet-kit"; +import './index.css'; +import "@suiet/wallet-kit/style.css"; +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import { depositCoin, borrowCoin } from 'navi-sdk/dist/libs/PTB' +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from 'navi-sdk/dist/address' +import { Sui, USDC } from 'navi-sdk/dist/address'; + +function App() { + const wallet = useWallet(); + const { balance } = useAccountBalance(); + + async function handleNAVISDK() { + if (!wallet.account) return; + const account = wallet.account; + const sender = account.address; + try { + let txb = new TransactionBlock(); + txb.setSender(sender); + + let getCoinInfo = balance; + if (!getCoinInfo) { + throw new Error("Insufficient balance"); + } + + let deposit_amount = 1e9; + let sui_symbol = Sui.symbol; + const pool_sui: PoolConfig = pool[sui_symbol as keyof Pool]; + const [to_deposit] = txb.splitCoins(txb.gas, [deposit_amount]); + await depositCoin(txb, pool_sui, to_deposit, deposit_amount); + + let borrow_amount = 0.052323 * 1e6; + let usdc_symbol = USDC.symbol; + const pool_usdc: PoolConfig = pool[usdc_symbol as keyof Pool]; + const [borrow_coin] = await borrowCoin(txb, pool_usdc, borrow_amount); + + await depositCoin(txb, pool_usdc, borrow_coin, borrow_amount); + + const resData = await wallet.signAndExecuteTransactionBlock({ + transactionBlock: txb, + }); + console.log("transaction digest: " + JSON.stringify(resData)); + } catch (e) { + console.error("Operation failed (see response in the console)", e); + } + } + + return ( +
+
+

SUI PTB Transfer

+ { + if (error.code === ErrorCode.WALLET__CONNECT_ERROR__USER_REJECTED) { + console.warn( + "user rejected the connection to " + error.details?.wallet + ); + } else { + console.warn("unknown connect error: ", error); + } + }} + /> + {!wallet.connected ? ( +

Connect wallet from now!

+ ) : ( +
+
+

current wallet: {wallet.adapter?.name}

+

+ wallet status:{" "} + {wallet.connecting + ? "connecting" + : wallet.connected + ? "connected" + : "disconnected"} +

+

current network: {wallet.chain?.name}

+

+ wallet balance:{" "} + {formatSUI(balance ?? 0, { + withAbbr: false, + })}{" "} + SUI +

+
+
+ +
+
+ )} +
+
+ ); +} + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + + + +) \ No newline at end of file diff --git a/mover/aiqubits/code/task6/aiqubit_sdk_ptb/tsconfig.json b/mover/aiqubits/code/task6/aiqubit_sdk_ptb/tsconfig.json new file mode 100644 index 000000000..3d0a51a86 --- /dev/null +++ b/mover/aiqubits/code/task6/aiqubit_sdk_ptb/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/aiqubits/code/task6/aiqubit_sdk_ptb/tsconfig.node.json b/mover/aiqubits/code/task6/aiqubit_sdk_ptb/tsconfig.node.json new file mode 100644 index 000000000..9d31e2aed --- /dev/null +++ b/mover/aiqubits/code/task6/aiqubit_sdk_ptb/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/aiqubits/code/task6/aiqubit_sdk_ptb/vite.config.ts b/mover/aiqubits/code/task6/aiqubit_sdk_ptb/vite.config.ts new file mode 100644 index 000000000..55ef63119 --- /dev/null +++ b/mover/aiqubits/code/task6/aiqubit_sdk_ptb/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + build: { + target: 'es2020' + }, + optimizeDeps: { + esbuildOptions: { + target: 'es2020', + define: { + global: 'globalThis', + }, + }, + }, +}) diff --git a/mover/aiqubits/images/aiqubit-nft.jpg b/mover/aiqubits/images/aiqubit-nft.jpg new file mode 100644 index 000000000..8e18758a4 Binary files /dev/null and b/mover/aiqubits/images/aiqubit-nft.jpg differ diff --git a/mover/aiqubits/notes/readme.md b/mover/aiqubits/notes/readme.md index e69de29bb..a8df2004c 100644 --- a/mover/aiqubits/notes/readme.md +++ b/mover/aiqubits/notes/readme.md @@ -0,0 +1,136 @@ +## mainnet +address: 0xd3324287c3b2fd24b0c52a512e20f7aab280396df5169267f323047b50e95ec9 +aiqubit_faucet: 0x6a8a1f3dc800b09b3165df9e82f06cf8af5effa9120929e731674ecd09b76967 +aiqubit_faucet TreasuryCap: 0xc5b9385162b3d5da4fba0d2370a6045ed94d7a2d324b054d8e855091aca24214 +aiqubit_faucet Coin: 0x0181da62a7a7102e07e5cb19f2f414c4a9e8b9614ffbf75fb1da39791493a559 +aiqubit_coin: 0xb4b03a2729a2dac3053c86a422aab9a1f5c9a8aec4e20c6f1d004e40a779d153 +aiqubit_coin TreasuryCap: 0xa8d2ab74ae7f4557430cb5778af9b731528c084c560d5ef90264c2e7a03463a5 +aiqubit nft: 0x3e388ec2e18459c40e6efb2633b992575dc2b40181df5b9feafb66175f9ff733 + +## testnet +address: 0x415bf8842215995030fb6834f0f832e3f030ef3941e312837f8ea22c2eb14f15 +aiqubit_faucet: 0x29b6a0bca9c40bb55a48383c13b2b4872e747df7994e315be8593d722d9091e4 +aiqubit_faucet TreasuryCap: 0xbc9f81e90a24c956e0af40dc16198b663c5c266420d3149cd09db0266ad8559f +aiqubit_faucet Coin: 0x735e771bdcfcf120b77f9b889734ceab92e915240f88990ef7fd087275d4fa5a +aiqubit_coin: 0x17636e03c667ef7f98138252cb68ed6bed56fe5c07869459f2e6195822cb1ffb +aiqubit_coin TreasuryCap: 0x033eb226b6cfe428d0550d7214f3771020abdcbc4ea8706ced3380de9f3f8459 +aiqubit nft: 0xb7b70c834341061bf680c05fc6f4cd6ebd55cf444fcdae1e8e4902adbf625245 + +## Build +github ---> gitee +sui move build + +## Deploy +sui client new-env --alias=mainnet --rpc https://fullnode.mainnet.sui.io:443 +sui client switch --env mainnet +sui client switch --address hungry-crocidolite +sui client publish --gas-budget 20000000 + +## Coin Mint +export PACKAGE_ID=0x6a8a1f3dc800b09b3165df9e82f06cf8af5effa9120929e731674ecd09b76967 +export TREASURYCAP_ID=0xc5b9385162b3d5da4fba0d2370a6045ed94d7a2d324b054d8e855091aca24214 +export RECIPIENT_ADDRESS=0xd3324287c3b2fd24b0c52a512e20f7aab280396df5169267f323047b50e95ec9 + +sui client call --gas-budget 9900000 --package $PACKAGE_ID --module aiqubit_faucet --function mint --args $TREASURYCAP_ID \"9876543210\" $RECIPIENT_ADDRESS + +## NFT Mint: +export PACKAGE_ID=0x3e388ec2e18459c40e6efb2633b992575dc2b40181df5b9feafb66175f9ff733 +export NFT_NAME="\"AIQUBIT\"" +export DESCRIPTION="\"AIQUBIT NFT\"" +export URL=https://avatars.githubusercontent.com/u/35585232?v=4 + +sui client call --gas-budget 7500000 --package $PACKAGE_ID --module aiqubit_nft --function mint_nft --args $NFT_NAME $DESCRIPTION $URL + +## Transfer NFT +export NFT_ID=0xa33e88f6c7b24c9d538539c4fd0c6624c997c0b8a797c1f4c525ace2e3cd6036 +export ADDRESS=0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +sui client call --gas-budget 7500000 --package $PACKAGE_ID --module aiqubit_nft --function transfer_nft --args $NFT_ID $ADDRESS + +## Aiqubit Game +sui client publish --gas-budget 200000000 +testnet: +export ADMIN_CAP=0xfac70f8f03de21ccec04e6d1a643b5ce852eb07cb2c11daf6cb848f726121d67 +export GAME_ID=0x3076dae2debab0364a6765ff887ead71ff984b34781bdac735477ac9d00a1f43 +export PACKAGE_ID=0x16bc98ae1bf7ce2e614b9fb426a5297ec04ebf30aa9ec577fdd34ccb87bb9943 + +export FAUCET_TreasuryCap=0xbc9f81e90a24c956e0af40dc16198b663c5c266420d3149cd09db0266ad8559f + +// get_faucet_coin 调用水龙头,获取水龙头币 +sui client call --package $PACKAGE_ID --module aiqubit_game --function get_faucet_coin --args $FAUCET_TreasuryCap 100000000 --gas-budget 10000000 + +// deposit coin: +// 调用get_faucet_coin,从返回信息 Created Objects: ObjectType: 0x2::coin::Coin<0x29b6a0bca9c40bb55a48383c13b2b4872e747df7994e315be8593d722d9091e4::aiqubit_faucet::AIQUBIT_FAUCET> ObjectID: 得到 FAUCET_COIN +export FAUCET_COIN=0x1822e7ce3b815ac8e18bfbc7a7ee2d6969e8d997b723e5e3d121ed344397e8df + +sui client call --package $PACKAGE_ID --module aiqubit_game --function deposit --args $GAME_ID $FAUCET_COIN 5000000 --gas-budget 20000000 + +// play game: +// 每次deposit coin只能play game一次 +// 从调用deposit的返回信息 Created Objects: ObjectType: 0x2::coin::Coin<0x29b6a0bca9c40bb55a48383c13b2b4872e747df7994e315be8593d722d9091e4::aiqubit_faucet::AIQUBIT_FAUCET> ObjectID: 得到 GAME_COIN +export GAME_COIN=0xe659aebc8bb3100b8e1f22c4418e2176d344acc40f9d0698861ec74cc382b2e5 + +sui client call --package $PACKAGE_ID --module aiqubit_game --function play --args 1 $GAME_ID $GAME_COIN 0x6 + + +sui client call --package $PACKAGE_ID --module aiqubit_game --function withdraw --args $ADMIN_CAP $GAME_ID 2000 --gas-budget 10000000 + +## Aiqubit Swap +sui client publish --gas-budget 200000000 + +export COIN_TYPE=0xb4b03a2729a2dac3053c86a422aab9a1f5c9a8aec4e20c6f1d004e40a779d153::aiqubit_coin::AIQUBIT_COIN + +export FAUCET_TYPE=0x6a8a1f3dc800b09b3165df9e82f06cf8af5effa9120929e731674ecd09b76967::aiqubit_faucet::AIQUBIT_FAUCET + +export AIQUBIT_COIN_PACKAGE_ID=0xb4b03a2729a2dac3053c86a422aab9a1f5c9a8aec4e20c6f1d004e40a779d153 + +export AIQUBIT_FAUCET_PACKAGE_ID=0x6a8a1f3dc800b09b3165df9e82f06cf8af5effa9120929e731674ecd09b76967 + +export FAUCET_TREA_ID=0xc5b9385162b3d5da4fba0d2370a6045ed94d7a2d324b054d8e855091aca24214 + +export COIN_TREA_ID=0xa8d2ab74ae7f4557430cb5778af9b731528c084c560d5ef90264c2e7a03463a5 + +export AIQUBIT_SWAP_PACKAGE_ID=0xde2a12b321ef377b77a117b8fa055dd7c56a9564b557965a3d6fef2f8054a270 + +export MY_ADDRESS=0xd3324287c3b2fd24b0c52a512e20f7aab280396df5169267f323047b50e95ec9 + +// 调用 AIQUBIT_COIN mint 拿到1000个 +sui client call --gas-budget 7500000 --package $AIQUBIT_COIN_PACKAGE_ID --module aiqubit_coin --function mint --args $COIN_TREA_ID 1000 $MY_ADDRESS +// 根据 Created Objects: ObjectType: 0x2::coin::Coin<0xb4b03a2729a2dac3053c86a422aab9a1f5c9a8aec4e20c6f1d004e40a779d153::aiqubit_coin::AIQUBIT_COIN> ObjectID: +export COIN_ID_1=0xa554a35d055b192c3b3450490369fcb6cd8affc7311ddecc51819f22d3a154a9 + +// 调用 AIQUBIT_FAUCET mint 拿到1000个 +sui client call --gas-budget 7500000 --package $AIQUBIT_FAUCET_PACKAGE_ID --module aiqubit_faucet --function mint --args $FAUCET_TREA_ID 1000 $MY_ADDRESS +// 根据 Created Objects: ObjectType: 0x2::coin::Coin<0x6a8a1f3dc800b09b3165df9e82f06cf8af5effa9120929e731674ecd09b76967::aiqubit_faucet::AIQUBIT_FAUCET> ObjectID: +export FAUCET_ID_1=0x04fcb30c3ba8891deb122fb8a2ef36e060426628a36cf015c003b11bb56bf9ed + +// 调用 AIQUBIT_SWAP create_pool 创建 faucet 与 coin 各1000的流动性池子 +sui client call --gas-budget 7500000 --package $AIQUBIT_SWAP_PACKAGE_ID --module aiqubit_swap --function create_pool --type-args $COIN_TYPE $FAUCET_TYPE --args $COIN_ID_1 $FAUCET_ID_1 +// 根据 Created Objects: ObjectType: 0xde2a12b321ef377b77a117b8fa055dd7c56a9564b557965a3d6fef2f8054a270::aiqubit_swap::Pool<0xb4b03a2729a2dac3053c86a422aab9a1f5c9a8aec4e20c6f1d004e40a779d153::aiqubit_coin::AIQUBIT_COIN, 0x6a8a1f3dc800b09b3165df9e82f06cf8af5effa9120929e731674ecd09b76967::aiqubit_faucet::AIQUBIT_FAUCET> ObjectID: +export POOL_ID=0xbd3253788cece0552177289b8f2d0278237c6a42138757cb5ae969110ca6c632 + +// 调用 AIQUBIT_COIN mint 拿到1000个,作为兑换账户a +sui client call --gas-budget 7500000 --package $AIQUBIT_COIN_PACKAGE_ID --module aiqubit_coin --function mint --args $COIN_TREA_ID 1000 $MY_ADDRESS +// 根据上一步 +export COIN_ID_2=0x1647768217409645b405bf4ccd9ccef5cd5b491ee917bae9110c434bdefa1d56 + +// 调用 AIQUBIT_SWAP swap_a_to_b 用1000个coin 兑换faucet +sui client call --gas-budget 7500000 --package $AIQUBIT_SWAP_PACKAGE_ID --module aiqubit_swap --function swap_a_to_b --type-args $COIN_TYPE $FAUCET_TYPE --args $POOL_ID $COIN_ID_2 + +coin2faucet: +Transaction Digest: CD9kitpGWV2q9wjmG8mMyUWUAVs2aSu5ymLGR91uks2r + +// 调用 AIQUBIT_FAUCET mint 拿到1000个,作为兑换账户b +sui client call --gas-budget 7500000 --package $AIQUBIT_FAUCET_PACKAGE_ID --module aiqubit_faucet --function mint --args $FAUCET_TREA_ID 1000 $MY_ADDRESS +// 根据上一步 +export FAUCET_ID_2=0x6e80491b2bc8c5c0f15433bf0c43e9b93912de2426e5ec9beeb5cbd1435cef6b + +// 调用 AIQUBIT_SWAP swap_b_to_a 用1000个faucet 兑换coin +sui client call --gas-budget 7500000 --package $AIQUBIT_SWAP_PACKAGE_ID --module aiqubit_swap --function swap_b_to_a --type-args $COIN_TYPE $FAUCET_TYPE --args $POOL_ID $FAUCET_ID_2 + +faucet2coin: +Transaction Digest: 95DgBFquNbogp7C3vptBQRHw4Mg5woJc1EDrWCh8sbYG + +## Aiqubit SDK PTB +npm install +npm run dev diff --git a/mover/aiqubits/readme.md b/mover/aiqubits/readme.md index 297341816..f0e029453 100644 --- a/mover/aiqubits/readme.md +++ b/mover/aiqubits/readme.md @@ -19,28 +19,28 @@ - [x] package id 在 scan上的查看截图:![Scan截图](./images/hello-package-id.jpg) ## 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 : 0xb4b03a2729a2dac3053c86a422aab9a1f5c9a8aec4e20c6f1d004e40a779d153 +- [x] Faucet package id : 0x6a8a1f3dc800b09b3165df9e82f06cf8af5effa9120929e731674ecd09b76967 +- [x] 转账 `My Coin` hash: 43wayC1kvToT2uSMRGA2mFdSMezwSpmW5jqw57k16ZYW +- [x] `Faucet Coin` address1 mint hash: eiji9mpE9RTSm5yjnhNJXTKbqLo6vbrTnLDWMJf91H4 +- [x] `Faucet Coin` address2 mint hash: DLzy3MkkHpDpDPnfTjHZvChC1ck7c8jjnVnCMRXvGVxH ## 03 move NFT -- [] nft package id : -- [] nft object id : -- [] 转账 nft hash: -- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) +- [x] nft package id : 0x3e388ec2e18459c40e6efb2633b992575dc2b40181df5b9feafb66175f9ff733 +- [x] nft object id : 0xa33e88f6c7b24c9d538539c4fd0c6624c997c0b8a797c1f4c525ace2e3cd6036 +- [x] 转账 nft hash: Cr1EyYmLG7FfUbW1Ks5DV3hK5zTudKpjiMpw5qPMjWjU +- [x] scan上的NFT截图:![Scan截图](./images/aiqubit-nft.jpg) -## 04 Move Game -- [] game package id : -- [] deposit Coin hash: -- [] withdraw `Coin` hash: -- [] play game hash: +## 04 Move Game (testnet) +- [x] game package id : 0x16bc98ae1bf7ce2e614b9fb426a5297ec04ebf30aa9ec577fdd34ccb87bb9943 +- [x] deposit Coin hash: 0x1822e7ce3b815ac8e18bfbc7a7ee2d6969e8d997b723e5e3d121ed344397e8df +- [x] withdraw `Coin` hash: 4qFveaRrgjy8bCncYPGwkbGn2ThJ6v92CPEfSzcJqFBb +- [x] play game hash: GdpKoqK8bToHFkgAUs7cp42kRECaemsKeeRLcAZfDcrx ## 05 Move Swap -- [] swap package id : -- [] call swap CoinA-> CoinB hash : -- [] call swap CoinB-> CoinA hash : +- [x] swap package id : 0xde2a12b321ef377b77a117b8fa055dd7c56a9564b557965a3d6fef2f8054a270 +- [x] call swap CoinA-> CoinB hash : CD9kitpGWV2q9wjmG8mMyUWUAVs2aSu5ymLGR91uks2r +- [x] call swap CoinB-> CoinA hash : 95DgBFquNbogp7C3vptBQRHw4Mg5woJc1EDrWCh8sbYG ## 06 Dapp-kit SDK PTB -- [] save hash : +- [x] save hash : GFjqVtPD3JKgiDLUMvamTHkswv7257xyZhvCV8KQrNdt diff --git a/mover/ajin8898/code/readme.md b/mover/ajin8898/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/ajin8898/code/task1/hello_move/Move.lock b/mover/ajin8898/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..1f28e44f6 --- /dev/null +++ b/mover/ajin8898/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "917E16C3795B3F01271FED120E5CF6A90FC4A63AD087DB58B7C5D6EC50750EEB" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/mystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/mystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x077d71c5bb58fe90ea141fd7d1b0a8fa16592d974e2bcd50df12d0ddeb51c840" +latest-published-id = "0x077d71c5bb58fe90ea141fd7d1b0a8fa16592d974e2bcd50df12d0ddeb51c840" +published-version = "1" diff --git a/mover/ajin8898/code/task1/hello_move/Move.toml b/mover/ajin8898/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..59cfe8daf --- /dev/null +++ b/mover/ajin8898/code/task1/hello_move/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "hello_move" +edition = "2024.beta" + + +# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha +# 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/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] +hello_move = "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/ajin8898/code/task1/hello_move/sources/hello.move b/mover/ajin8898/code/task1/hello_move/sources/hello.move new file mode 100644 index 000000000..20a93be55 --- /dev/null +++ b/mover/ajin8898/code/task1/hello_move/sources/hello.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"ajin8898"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/ajin8898/code/task2/ajin8898_coin/Move.lock b/mover/ajin8898/code/task2/ajin8898_coin/Move.lock new file mode 100644 index 000000000..bdb1a1fa4 --- /dev/null +++ b/mover/ajin8898/code/task2/ajin8898_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "B5DFE43F250BB938EE9828C717632F7F086718850E759E21E47F987E609B9DFF" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/mystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/mystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x045eff3eaf7a574b1607fb8fd930adfa634e06c2e9cffe28b8963ddb499dedde" +latest-published-id = "0x045eff3eaf7a574b1607fb8fd930adfa634e06c2e9cffe28b8963ddb499dedde" +published-version = "1" diff --git a/mover/ajin8898/code/task2/ajin8898_coin/Move.toml b/mover/ajin8898/code/task2/ajin8898_coin/Move.toml new file mode 100644 index 000000000..68ae81bfb --- /dev/null +++ b/mover/ajin8898/code/task2/ajin8898_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "ajin8898_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/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] +ajin8898_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/ajin8898/code/task2/ajin8898_coin/sources/ajin8898_coin.move b/mover/ajin8898/code/task2/ajin8898_coin/sources/ajin8898_coin.move new file mode 100644 index 000000000..94077a639 --- /dev/null +++ b/mover/ajin8898/code/task2/ajin8898_coin/sources/ajin8898_coin.move @@ -0,0 +1,35 @@ +/// Module: ajin8898_coin +module ajin8898_coin::ajin8898_coin { + + use sui::coin::{Self, Coin, TreasuryCap}; + + public struct AJIN8898_COIN has drop {} + + fun init(witness: AJIN8898_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, // decimals + b"ajin8898 COIN", // symbol + b"ajin8898 COIN", // name + b"Amazing Coin", // description + option:: none(), // icon url + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} + diff --git a/mover/ajin8898/code/task2/ajin8898_coin/tests/ajin8898_coin_tests.move b/mover/ajin8898/code/task2/ajin8898_coin/tests/ajin8898_coin_tests.move new file mode 100644 index 000000000..ccd5edbb2 --- /dev/null +++ b/mover/ajin8898/code/task2/ajin8898_coin/tests/ajin8898_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module ajin8898_coin::ajin8898_coin_tests { + // uncomment this line to import the module + // use ajin8898_coin::ajin8898_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_ajin8898_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::ajin8898_coin::ajin8898_coin_tests::ENotImplemented)] + fun test_ajin8898_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/ajin8898/code/task2/ajin8898_faucet/Move.lock b/mover/ajin8898/code/task2/ajin8898_faucet/Move.lock new file mode 100644 index 000000000..a03836379 --- /dev/null +++ b/mover/ajin8898/code/task2/ajin8898_faucet/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "D51D07EF3A9EF45AAB95AC659D5581EA6C3F8DB9A6F61BA710178325CEBD1679" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x1e7aed8b04e58aabe6b7082875d6e3055c3f61d0239a26622dfb363c75fab2e4" +latest-published-id = "0x1e7aed8b04e58aabe6b7082875d6e3055c3f61d0239a26622dfb363c75fab2e4" +published-version = "1" diff --git a/mover/ajin8898/code/task2/ajin8898_faucet/Move.toml b/mover/ajin8898/code/task2/ajin8898_faucet/Move.toml new file mode 100644 index 000000000..8b412ad49 --- /dev/null +++ b/mover/ajin8898/code/task2/ajin8898_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "ajin8898_faucet" +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/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] +ajin8898_faucet = "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/ajin8898/code/task2/ajin8898_faucet/sources/ajin8898_faucet.move b/mover/ajin8898/code/task2/ajin8898_faucet/sources/ajin8898_faucet.move new file mode 100644 index 000000000..8c95a429d --- /dev/null +++ b/mover/ajin8898/code/task2/ajin8898_faucet/sources/ajin8898_faucet.move @@ -0,0 +1,56 @@ +module ajin8898_faucet::ajin8898_faucet { + use sui::balance::{Balance}; + use sui::balance; + use sui::coin::{Self, TreasuryCap}; + public struct AJIN8898_FAUCET has drop {} + public struct PublicWallet has key { + id: UID, + coin: Balance, + faucet_amount: u64, + } + const AMOUNT: u64 = 10^12; + const EFaucetDry: u64 = 1; + #[allow(lint(share_owned))] + fun init(witness: AJIN8898_FAUCET, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 10, + b"ajin8898 Faucet", + b"ajin8898 Faucet coin", + b"Get some free", + option::none(), + ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + let wallet = PublicWallet { + id: object::new(ctx), + coin: balance::zero(), + faucet_amount: AMOUNT, + }; + transfer::share_object(wallet); + } + public entry fun mint_faucet( + treasury_cap: &mut TreasuryCap, + amount: u64, + wallet: &mut PublicWallet, + ctx: &mut TxContext) { + let coins = coin::mint(treasury_cap, amount, ctx); + balance::join(&mut wallet.coin, coin::into_balance(coins)); + } + public entry fun get_faucet(wallet: &mut PublicWallet, ctx: &mut TxContext) { + let balance_amount = balance::value(&wallet.coin); + assert!(balance_amount >= wallet.faucet_amount, EFaucetDry); + let mint_balance = balance::split(&mut wallet.coin, wallet.faucet_amount); + let faucet_coin = coin::from_balance(mint_balance, ctx); + transfer::public_transfer(faucet_coin, tx_context::sender(ctx)); + } +} + +// 切换地址 +// sui client switch --address 0x74a3ba8cd6f6331093c7bbc36d4bb805ff90b9eb3fe128d402fc03e13cc9ae87 + +// address1: sui client call --function mint_faucet --package 0x35492b3e019b3f5cec1e00190de1e751013114214b4e94dce2e4193215ef2d82 --module ajin8898_faucet --args 0x7aaf7fb6d11b56ba1d3be789347122044bc352c7a3928ca67ea226fecb27929a 100000000 0xe7d6073ff1188cc6159aff80580a61d53528a8171c949b6a3695fdc91f834f84 --gas-budget 50000000 +// Transaction Effects > Created Objects > Owner: Shared > ID: 0xe7d6073ff1188cc6159aff80580a61d53528a8171c949b6a3695fdc91f834f84 +// address2: sui client call --function mint_faucet --package 0x1e7aed8b04e58aabe6b7082875d6e3055c3f61d0239a26622dfb363c75fab2e4 --module ajin8898_faucet --args 0x8db67ea7888ff9ad60716fd5ac409734c15c9fdbd2e16aaa3b9ddd06ac1d06ef 100000000 0x9def82b646bc4c2e2fcdad7fcd6704a5d5267118bb07539f10f9c151ddc3e37b --gas-budget 50000000 + +// 0x9def82b646bc4c2e2fcdad7fcd6704a5d5267118bb07539f10f9c151ddc3e37b \ No newline at end of file diff --git a/mover/ajin8898/code/task2/ajin8898_faucet/tests/ajin8898_faucet_tests.move b/mover/ajin8898/code/task2/ajin8898_faucet/tests/ajin8898_faucet_tests.move new file mode 100644 index 000000000..2051ef55a --- /dev/null +++ b/mover/ajin8898/code/task2/ajin8898_faucet/tests/ajin8898_faucet_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module ajin8898_faucet::ajin8898_faucet_tests { + // uncomment this line to import the module + // use ajin8898_faucet::ajin8898_faucet; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_ajin8898_faucet() { + // pass + } + + #[test, expected_failure(abort_code = ::ajin8898_faucet::ajin8898_faucet_tests::ENotImplemented)] + fun test_ajin8898_faucet_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/ajin8898/code/task2/ajin_faucet_coin/Move.lock b/mover/ajin8898/code/task2/ajin_faucet_coin/Move.lock new file mode 100644 index 000000000..f12a18ecf --- /dev/null +++ b/mover/ajin8898/code/task2/ajin_faucet_coin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "D46641486D6A8D6BBF0261E25607FA6E33DA8FAB9481199B043464314CFDE88F" +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.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x4123c8ba91d71254de2bc6de82ef9eef0507c3cbc3d8544e3ad71ee8474e65f7" +latest-published-id = "0x4123c8ba91d71254de2bc6de82ef9eef0507c3cbc3d8544e3ad71ee8474e65f7" +published-version = "1" + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x1925e6fbe5dab7b3c5e9b8ec92a2c97620765f12b41222d5a2ed9ba3e5b31999" +latest-published-id = "0x1925e6fbe5dab7b3c5e9b8ec92a2c97620765f12b41222d5a2ed9ba3e5b31999" +published-version = "1" diff --git a/mover/ajin8898/code/task2/ajin_faucet_coin/Move.toml b/mover/ajin8898/code/task2/ajin_faucet_coin/Move.toml new file mode 100644 index 000000000..96c86d3ea --- /dev/null +++ b/mover/ajin8898/code/task2/ajin_faucet_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "ajin_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://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] +ajin_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/ajin8898/code/task2/ajin_faucet_coin/sources/ajin_faucet_coin.move b/mover/ajin8898/code/task2/ajin_faucet_coin/sources/ajin_faucet_coin.move new file mode 100644 index 000000000..51437f1dc --- /dev/null +++ b/mover/ajin8898/code/task2/ajin_faucet_coin/sources/ajin_faucet_coin.move @@ -0,0 +1,38 @@ +module ajin_faucet_coin::ajin_faucet_coin { + + use sui::coin::create_currency; + use sui::transfer::{public_freeze_object, public_share_object}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Url, Self}; + + public struct AJIN_FAUCET_COIN has drop {} + + fun init(witness: AJIN_FAUCET_COIN, ctx: &mut TxContext) { + let icon_url = option::none(); + let (treasury_cap, coin_metadata) = create_currency( + witness, + 8, + b"Ajin Faucet", + b"Ajin Faucet", + b"Ajin faucet coin", + icon_url, + ctx + ); + + // 所有权共享出去,不可变 + public_freeze_object(coin_metadata); + // 所有权共享出去 + public_share_object(treasury_cap); + } + + // 铸造代币 + public entry fun mint(treasury_cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + // 销毁代币 + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } + +} \ No newline at end of file diff --git a/mover/ajin8898/code/task2/ajin_faucet_coin/tests/ajin_faucet_coin_tests.move b/mover/ajin8898/code/task2/ajin_faucet_coin/tests/ajin_faucet_coin_tests.move new file mode 100644 index 000000000..2ec319528 --- /dev/null +++ b/mover/ajin8898/code/task2/ajin_faucet_coin/tests/ajin_faucet_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module ajin_faucet_coin::ajin_faucet_coin_tests { + // uncomment this line to import the module + // use ajin_faucet_coin::ajin_faucet_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_ajin_faucet_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::ajin_faucet_coin::ajin_faucet_coin_tests::ENotImplemented)] + fun test_ajin_faucet_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/ajin8898/code/task3/ajin8898_nft/Move.lock b/mover/ajin8898/code/task3/ajin8898_nft/Move.lock new file mode 100644 index 000000000..7d2d00344 --- /dev/null +++ b/mover/ajin8898/code/task3/ajin8898_nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2D772037ACFE21DDB837F7D87777BDC037D9CF088B0E6F801CBF675F216D8C7A" +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.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x93ff41e4086c4d855c2ee4ad3390049ea9b5cefa74d432d2d97043d34613329d" +latest-published-id = "0x93ff41e4086c4d855c2ee4ad3390049ea9b5cefa74d432d2d97043d34613329d" +published-version = "1" diff --git a/mover/ajin8898/code/task3/ajin8898_nft/Move.toml b/mover/ajin8898/code/task3/ajin8898_nft/Move.toml new file mode 100644 index 000000000..840598dfa --- /dev/null +++ b/mover/ajin8898/code/task3/ajin8898_nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "ajin8898_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://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] +ajin8898_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/ajin8898/code/task3/ajin8898_nft/sources/ajin8898_nft.move b/mover/ajin8898/code/task3/ajin8898_nft/sources/ajin8898_nft.move new file mode 100644 index 000000000..118a1145b --- /dev/null +++ b/mover/ajin8898/code/task3/ajin8898_nft/sources/ajin8898_nft.move @@ -0,0 +1,62 @@ +/// Module: ajin8898_nft +module ajin8898_nft::ajin8898_nft { + + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct AJIN8898_NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: AJIN8898_NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"ajin8898"), + description: string::utf8(b"ajin8898 NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/175763852?v=4" + ) + }; + transfer::public_transfer(nft, recipient); + } +} diff --git a/mover/ajin8898/code/task3/ajin8898_nft/tests/ajin8898_nft_tests.move b/mover/ajin8898/code/task3/ajin8898_nft/tests/ajin8898_nft_tests.move new file mode 100644 index 000000000..14cb5b84e --- /dev/null +++ b/mover/ajin8898/code/task3/ajin8898_nft/tests/ajin8898_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module ajin8898_nft::ajin8898_nft_tests { + // uncomment this line to import the module + // use ajin8898_nft::ajin8898_nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_ajin8898_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::ajin8898_nft::ajin8898_nft_tests::ENotImplemented)] + fun test_ajin8898_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/ajin8898/code/task4/taiSaiGame/Move.lock b/mover/ajin8898/code/task4/taiSaiGame/Move.lock new file mode 100644 index 000000000..dbc8e90c2 --- /dev/null +++ b/mover/ajin8898/code/task4/taiSaiGame/Move.lock @@ -0,0 +1,49 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "008130794F614F874155EB75CEA43FC08EFC9615B49435BE86B974C978019ACE" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "ajin_faucet_coin" }, +] + +[[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.package]] +name = "ajin_faucet_coin" +source = { local = "../../task2/ajin_faucet_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x81ab36916b0a2adc9b217027ad660481ff36170ee0ed2c5771952ad0afa2a8dc" +latest-published-id = "0x81ab36916b0a2adc9b217027ad660481ff36170ee0ed2c5771952ad0afa2a8dc" +published-version = "1" + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x5535158c0fdb6fb0d4537b9460d347cf30ffb7788585c420ce55744b0391c4c0" +latest-published-id = "0x5535158c0fdb6fb0d4537b9460d347cf30ffb7788585c420ce55744b0391c4c0" +published-version = "1" diff --git a/mover/ajin8898/code/task4/taiSaiGame/Move.toml b/mover/ajin8898/code/task4/taiSaiGame/Move.toml new file mode 100644 index 000000000..6e784f8e0 --- /dev/null +++ b/mover/ajin8898/code/task4/taiSaiGame/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "taiSaiGame" +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" } +ajin_faucet_coin = { local = "../../task2/ajin_faucet_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] +taisaigame = "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/ajin8898/code/task4/taiSaiGame/sources/taisaigame.move b/mover/ajin8898/code/task4/taiSaiGame/sources/taisaigame.move new file mode 100644 index 000000000..e580d7df6 --- /dev/null +++ b/mover/ajin8898/code/task4/taiSaiGame/sources/taisaigame.move @@ -0,0 +1,81 @@ +/// Module: taisaigame +module taisaigame::taisaigame { + + use sui::sui::SUI; + use sui::balance::{Self, Balance}; + use sui::transfer; + use sui::tx_context::sender; + use ajin_faucet_coin::ajin_faucet_coin::{Self, AJIN_FAUCET_COIN}; + use sui::coin; + use sui::coin::{Coin, from_balance, into_balance}; + use sui::random; + use sui::random::Random; + use sui::transfer::{share_object, transfer, public_transfer}; + + + public struct Game has key { + id : UID, + val: Balance + } + + public struct AdminCap has key { + id : UID, + } + + fun init(ctx : &mut TxContext) { + let game = Game { + id : object::new(ctx), + val : balance::zero() + }; + transfer::share_object(game); + + let admin = AdminCap{ + id:object::new(ctx) + }; + transfer::transfer(admin, sender(ctx)); + } + + entry fun play(game: &mut Game, flip_value: bool, in: Coin, rand: &Random, ctx: &mut TxContext) { + let coin_value = coin::value(&in); + + let play_address = sender(ctx); + let game_val = balance::value(&game.val) ; + + if (game_val < coin_value) { + abort 1; + }; + + //防止 all in 战神,限制每次最大是合约里面钱的10分之一 + if (game_val < coin_value*10) { + abort 2; + }; + + let mut gen = random::new_generator(rand, ctx); + + let mut flag = random::generate_bool(&mut gen); + if (flip_value == flag) { + let win_balance = balance::split(&mut game.val, coin_value); + let win_coin = from_balance(win_balance, ctx); + public_transfer(win_coin, play_address); + public_transfer(in, play_address); + }else {//输了,放到余额 + let in_balance = into_balance(in); + balance::join(&mut game.val, in_balance); + } + } + + + public entry fun deposit(game: &mut Game, in: Coin, ctx: &TxContext) { + let in_balance = into_balance(in); + balance::join(&mut game.val, in_balance); + } + + public entry fun withdraw(_: &AdminCap, game: &mut Game, amt: u64, ctx: &mut TxContext) { + let win_balance = balance::split(&mut game.val, amt); + let win_coin = from_balance(win_balance, ctx); + public_transfer(win_coin, sender(ctx)); + } +} + + + diff --git a/mover/ajin8898/code/task4/taiSaiGame/sources/task4.txt b/mover/ajin8898/code/task4/taiSaiGame/sources/task4.txt new file mode 100644 index 000000000..4548e4ba4 --- /dev/null +++ b/mover/ajin8898/code/task4/taiSaiGame/sources/task4.txt @@ -0,0 +1,8 @@ +gameId:0x585a3deb820ebe94b42dd49aa12e1887a2cc27a67aaa4fd4e81c1160519f08fb +packageID:0x81ab36916b0a2adc9b217027ad660481ff36170ee0ed2c5771952ad0afa2a8dc +0x5535158c0fdb6fb0d4537b9460d347cf30ffb7788585c420ce55744b0391c4c0 +sui client call --function deposit --module taisaigame --package $PACKAGE_ID --gas-budget 3000000 --args $Game_Share_ID $Coin_ID +sui client call --function deposit --module taisaigame --package 0x5535158c0fdb6fb0d4537b9460d347cf30ffb7788585c420ce55744b0391c4c0 --gas-budget 3000000 --args 0x649658a65d4334c933bc1c65cabe7705c728c0b871f27b24b19b1289d4841098 0x634b1890e1c41e6c46ffb51fb2e60cdde5bcda98a2d8c06d160304a47701fb63 +sui client call --function withdraw --module taisaigame --package $GAME_PACKAGE_ID --gas-budget 3000000 --args $adminCap $Game_Share_ID 1000000 +sui client call --function withdraw --module taisaigame --package 0x5535158c0fdb6fb0d4537b9460d347cf30ffb7788585c420ce55744b0391c4c0 --gas-budget 3000000 --args 0x9d729e0aeab6130bc55b459e17b56f9d9fa704771ea8f02c891e4e5ba6ea7485 0x649658a65d4334c933bc1c65cabe7705c728c0b871f27b24b19b1289d4841098 100000000 +sui client call --function play --module taisaigame --package 0x5535158c0fdb6fb0d4537b9460d347cf30ffb7788585c420ce55744b0391c4c0 --gas-budget 3000000 --args 0x649658a65d4334c933bc1c65cabe7705c728c0b871f27b24b19b1289d4841098 true 0xe0777777dea58f72720f30aafb76391a259af8ddad5fece433f23bd036710fe9 0x8 \ No newline at end of file diff --git a/mover/ajin8898/code/task4/taiSaiGame/tests/taisaigame_tests.move b/mover/ajin8898/code/task4/taiSaiGame/tests/taisaigame_tests.move new file mode 100644 index 000000000..c4d1c02b9 --- /dev/null +++ b/mover/ajin8898/code/task4/taiSaiGame/tests/taisaigame_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module taisaigame::taisaigame_tests { + // uncomment this line to import the module + // use taisaigame::taisaigame; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_taisaigame() { + // pass + } + + #[test, expected_failure(abort_code = ::taisaigame::taisaigame_tests::ENotImplemented)] + fun test_taisaigame_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/ajin8898/images/task01-1.png b/mover/ajin8898/images/task01-1.png new file mode 100644 index 000000000..6195494af Binary files /dev/null and b/mover/ajin8898/images/task01-1.png differ diff --git a/mover/ajin8898/images/task01.jpg b/mover/ajin8898/images/task01.jpg new file mode 100644 index 000000000..383b7b508 Binary files /dev/null and b/mover/ajin8898/images/task01.jpg differ diff --git a/mover/ajin8898/images/task03.png b/mover/ajin8898/images/task03.png new file mode 100644 index 000000000..0cd8ecfe4 Binary files /dev/null and b/mover/ajin8898/images/task03.png differ diff --git a/mover/ajin8898/notes/readme.md b/mover/ajin8898/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/ajin8898/readme.md b/mover/ajin8898/readme.md new file mode 100644 index 000000000..49a028a06 --- /dev/null +++ b/mover/ajin8898/readme.md @@ -0,0 +1,56 @@ +## 基本信息 +- Sui钱包地址: `0x74a3ba8cd6f6331093c7bbc36d4bb805ff90b9eb3fe128d402fc03e13cc9ae87` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `ajin8898` + +## 个人简介 +- 工作经验: 8年 +- 技术栈: `Rust` `java` +> 重要提示 请认真写自己的简介 +- 多年java开发经验,目前在交易所工作,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `https://t.me/joey889889` + +## 任务 + +## 01 hello move +- [] Sui cli version: 1.29.0 +- [] Sui钱包截图: ![Sui钱包截图](./images/task01.jpg) +- [] package id: 0x6844b77646c359b59c9bc08127b6fc7ff952c0127ef7e92c3b99f06ae61ddd80 +- [] package id 在 scan上的查看截图:![Scan截图](./images/task01-1.png) + +## 02 move coin +- [] My Coin package id : 0x045eff3eaf7a574b1607fb8fd930adfa634e06c2e9cffe28b8963ddb499dedde +- [] Faucet package id : +mainnet: 0x4123c8ba91d71254de2bc6de82ef9eef0507c3cbc3d8544e3ad71ee8474e65f7 +testnet: 0x1925e6fbe5dab7b3c5e9b8ec92a2c97620765f12b41222d5a2ed9ba3e5b31999 +- [] 转账 `My Coin` hash: H5kJaD5DAHfN4Txp18jNvqAxgAJb8zPcC14L5qg4HvF1 +- [] `Faucet Coin` address1 mint hash: DqZyGWpLR9yDitVo7Y8XnbbNKdP8mnrd2JQGVox3gnLq +- [] `Faucet Coin` address2 mint hash: 3F7X5gZFG8P1MDCRbEBuNmomwDpdHrU5yDt8DZrahf9e + +## 03 move NFT +- [] nft package id : 0x93ff41e4086c4d855c2ee4ad3390049ea9b5cefa74d432d2d97043d34613329d +- [] nft object id : 0x93ff41e4086c4d855c2ee4ad3390049ea9b5cefa74d432d2d97043d34613329d +- [] 转账 nft hash: BPPzmjDYBtnoPEHRzMALmhMUuhtCjzRbfASBrUEyRoBv +- [] scan上的NFT截图:![Scan截图](./images/task03.png) + +## 04 Move Game +- [] game package id : testnet: 0x5535158c0fdb6fb0d4537b9460d347cf30ffb7788585c420ce55744b0391c4c0 +- [] deposit Coin hash: testnet: GDLWXZadDgnqifT1qqMzLmhvodN3u4xvgHaV1uF7dXT5 +- [] withdraw `Coin` hash: testnet: F4JDCRPzZ6bSHLQ9D8tjVUYG2dj8AgDps3F94UJXMuUK +- [] play game hash: testnet: AZ5ESeWdH9ZgHLkBpShK2srdrhMG2sgw6i37ACB7UiBo + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/al17Er/readme.md b/mover/al17Er/readme.md index 0ca413ed7..3dc974a98 100644 --- a/mover/al17Er/readme.md +++ b/mover/al17Er/readme.md @@ -1,5 +1,5 @@ ## 基本信息 -- Sui钱包地址: `0x39f730e4c71b330e0e3950a9b7bece08672fca7a577bbad02339559bcc3683da` +- Sui钱包地址: `0x9c766a956d5f228906fa5977dd2782eb661377377cfbc2d421e14bb184ce6e2c` > 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 - github: `al17Er` @@ -34,3 +34,7 @@ ## 06 SDK PTB - [] save hash : + +## 07 move ctf check in: +- [x] Digest: 6BAJ2YTsZceFz3iMfbWFyKkLkRj27s7XixmgGwa3dPup + diff --git a/mover/al17Er/task1/notes/readme.md b/mover/al17Er/task1/notes/readme.md index ac6559bc0..cadfcb437 100644 --- a/mover/al17Er/task1/notes/readme.md +++ b/mover/al17Er/task1/notes/readme.md @@ -3,4 +3,4 @@ sui client switch --address 0x39f730e4c71b330e0e3950a9b7bece08672fca7a577bbad023 sui move new hello_move //创建 hello_move文件 cd hello_move //进入创建目录 vi sources/hello_move.move //编辑目录后添加代码内容 -proxychains sui client publish --gas-budget 100000000 //创建获取packageID +proxychains sui client publish //创建获取packageID diff --git a/mover/al17Er/task2/note/readme.md b/mover/al17Er/task2/note/readme.md index 6dd37945d..cf53896dd 100755 --- a/mover/al17Er/task2/note/readme.md +++ b/mover/al17Er/task2/note/readme.md @@ -1,2 +1,2 @@ -上传合约代码:proxychains sui client publish --gas-budget 100000000 +上传合约代码:proxychains sui client publish 远程调用:sui client call --function mint --package 0x9467f6d758300f54b559ec13c68c28bc32206bbbdf6b39bff1f6397d51c0dc2f --module al17er --args 0x60d82c651045d31cef8263dd5be0950fef41859f3f51b7a90f032476681ce174 1 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 --type-args "0x9467f6d758300f54b559ec13c68c28bc32206bbbdf6b39bff1f6397d51c0dc2f::al17er::AL17ER" --gas-budget 10000000 \ No newline at end of file diff --git a/mover/al17Er/task7/task7.txt b/mover/al17Er/task7/task7.txt new file mode 100644 index 000000000..0e25572f7 --- /dev/null +++ b/mover/al17Er/task7/task7.txt @@ -0,0 +1,140 @@ +sui client call --package 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd --module check_in --function get_flag --args "GV;rC1PqZ" 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 0x8 + +Digest: 6BAJ2YTsZceFz3iMfbWFyKkLkRj27s7XixmgGwa3dPup + +─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xf52a8ee93bad3f8af89ae13ce719eab659e8d7fba4fc472fca7c867bedefdfe6 │ +│ Gas Owner: 0xf52a8ee93bad3f8af89ae13ce719eab659e8d7fba4fc472fca7c867bedefdfe6 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0xbd9b0341b6e554a31fde9f5ded21f043b127c80bcb17adaaa9c03ec658cd454c │ +│ │ Version: 48024442 │ +│ │ Digest: 3QWhf74DqyFLu12DAyS3LG6zEo615iSCvgwwwQVoPdXQ │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: "GV;rC1PqZ" │ │ +│ │ 1 Shared Object ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ │ +│ │ 2 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: get_flag │ │ +│ │ │ Module: check_in │ │ +│ │ │ Package: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ ekSeJy2BhzOBzyEFRI1ZjWYYV4IJxEO6EPlgldX0nMF0ECEVGN3f1t9PHmPXFvqaJ1rx4MVrqjMSgqV6Mpo0CQ== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 6BAJ2YTsZceFz3iMfbWFyKkLkRj27s7XixmgGwa3dPup │ +│ Status: Success │ +│ Executed Epoch: 395 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Owner: Shared( 12674957 ) │ +│ │ Version: 48024443 │ +│ │ Digest: 67HAQH6pjrfmT574n7oEjty38xtH19H6k9MngzHTPyTg │ +│ └── │ +│ ┌── │ +│ │ ID: 0xbd9b0341b6e554a31fde9f5ded21f043b127c80bcb17adaaa9c03ec658cd454c │ +│ │ Owner: Account Address ( 0xf52a8ee93bad3f8af89ae13ce719eab659e8d7fba4fc472fca7c867bedefdfe6 ) │ +│ │ Version: 48024443 │ +│ │ Digest: 6ZRWppfCNNafDMrU97UhqXRUUkxZTSvYwNao1c9gPYQN │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Version: 48024442 │ +│ │ Digest: Cp1Z4xhM8YN1Q9A14hem8aT7myuZELBe9MhPGEwvp83b │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ +│ │ Version: 45375332 │ +│ │ Digest: EuGPiKyefYTcidFHLoh8xZmPrtpGhiDw2iAijdXNcbCm │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0xbd9b0341b6e554a31fde9f5ded21f043b127c80bcb17adaaa9c03ec658cd454c │ +│ │ Owner: Account Address ( 0xf52a8ee93bad3f8af89ae13ce719eab659e8d7fba4fc472fca7c867bedefdfe6 ) │ +│ │ Version: 48024443 │ +│ │ Digest: 6ZRWppfCNNafDMrU97UhqXRUUkxZTSvYwNao1c9gPYQN │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2591600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2430252 MIST │ +│ Non-refundable Storage Fee: 24548 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3K7muQhnUGm85dfWRpXCD48yo654Yr5fsr16VoEM7A5V │ +│ BiXbbgTJEhG4yb7CZXvBSX3fSkGygLmSPJPZu3QTnSnA │ +│ GvtDcAEMFwzCSEPUqkaPGxD4CpKyD7DDfhLrnU8KuMBR │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 6BAJ2YTsZceFz3iMfbWFyKkLkRj27s7XixmgGwa3dPup:0 │ +│ │ PackageID: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd │ +│ │ Transaction Module: check_in │ +│ │ Sender: 0xf52a8ee93bad3f8af89ae13ce719eab659e8d7fba4fc472fca7c867bedefdfe6 │ +│ │ EventType: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd::check_in::Flag │ +│ │ ParsedJSON: │ +│ │ ┌────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ flag │ true │ │ +│ │ ├────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ sender │ 0xf52a8ee93bad3f8af89ae13ce719eab659e8d7fba4fc472fca7c867bedefdfe6 │ │ +│ │ └────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Sender: 0xf52a8ee93bad3f8af89ae13ce719eab659e8d7fba4fc472fca7c867bedefdfe6 │ +│ │ Owner: Shared( 12674957 ) │ +│ │ ObjectType: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd::check_in::FlagString │ +│ │ Version: 48024443 │ +│ │ Digest: 67HAQH6pjrfmT574n7oEjty38xtH19H6k9MngzHTPyTg │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xbd9b0341b6e554a31fde9f5ded21f043b127c80bcb17adaaa9c03ec658cd454c │ +│ │ Sender: 0xf52a8ee93bad3f8af89ae13ce719eab659e8d7fba4fc472fca7c867bedefdfe6 │ +│ │ Owner: Account Address ( 0xf52a8ee93bad3f8af89ae13ce719eab659e8d7fba4fc472fca7c867bedefdfe6 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 48024443 │ +│ │ Digest: 6ZRWppfCNNafDMrU97UhqXRUUkxZTSvYwNao1c9gPYQN │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xf52a8ee93bad3f8af89ae13ce719eab659e8d7fba4fc472fca7c867bedefdfe6 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1161348 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ \ No newline at end of file diff --git a/mover/alizestl/notes/readme.md b/mover/alizestl/notes/readme.md index e964d5357..f7fa33be1 100644 --- a/mover/alizestl/notes/readme.md +++ b/mover/alizestl/notes/readme.md @@ -393,3 +393,18 @@ Transaction Digest: 9cPXRyCZyD8MF8N1kUbN8q9AGawLXNVZvqXcBPYZNAjL 成功Hello World + + +# Task-7 + +### 思路 + +简答的CTF题 + +在[suivision](https://testnet.suivision.xyz/package/0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd?tab=Code)中查看合约部署地址,阅读合约代码逻辑(调用函数绕过输入检查) + +查看`FlagStr Object`,ascii编码逆一下,EZ + + + +Transaction Block:BUss77X7J7ZJ76rp5M19SGEPb6P4NLW28MiQbSqD9NaL \ No newline at end of file diff --git a/mover/alizestl/readme.md b/mover/alizestl/readme.md index c8062c211..03664a805 100644 --- a/mover/alizestl/readme.md +++ b/mover/alizestl/readme.md @@ -30,3 +30,11 @@ ## 05 Move Swap - [] swap package id : - [] call swap hash: + +## 06 Dapp-kit SDK PTB + +- [] save hash: + +## 07 move_ctf_check_in + +- [√]Transaction block: BUss77X7J7ZJ76rp5M19SGEPb6P4NLW28MiQbSqD9NaL \ No newline at end of file diff --git a/mover/alva-lin/notes/task1.md b/mover/alva-lin/notes/task1.md index dc2804c29..5af0490a8 100644 --- a/mover/alva-lin/notes/task1.md +++ b/mover/alva-lin/notes/task1.md @@ -179,7 +179,7 @@ BUILDING 03_hello_move 发布前,需要注意当前激活的网络和地址。在 package 对应的路径下,执行以下命令,将包发布到对应的网络 ```bash -sui client publish --gas-budget 100000000 +sui client publish ``` 这里的 `gas-budget` 指运行模块初始化程序是的 gas 费用预算。 diff --git a/mover/andyous/code/readme.md b/mover/andyous/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/andyous/code/task1/assets/suiscan.png b/mover/andyous/code/task1/assets/suiscan.png new file mode 100644 index 000000000..4c0f3d2ec Binary files /dev/null and b/mover/andyous/code/task1/assets/suiscan.png differ diff --git a/mover/andyous/code/task1/assets/suiw.png b/mover/andyous/code/task1/assets/suiw.png new file mode 100644 index 000000000..f7935e771 Binary files /dev/null and b/mover/andyous/code/task1/assets/suiw.png differ diff --git a/mover/andyous/code/task1/hello_move/Move.lock b/mover/andyous/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..9b393a1e4 --- /dev/null +++ b/mover/andyous/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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.23.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "bd665407" +original-published-id = "0x953c5b67b194d755f702dfc2c674a60b9a67d647b350889dd0a7a7aeaac44ab3" +latest-published-id = "0x953c5b67b194d755f702dfc2c674a60b9a67d647b350889dd0a7a7aeaac44ab3" +published-version = "1" diff --git a/mover/andyous/code/task1/hello_move/Move.toml b/mover/andyous/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/andyous/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/andyous/code/task1/hello_move/sources/hello_move.move b/mover/andyous/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..9516852ec --- /dev/null +++ b/mover/andyous/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,18 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::transfer::transfer; + use sui::tx_context::{sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"hello andyous"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/Gold/code/task1/hello_move/tests/hello_move_tests.move b/mover/andyous/code/task1/hello_move/tests/hello_move_tests.move similarity index 100% rename from mover/Gold/code/task1/hello_move/tests/hello_move_tests.move rename to mover/andyous/code/task1/hello_move/tests/hello_move_tests.move diff --git a/mover/andyous/code/task2/move_coin/Move.lock b/mover/andyous/code/task2/move_coin/Move.lock new file mode 100644 index 000000000..4271743ee --- /dev/null +++ b/mover/andyous/code/task2/move_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8EB223C8F40D0F546D3CD1F4773472F9D95459A9E8E5F61FE9A5E8BE25350372" +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.23.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "bd665407" +original-published-id = "0x4a4a5635541fed84a05810aea20b7b9b63a375ca9ca8505608a787230073c8ef" +latest-published-id = "0x4a4a5635541fed84a05810aea20b7b9b63a375ca9ca8505608a787230073c8ef" +published-version = "1" diff --git a/mover/andyous/code/task2/move_coin/Move.toml b/mover/andyous/code/task2/move_coin/Move.toml new file mode 100644 index 000000000..a3f7d1e73 --- /dev/null +++ b/mover/andyous/code/task2/move_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "move_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://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] +move_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/andyous/code/task2/move_coin/sources/faucetcoin.move b/mover/andyous/code/task2/move_coin/sources/faucetcoin.move new file mode 100644 index 000000000..70b0fc851 --- /dev/null +++ b/mover/andyous/code/task2/move_coin/sources/faucetcoin.move @@ -0,0 +1,25 @@ +module move_coin::faucet_coin { + use sui::coin; + use sui::coin::TreasuryCap; + use sui::transfer::{ public_share_object, public_freeze_object}; + + public struct FAUCET_COIN has drop{} + + fun init(witness: FAUCET_COIN, ctx: &mut TxContext){ + let (treasury, metadata) = coin::create_currency( + witness, + 8, + b"FAUCET", + b"faucet coin", + b"andyous faucet coin", + option::none(), + ctx + ); + public_share_object(treasury); + public_freeze_object(metadata); + } + + public entry fun mint(cap: &mut TreasuryCap, value: u64, recipient: address, ctx: &mut TxContext){ + coin::mint_and_transfer(cap, value, recipient, ctx); + } +} diff --git a/mover/andyous/code/task2/move_coin/sources/mycoin.move b/mover/andyous/code/task2/move_coin/sources/mycoin.move new file mode 100644 index 000000000..ba8fce3bf --- /dev/null +++ b/mover/andyous/code/task2/move_coin/sources/mycoin.move @@ -0,0 +1,29 @@ +module move_coin::mycoin { + use sui::coin; + use sui::coin::TreasuryCap; + use sui::transfer::{public_transfer, public_freeze_object}; + + public struct MYCOIN has drop{} + fun init(witness: MYCOIN, ctx: &mut TxContext){ + let (treasuryCap, denyCap ,metadata) = coin::create_regulated_currency( + witness, + 8, + b"YOUS", + b"andyous coin", + b"andyous coin", + option::none(), + ctx + ); + + public_transfer(treasuryCap, tx_context::sender(ctx)); + public_transfer(denyCap, tx_context::sender(ctx)); + public_freeze_object(metadata); + } + + public entry fun mint(cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext){ + let coin = coin::mint(cap, amount, ctx); + public_transfer(coin, recipient); + } +} + + diff --git a/mover/andyous/code/task2/move_coin/tests/move_coin_tests.move b/mover/andyous/code/task2/move_coin/tests/move_coin_tests.move new file mode 100644 index 000000000..a14f2412f --- /dev/null +++ b/mover/andyous/code/task2/move_coin/tests/move_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module move_coin::move_coin_tests { + // uncomment this line to import the module + // use move_coin::move_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_move_coin() { + // pass + } + + #[test, expected_failure(abort_code = move_coin::move_coin_tests::ENotImplemented)] + fun test_move_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/andyous/code/task3/assets/suinft.png b/mover/andyous/code/task3/assets/suinft.png new file mode 100644 index 000000000..829b1e8df Binary files /dev/null and b/mover/andyous/code/task3/assets/suinft.png differ diff --git a/mover/andyous/code/task3/nft/Move.lock b/mover/andyous/code/task3/nft/Move.lock new file mode 100644 index 000000000..0fb4bcf30 --- /dev/null +++ b/mover/andyous/code/task3/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9D4FCF5807A34E3110DFBA44AD92FEFEC55EE3DE8CF58F3D302F55D3004E70D1" +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.23.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "bd665407" +original-published-id = "0x7fd8fcaee5a543e1d94e8c51d6ca76047c82054cb6476b943a7728da25e7d7ff" +latest-published-id = "0x7fd8fcaee5a543e1d94e8c51d6ca76047c82054cb6476b943a7728da25e7d7ff" +published-version = "1" diff --git a/mover/andyous/code/task3/nft/Move.toml b/mover/andyous/code/task3/nft/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/andyous/code/task3/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/andyous/code/task3/nft/sources/nft.move b/mover/andyous/code/task3/nft/sources/nft.move new file mode 100644 index 000000000..1708e7d18 --- /dev/null +++ b/mover/andyous/code/task3/nft/sources/nft.move @@ -0,0 +1,61 @@ +module nft::nft { + + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"Andyous"), + description: string::utf8(b"Andyous NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/170977182?v=4" + ) + }; + transfer::public_transfer(nft, recipient); + } +} \ No newline at end of file diff --git a/mover/andyous/code/task3/nft/tests/nft_tests.move b/mover/andyous/code/task3/nft/tests/nft_tests.move new file mode 100644 index 000000000..ecc4de7d3 --- /dev/null +++ b/mover/andyous/code/task3/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/andyous/code/task5/move_swap/Move.lock b/mover/andyous/code/task5/move_swap/Move.lock new file mode 100644 index 000000000..db4c1c075 --- /dev/null +++ b/mover/andyous/code/task5/move_swap/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "F5397725D353D10FBD44C292A118D484117F6814B1A8191C0FD49B3658B7B440" +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.23.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "bd665407" +original-published-id = "0xa64e9799da1a2f8b78191c7b6e9b138200b51e191ef31f6671da13fd3321fc0f" +latest-published-id = "0xa64e9799da1a2f8b78191c7b6e9b138200b51e191ef31f6671da13fd3321fc0f" +published-version = "1" diff --git a/mover/andyous/code/task5/move_swap/Move.toml b/mover/andyous/code/task5/move_swap/Move.toml new file mode 100644 index 000000000..38321aa49 --- /dev/null +++ b/mover/andyous/code/task5/move_swap/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "move_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 (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] +move_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" + diff --git a/mover/andyous/code/task5/move_swap/sources/move_swap.move b/mover/andyous/code/task5/move_swap/sources/move_swap.move new file mode 100644 index 000000000..87b07cfb4 --- /dev/null +++ b/mover/andyous/code/task5/move_swap/sources/move_swap.move @@ -0,0 +1,309 @@ +module move_swap::andyous_swap { + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply, Balance}; + use sui::math; + + /// For when supplied Coin is zero. + const EZeroAmount: u64 = 0; + + /// For when someone tries to swap in an empty pool. + const EReservesEmpty: u64 = 2; + + /// For when someone attempts to add more liquidity than u128 Math allows. + const EPoolFull: u64 = 4; + + /// The integer scaling setting for fees calculation. + const FEE_SCALING: u128 = 10000; + + /// The fee percent that will be taken from the swap. + /// Set to 0.3%. + const FEE_PERCENT: u128 = 30; + + /// The max value that can be held in one of the Balances of + /// a Pool. U64 MAX / FEE_SCALING + const MAX_POOL_VALUE: u64 = { + 18446744073709551615 / 10000 + }; + + /// The Pool token that will be used to mark the pool share + /// of a liquidity provider. + /// The first type parameter stands for the witness type of a pool. + /// The seconds and thirds is for the coin held in the pool. + public struct LSP has drop {} + + /// The pool with exchange. + /// + /// - `fee_percent` should be in the range: [0-10000), meaning + /// that 10000 is 100% and 1 is 0.01% + public struct Pool has key { + id: UID, + token_a: Balance, + token_b: Balance, + lsp_supply: Supply>, + /// Fee Percent is denominated in basis points. + fee_percent: u64 + } + + + /// ======================================================================= + /// ============================= 初始化函数 =============================== + /// ======================================================================= + + /// Module initializer is empty - to publish a new Pool one has + /// to create a type which will mark LSPs. + fun init(_: &mut TxContext) { + } + + /// ======================================================================= + /// ============================= 流动性池 ================================= + /// ======================================================================= + + entry fun create_pool ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + create_pool_inner(token_a, token_b, ctx), + tx_context::sender(ctx) + ); + } + + fun create_pool_inner ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + let fee_percent = (FEE_PERCENT as u64); + + let token_a_amt = coin::value(&token_a); + let token_b_amt = coin::value(&token_b); + + assert!(token_a_amt > 0 && token_b_amt > 0, EZeroAmount); + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let share = math::sqrt(token_a_amt) * math::sqrt(token_b_amt); + let mut lsp_supply = balance::create_supply(LSP {}); + let lsp = balance::increase_supply(&mut lsp_supply, share); + + transfer::share_object(Pool { + id: object::new(ctx), + token_a: coin::into_balance(token_a), + token_b: coin::into_balance(token_b), + lsp_supply, + fee_percent, + }); + + coin::from_balance(lsp, ctx) + } + + entry fun add_liquidity ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + add_liquidity_inner(pool, token_a, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun add_liquidity_inner ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + assert!(coin::value(&token_a) > 0 && coin::value(&token_b) > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, lsp_supply) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_balance = coin::into_balance(token_a); + let token_b_balance = coin::into_balance(token_b); + + let token_a_added = balance::value(&token_a_balance); + let token_b_added = balance::value(&token_b_balance); + + // XXX - 可以对新增的流动性进行计算,查看比值是否和原来的比值一致 + // assert!(token_a_added * token_b_amt == token_b_added * token_a_amt, EWrongFee); + // assert!(math::abs_diff(token_a_added * token_b_amt, token_b_added * token_a_amt) < 100, EWrongFee); + + let share_minted = math::min( + (token_a_added * lsp_supply) / token_a_amt, + (token_b_added * lsp_supply) / token_b_amt + ); + + let token_a_amt = balance::join(&mut pool.token_a, token_a_balance); + let token_b_amt = balance::join(&mut pool.token_b, token_b_balance); + + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let balance = balance::increase_supply(&mut pool.lsp_supply, share_minted); + + coin::from_balance(balance, ctx) + } + + entry fun remove_liquidity ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ) { + let (token_a, token_b) = remove_liquidity_inner(pool, lsp, ctx); + let sender = tx_context::sender(ctx); + + transfer::public_transfer(token_a, sender); + transfer::public_transfer(token_b, sender); + } + + fun remove_liquidity_inner ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ): (Coin, Coin) { + let lsp_amount = coin::value(&lsp); + assert!(lsp_amount > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, total_supply) = get_amounts(pool); + + let token_a = (token_a_amt * lsp_amount) / total_supply; + let token_b = (token_b_amt * lsp_amount) / total_supply; + + balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); + + ( + coin::take(&mut pool.token_a, token_a, ctx), + coin::take(&mut pool.token_b, token_b, ctx), + ) + } + + /// ======================================================================= + /// ============================= 交易函数 ================================= + /// ======================================================================= + + entry fun swap_a_to_b ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_a_to_b_inner(pool, token_a, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_a_to_b_inner ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ): Coin { + let token_a_amt = coin::value(&token_a); + assert!(token_a_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_b_amt = sell_token_a(pool, token_a_amt); + + balance::join(&mut pool.token_a, coin::into_balance(token_a)); + + coin::take(&mut pool.token_b, token_b_amt, ctx) + } + + entry fun swap_b_to_a ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_b_to_a_inner(pool, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_b_to_a_inner ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ): Coin { + let token_b_amt = coin::value(&token_b); + assert!(token_b_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_amt = sell_token_b(pool, token_b_amt); + + balance::join(&mut pool.token_b, coin::into_balance(token_b)); + + coin::take(&mut pool.token_a, token_a_amt, ctx) + } + + /// ======================================================================= + /// ============================= 辅助函数 ================================= + /// ======================================================================= + + /// 计算售出指定数量的 Token A,会得到多少数量的 Token B + public fun sell_token_a(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_a_amt, + token_b_amt, + pool.fee_percent + ) + } + + /// 计算售出指定数量的 Token B,会得到多少数量的 Token A + public fun sell_token_b(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_b_amt, + token_a_amt, + pool.fee_percent + ) + } + + /// Get most used values in a handy way: + /// - amount of token a + /// - amount of token b + /// - total supply of LSP + public fun get_amounts(pool: &Pool): (u64, u64, u64) { + ( + balance::value(&pool.token_a), + balance::value(&pool.token_b), + balance::supply_value(&pool.lsp_supply), + ) + } + + public fun calc_output_amount( + input_amount: u64, + input_reserve: u64, + output_reserve: u64, + fee_percent: u64 + ): u64 { + let ( + input_amount, + input_reserve, + output_reserve, + fee_percent + ) = ( + (input_amount as u128), + (input_reserve as u128), + (output_reserve as u128), + (fee_percent as u128), + ); + + // 计算手续费后的输入数量 + let input_with_fee = input_amount * FEE_SCALING / (FEE_SCALING - fee_percent); + + // 根据公式 (x + dx) * (y - dy) = k + // 得到 dy = y - k / (x + dx) + let total = input_reserve * output_reserve; + let output_amount = output_reserve - total / (input_reserve + input_with_fee); + + (output_amount as u64) + } +} \ No newline at end of file diff --git a/mover/andyous/code/task5/move_swap/tests/move_swap_tests.move b/mover/andyous/code/task5/move_swap/tests/move_swap_tests.move new file mode 100644 index 000000000..8c424af87 --- /dev/null +++ b/mover/andyous/code/task5/move_swap/tests/move_swap_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module move_swap::move_swap_tests { + // uncomment this line to import the module + // use move_swap::move_swap; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_move_swap() { + // pass + } + + #[test, expected_failure(abort_code = move_swap::move_swap_tests::ENotImplemented)] + fun test_move_swap_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/andyous/code/task6/navi-tx/README.md b/mover/andyous/code/task6/navi-tx/README.md new file mode 100644 index 000000000..d0889dcae --- /dev/null +++ b/mover/andyous/code/task6/navi-tx/README.md @@ -0,0 +1,35 @@ +# 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/) +- [`@mysten/dapp-kit`](https://sdk.mystenlabs.com/dapp-kit) for connecting to + wallets and loading data +- [pnpm](https://pnpm.io/) for package management + +## 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 +``` diff --git a/mover/andyous/code/task6/navi-tx/index.html b/mover/andyous/code/task6/navi-tx/index.html new file mode 100644 index 000000000..bb7f75b16 --- /dev/null +++ b/mover/andyous/code/task6/navi-tx/index.html @@ -0,0 +1,59 @@ + + + + + + + Sui dApp Starter + + + + +
+ + + diff --git a/mover/andyous/code/task6/navi-tx/package-lock.json b/mover/andyous/code/task6/navi-tx/package-lock.json new file mode 100644 index 000000000..46da4e224 --- /dev/null +++ b/mover/andyous/code/task6/navi-tx/package-lock.json @@ -0,0 +1,9880 @@ +{ + "name": "my-first-sui-dapp-client", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "my-first-sui-dapp-client", + "version": "0.0.0", + "dependencies": { + "@mysten/sui.js": "0.54.1", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@suiet/wallet-kit": "^0.2.24", + "@tanstack/react-query": "^5.0.0", + "navi-sdk": "^1.1.23", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } + }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, + "node_modules/@0no-co/graphqlsp": { + "version": "1.12.5", + "resolved": "https://registry.npmmirror.com/@0no-co/graphqlsp/-/graphqlsp-1.12.5.tgz", + "integrity": "sha512-YS9s8sf3XLaVdBt33u1mbUdfUSLiarQW1SFd3ITh2CLWz1nVnVTN0oCrpepuFHUJ7rt+b6Gk14sgjP4ONdeZfQ==", + "dependencies": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.24.6.tgz", + "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", + "dependencies": { + "@babel/highlight": "^7.24.6", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.24.6.tgz", + "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.24.6.tgz", + "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helpers": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/traverse": "^7.24.6", + "@babel/types": "^7.24.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.24.6.tgz", + "integrity": "sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==", + "dependencies": { + "@babel/types": "^7.24.6", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz", + "integrity": "sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.6.tgz", + "integrity": "sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", + "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", + "dependencies": { + "@babel/compat-data": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.6.tgz", + "integrity": "sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-member-expression-to-functions": "^7.24.6", + "@babel/helper-optimise-call-expression": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.6.tgz", + "integrity": "sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz", + "integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz", + "integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==", + "dependencies": { + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz", + "integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.6.tgz", + "integrity": "sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz", + "integrity": "sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", + "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.6.tgz", + "integrity": "sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz", + "integrity": "sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.6.tgz", + "integrity": "sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-wrap-function": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.6.tgz", + "integrity": "sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-member-expression-to-functions": "^7.24.6", + "@babel/helper-optimise-call-expression": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", + "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.6.tgz", + "integrity": "sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz", + "integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz", + "integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", + "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz", + "integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.6.tgz", + "integrity": "sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==", + "dependencies": { + "@babel/helper-function-name": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.24.6.tgz", + "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", + "dependencies": { + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.24.6.tgz", + "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.6", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz", + "integrity": "sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6.tgz", + "integrity": "sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6.tgz", + "integrity": "sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/plugin-transform-optional-chaining": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6.tgz", + "integrity": "sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.6.tgz", + "integrity": "sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.6.tgz", + "integrity": "sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.6.tgz", + "integrity": "sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.6.tgz", + "integrity": "sha512-TzCtxGgVTEJWWwcYwQhCIQ6WaKlo80/B+Onsk4RRCcYqpYGFcG9etPW94VToGte5AAcxRrhjPUFvUS3Y2qKi4A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.6.tgz", + "integrity": "sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.6.tgz", + "integrity": "sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-remap-async-to-generator": "^7.24.6", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.6.tgz", + "integrity": "sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==", + "dependencies": { + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-remap-async-to-generator": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.6.tgz", + "integrity": "sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.6.tgz", + "integrity": "sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.6.tgz", + "integrity": "sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.6.tgz", + "integrity": "sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.6.tgz", + "integrity": "sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.6.tgz", + "integrity": "sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/template": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.6.tgz", + "integrity": "sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.6.tgz", + "integrity": "sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.6.tgz", + "integrity": "sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.6.tgz", + "integrity": "sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.6.tgz", + "integrity": "sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.6.tgz", + "integrity": "sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.6.tgz", + "integrity": "sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.6.tgz", + "integrity": "sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.6.tgz", + "integrity": "sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.6.tgz", + "integrity": "sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.6.tgz", + "integrity": "sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.6.tgz", + "integrity": "sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.6.tgz", + "integrity": "sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.6.tgz", + "integrity": "sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.6.tgz", + "integrity": "sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.6.tgz", + "integrity": "sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.6.tgz", + "integrity": "sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.6.tgz", + "integrity": "sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.6.tgz", + "integrity": "sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.6.tgz", + "integrity": "sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.6.tgz", + "integrity": "sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.6.tgz", + "integrity": "sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.6.tgz", + "integrity": "sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.6.tgz", + "integrity": "sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.6.tgz", + "integrity": "sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.6.tgz", + "integrity": "sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.6.tgz", + "integrity": "sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.6.tgz", + "integrity": "sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.6.tgz", + "integrity": "sha512-vQfyXRtG/kNIcTYRd/49uJnwvMig9X3R4XsTVXRml2RFupZFY+2RDuK+/ymb+MfX2WuIHAgUZc2xEvQrnI7QCg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.6.tgz", + "integrity": "sha512-/3iiEEHDsJuj9QU09gbyWGSUxDboFcD7Nj6dnHIlboWSodxXAoaY/zlNMHeYAC0WsERMqgO9a7UaM77CsYgWcg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.6.tgz", + "integrity": "sha512-pCtPHhpRZHfwdA5G1Gpk5mIzMA99hv0R8S/Ket50Rw+S+8hkt3wBWqdqHaPw0CuUYxdshUgsPiLQ5fAs4ASMhw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-jsx": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.6.tgz", + "integrity": "sha512-F7EsNp5StNDouSSdYyDSxh4J+xvj/JqG+Cb6s2fA+jCyHOzigG5vTwgH8tU2U8Voyiu5zCG9bAK49wTr/wPH0w==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.6.tgz", + "integrity": "sha512-0HoDQlFJJkXRyV2N+xOpUETbKHcouSwijRQbKWVtxsPoq5bbB30qZag9/pSc5xcWVYjTHlLsBsY+hZDnzQTPNw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.6.tgz", + "integrity": "sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.6.tgz", + "integrity": "sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.6.tgz", + "integrity": "sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.6.tgz", + "integrity": "sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.6.tgz", + "integrity": "sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.6.tgz", + "integrity": "sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.6.tgz", + "integrity": "sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.6.tgz", + "integrity": "sha512-H0i+hDLmaYYSt6KU9cZE0gb3Cbssa/oxWis7PX4ofQzbvsfix9Lbh8SRk7LCPDlLWJHUiFeHU0qRRpF/4Zv7mQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-typescript": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.6.tgz", + "integrity": "sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.6.tgz", + "integrity": "sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.6.tgz", + "integrity": "sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.6.tgz", + "integrity": "sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.24.6.tgz", + "integrity": "sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==", + "dependencies": { + "@babel/compat-data": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.6", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.6", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.6", + "@babel/plugin-syntax-import-attributes": "^7.24.6", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.6", + "@babel/plugin-transform-async-generator-functions": "^7.24.6", + "@babel/plugin-transform-async-to-generator": "^7.24.6", + "@babel/plugin-transform-block-scoped-functions": "^7.24.6", + "@babel/plugin-transform-block-scoping": "^7.24.6", + "@babel/plugin-transform-class-properties": "^7.24.6", + "@babel/plugin-transform-class-static-block": "^7.24.6", + "@babel/plugin-transform-classes": "^7.24.6", + "@babel/plugin-transform-computed-properties": "^7.24.6", + "@babel/plugin-transform-destructuring": "^7.24.6", + "@babel/plugin-transform-dotall-regex": "^7.24.6", + "@babel/plugin-transform-duplicate-keys": "^7.24.6", + "@babel/plugin-transform-dynamic-import": "^7.24.6", + "@babel/plugin-transform-exponentiation-operator": "^7.24.6", + "@babel/plugin-transform-export-namespace-from": "^7.24.6", + "@babel/plugin-transform-for-of": "^7.24.6", + "@babel/plugin-transform-function-name": "^7.24.6", + "@babel/plugin-transform-json-strings": "^7.24.6", + "@babel/plugin-transform-literals": "^7.24.6", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.6", + "@babel/plugin-transform-member-expression-literals": "^7.24.6", + "@babel/plugin-transform-modules-amd": "^7.24.6", + "@babel/plugin-transform-modules-commonjs": "^7.24.6", + "@babel/plugin-transform-modules-systemjs": "^7.24.6", + "@babel/plugin-transform-modules-umd": "^7.24.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.6", + "@babel/plugin-transform-new-target": "^7.24.6", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.6", + "@babel/plugin-transform-numeric-separator": "^7.24.6", + "@babel/plugin-transform-object-rest-spread": "^7.24.6", + "@babel/plugin-transform-object-super": "^7.24.6", + "@babel/plugin-transform-optional-catch-binding": "^7.24.6", + "@babel/plugin-transform-optional-chaining": "^7.24.6", + "@babel/plugin-transform-parameters": "^7.24.6", + "@babel/plugin-transform-private-methods": "^7.24.6", + "@babel/plugin-transform-private-property-in-object": "^7.24.6", + "@babel/plugin-transform-property-literals": "^7.24.6", + "@babel/plugin-transform-regenerator": "^7.24.6", + "@babel/plugin-transform-reserved-words": "^7.24.6", + "@babel/plugin-transform-shorthand-properties": "^7.24.6", + "@babel/plugin-transform-spread": "^7.24.6", + "@babel/plugin-transform-sticky-regex": "^7.24.6", + "@babel/plugin-transform-template-literals": "^7.24.6", + "@babel/plugin-transform-typeof-symbol": "^7.24.6", + "@babel/plugin-transform-unicode-escapes": "^7.24.6", + "@babel/plugin-transform-unicode-property-regex": "^7.24.6", + "@babel/plugin-transform-unicode-regex": "^7.24.6", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.6", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/preset-react/-/preset-react-7.24.6.tgz", + "integrity": "sha512-8mpzh1bWvmINmwM3xpz6ahu57mNaWavMm+wBNjQ4AFu1nghKBiIRET7l/Wmj4drXany/BBGjJZngICcD98F1iw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-transform-react-display-name": "^7.24.6", + "@babel/plugin-transform-react-jsx": "^7.24.6", + "@babel/plugin-transform-react-jsx-development": "^7.24.6", + "@babel/plugin-transform-react-pure-annotations": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/preset-typescript/-/preset-typescript-7.24.6.tgz", + "integrity": "sha512-U10aHPDnokCFRXgyT/MaIRTivUu2K/mu0vJlwRS9LxJmJet+PFQNKpggPyFCUtC6zWSBPjvxjnpNkAn3Uw2m5w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-syntax-jsx": "^7.24.6", + "@babel/plugin-transform-modules-commonjs": "^7.24.6", + "@babel/plugin-transform-typescript": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, + "node_modules/@babel/runtime": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.6.tgz", + "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.24.6.tgz", + "integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==", + "dependencies": { + "@babel/code-frame": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.24.6.tgz", + "integrity": "sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==", + "dependencies": { + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.24.6.tgz", + "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==", + "dependencies": { + "@babel/helper-string-parser": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@digitak/grubber": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/@digitak/grubber/-/grubber-3.1.4.tgz", + "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.6.2.tgz", + "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==", + "dependencies": { + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.5", + "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.6.5.tgz", + "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/@floating-ui/react-dom/-/react-dom-2.1.0.tgz", + "integrity": "sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.2.tgz", + "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" + }, + "node_modules/@gql.tada/cli-utils": { + "version": "1.3.9", + "resolved": "https://registry.npmmirror.com/@gql.tada/cli-utils/-/cli-utils-1.3.9.tgz", + "integrity": "sha512-oRb7SG/+csx9CiypSJTI21KaLfulOUnhX1vxg4FXi2snub9XShkGR2XnnlJVTAOZXY9Vcxti1NutAElxdDkycA==", + "dependencies": { + "@0no-co/graphqlsp": "^1.12.1", + "@gql.tada/internal": "1.0.0", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@gql.tada/internal": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@gql.tada/internal/-/internal-1.0.0.tgz", + "integrity": "sha512-B55aIYyZn5ewdgMqoJciPAwF5DKYX6HBabTU+ap/dpNH3EgJrLomc8Y8w+MCxCyOx+dXL9OduT6eWnVr7J7Eyg==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/sui.js": { + "version": "0.54.1", + "resolved": "https://registry.npmmirror.com/@mysten/sui.js/-/sui.js-0.54.1.tgz", + "integrity": "sha512-TSmGIX7U9O/uS9EKIQdv7/S69KTbBhMJVelXCafJE6IJw8iB9cN9uLu0+uklkBSDrbRmLSEY70jMr3uRFjReIg==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.7.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@radix-ui/colors": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/colors/-/colors-3.0.0.tgz", + "integrity": "sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==" + }, + "node_modules/@radix-ui/number": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/number/-/number-1.0.1.tgz", + "integrity": "sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/react-accessible-icon": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.0.3.tgz", + "integrity": "sha512-duVGKeWPSUILr/MdlPxV+GeULTc2rS1aihGdQ3N2qCUPMgxYLxvAsHJM3mCVLF8d5eK+ympmB22mb1F3a5biNw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-visually-hidden": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-alert-dialog": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.0.5.tgz", + "integrity": "sha512-OrVIOcZL0tl6xibeuGt5/+UxoT2N27KCFOPjFyfXMnchxSHZ/OW7cCX2nGlIYJrbHK/fczPcFzAwvNBB6XBNMA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dialog": "1.0.5", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz", + "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-aspect-ratio": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.0.3.tgz", + "integrity": "sha512-fXR5kbMan9oQqMuacfzlGG/SQMcmMlZ4wrvpckv8SgUulD0MMpspxJrxg/Gp/ISV3JfV1AeSWTYK9GvxA4ySwA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-avatar/-/react-avatar-1.0.4.tgz", + "integrity": "sha512-kVK2K7ZD3wwj3qhle0ElXhOjbezIgyl2hVvgwfIdexL3rN6zJmy5AqqIf+D31lxVppdzV8CjAfZ6PklkmInZLw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-checkbox/-/react-checkbox-1.0.4.tgz", + "integrity": "sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-use-previous": "1.0.1", + "@radix-ui/react-use-size": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-collection/-/react-collection-1.0.3.tgz", + "integrity": "sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context-menu": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-context-menu/-/react-context-menu-2.1.5.tgz", + "integrity": "sha512-R5XaDj06Xul1KGb+WP8qiOh7tKJNz2durpLBXAGZjSVtctcRFCuEvy2gtMwRJGePwQQE5nV77gs4FwRi8T+r2g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-menu": "2.0.6", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz", + "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-direction/-/react-direction-1.0.1.tgz", + "integrity": "sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", + "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-escape-keydown": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.0.6.tgz", + "integrity": "sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-menu": "2.0.6", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", + "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", + "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-form/-/react-form-0.0.3.tgz", + "integrity": "sha512-kgE+Z/haV6fxE5WqIXj05KkaXa3OkZASoTDy25yX2EIp/x0c54rOH/vFr5nOZTg7n7T1z8bSyXmiVIFP9bbhPQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-label": "2.0.2", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-hover-card": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-hover-card/-/react-hover-card-1.0.7.tgz", + "integrity": "sha512-OcUN2FU0YpmajD/qkph3XzMcK/NmSk9hGWnjV68p6QiZMgILugusgQwnLSDs3oFSJYGKf3Y49zgFedhGh04k9A==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-icons": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-icons/-/react-icons-1.3.0.tgz", + "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==", + "peerDependencies": { + "react": "^16.x || ^17.x || ^18.x" + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-label/-/react-label-2.0.2.tgz", + "integrity": "sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-menu/-/react-menu-2.0.6.tgz", + "integrity": "sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-collection": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-roving-focus": "1.0.4", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-callback-ref": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-popover/-/react-popover-1.0.7.tgz", + "integrity": "sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-popper/-/react-popper-1.1.3.tgz", + "integrity": "sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1", + "@radix-ui/react-use-rect": "1.0.1", + "@radix-ui/react-use-size": "1.0.1", + "@radix-ui/rect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", + "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", + "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-radio-group": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-radio-group/-/react-radio-group-1.1.3.tgz", + "integrity": "sha512-x+yELayyefNeKeTx4fjK6j99Fs6c4qKm3aY38G3swQVTN6xMpsrbigC0uHs2L//g8q4qR7qOcww8430jJmi2ag==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-roving-focus": "1.0.4", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-use-previous": "1.0.1", + "@radix-ui/react-use-size": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz", + "integrity": "sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-collection": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-scroll-area/-/react-scroll-area-1.0.5.tgz", + "integrity": "sha512-b6PAgH4GQf9QEn8zbT2XUHpW5z8BzqEc7Kl11TwDrvuTrxlkcjTD5qa/bxgKr+nmuXKu4L/W5UZ4mlP/VG/5Gw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/number": "1.0.1", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-select/-/react-select-2.0.0.tgz", + "integrity": "sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/number": "1.0.1", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-collection": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1", + "@radix-ui/react-use-previous": "1.0.1", + "@radix-ui/react-visually-hidden": "1.0.3", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-separator/-/react-separator-1.0.3.tgz", + "integrity": "sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slider": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-slider/-/react-slider-1.1.2.tgz", + "integrity": "sha512-NKs15MJylfzVsCagVSWKhGGLNR1W9qWs+HtgbmjjVUB3B9+lb3PYoXxVju3kOrpf0VKyVCtZp+iTwVoqpa1Chw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/number": "1.0.1", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-collection": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1", + "@radix-ui/react-use-previous": "1.0.1", + "@radix-ui/react-use-size": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-switch/-/react-switch-1.0.3.tgz", + "integrity": "sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-use-previous": "1.0.1", + "@radix-ui/react-use-size": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-tabs/-/react-tabs-1.0.4.tgz", + "integrity": "sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-roving-focus": "1.0.4", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-tooltip/-/react-tooltip-1.0.7.tgz", + "integrity": "sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-visually-hidden": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", + "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", + "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-previous/-/react-use-previous-1.0.1.tgz", + "integrity": "sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz", + "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/rect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz", + "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz", + "integrity": "sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/rect/-/rect-1.0.1.tgz", + "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/themes": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/themes/-/themes-2.0.3.tgz", + "integrity": "sha512-yaXQ8aWT2P1CQ0Xe6YCRD9HXsfMTvKkrIYkrc4aitCzhGTLS0sjtTqKmrxIWMVA+3DIbEuG9K/8aAMRJBhep8g==", + "dependencies": { + "@radix-ui/colors": "^3.0.0", + "@radix-ui/primitive": "^1.0.1", + "@radix-ui/react-accessible-icon": "^1.0.3", + "@radix-ui/react-alert-dialog": "^1.0.5", + "@radix-ui/react-aspect-ratio": "^1.0.3", + "@radix-ui/react-avatar": "^1.0.4", + "@radix-ui/react-checkbox": "^1.0.4", + "@radix-ui/react-context-menu": "^2.1.5", + "@radix-ui/react-dialog": "^1.0.5", + "@radix-ui/react-direction": "^1.0.1", + "@radix-ui/react-dropdown-menu": "^2.0.6", + "@radix-ui/react-form": "^0.0.3", + "@radix-ui/react-hover-card": "^1.0.7", + "@radix-ui/react-popover": "^1.0.7", + "@radix-ui/react-portal": "^1.0.4", + "@radix-ui/react-radio-group": "^1.1.3", + "@radix-ui/react-scroll-area": "^1.0.5", + "@radix-ui/react-select": "^2.0.0", + "@radix-ui/react-separator": "^1.0.3", + "@radix-ui/react-slider": "^1.1.2", + "@radix-ui/react-slot": "^1.0.2", + "@radix-ui/react-switch": "^1.0.3", + "@radix-ui/react-tabs": "^1.0.4", + "@radix-ui/react-tooltip": "^1.0.7", + "@radix-ui/react-use-callback-ref": "^1.0.1", + "@radix-ui/react-visually-hidden": "^1.0.3", + "classnames": "^2.3.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@scure/base": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/@scure/base/-/base-1.1.6.tgz", + "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "node_modules/@suiet/wallet-kit": { + "version": "0.2.24", + "resolved": "https://registry.npmmirror.com/@suiet/wallet-kit/-/wallet-kit-0.2.24.tgz", + "integrity": "sha512-BXJ3Hv7ey9eUQVqhtLZpY3X8Ek+ODligRtWb6hnnPXsKys2h3kS0FygEZhoilMn3+cvmAtnW1sW1mrtM6aacDw==", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@mysten/wallet-standard": "0.11.2", + "@radix-ui/react-dialog": "^1.0.2", + "@suiet/wallet-sdk": "0.2.21", + "@svgr/rollup": "^6.5.1", + "@wallet-standard/core": "1.0.3", + "buffer": "^6.0.3", + "classnames": "^2.3.2", + "lodash-es": "^4.17.21", + "mitt": "^3.0.0", + "react-query": "^3.39.2" + }, + "peerDependencies": { + "@mysten/sui.js": "0.51.2", + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@suiet/wallet-kit/node_modules/@mysten/sui.js": { + "version": "0.51.2", + "resolved": "https://registry.npmmirror.com/@mysten/sui.js/-/sui.js-0.51.2.tgz", + "integrity": "sha512-RRG/VHhVvkQlWqodFZagRxVDo3SbXh4e3xTBplhPNNyybugbWj/V+wGrNv5/KtxfVxHBw6jTCoB798ijqPBq7g==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.4.1", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@suiet/wallet-kit/node_modules/@mysten/wallet-standard": { + "version": "0.11.2", + "resolved": "https://registry.npmmirror.com/@mysten/wallet-standard/-/wallet-standard-0.11.2.tgz", + "integrity": "sha512-wDuXHwmdYS+9ewH6w4Fg67QwDpYN6JTKPWC/fuEWRuHy4uS77DfrIG6KHtU0tReMGapevXovKpw6WoSHJHDDHg==", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@wallet-standard/core": "1.0.3" + } + }, + "node_modules/@suiet/wallet-sdk": { + "version": "0.2.21", + "resolved": "https://registry.npmmirror.com/@suiet/wallet-sdk/-/wallet-sdk-0.2.21.tgz", + "integrity": "sha512-d0IlSgZpbwIO6LTs3pric/M/4Rq/Ip4OezOUTRStp3PE02+9dVbNsRbCv7NjP50Vf660U3u3TdhVg7looi3yCw==", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@mysten/wallet-standard": "0.11.2", + "@noble/hashes": "^1.3.0", + "buffer": "^6.0.3", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "peerDependencies": { + "@mysten/sui.js": "0.51.2" + } + }, + "node_modules/@suiet/wallet-sdk/node_modules/@mysten/sui.js": { + "version": "0.51.2", + "resolved": "https://registry.npmmirror.com/@mysten/sui.js/-/sui.js-0.51.2.tgz", + "integrity": "sha512-RRG/VHhVvkQlWqodFZagRxVDo3SbXh4e3xTBplhPNNyybugbWj/V+wGrNv5/KtxfVxHBw6jTCoB798ijqPBq7g==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.4.1", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@suiet/wallet-sdk/node_modules/@mysten/wallet-standard": { + "version": "0.11.2", + "resolved": "https://registry.npmmirror.com/@mysten/wallet-standard/-/wallet-standard-0.11.2.tgz", + "integrity": "sha512-wDuXHwmdYS+9ewH6w4Fg67QwDpYN6JTKPWC/fuEWRuHy4uS77DfrIG6KHtU0tReMGapevXovKpw6WoSHJHDDHg==", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@wallet-standard/core": "1.0.3" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", + "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", + "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", + "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", + "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", + "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", + "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", + "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", + "@svgr/babel-plugin-remove-jsx-attribute": "*", + "@svgr/babel-plugin-remove-jsx-empty-expression": "*", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", + "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", + "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", + "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", + "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/core/-/core-6.5.1.tgz", + "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", + "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "dependencies": { + "@babel/types": "^7.20.0", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", + "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/hast-util-to-babel-ast": "^6.5.1", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "^6.0.0" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", + "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "dependencies": { + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "svgo": "^2.8.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/rollup": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@svgr/rollup/-/rollup-6.5.1.tgz", + "integrity": "sha512-GeUfq0grJfpcn2jRWRaZ4npn27nnWK21vUj6MqDqknuJnEqGADcZZjO9wrUAaPLr3InAnQi0Z7nwiNUdzkaj6A==", + "dependencies": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-constant-elements": "^7.18.12", + "@babel/preset-env": "^7.19.4", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@rollup/pluginutils": "^4.2.1", + "@svgr/core": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "@svgr/plugin-svgo": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@swc/core": { + "version": "1.5.22", + "resolved": "https://registry.npmmirror.com/@swc/core/-/core-1.5.22.tgz", + "integrity": "sha512-YxvaMFS0Uq9gHVjJh0aKBB868lcBExWVWoZWSCqcoE95S1to9LZiN5WOOlwxSjajN26YqwSU+Ndsg+bgy9VZeg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.7" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.5.22", + "@swc/core-darwin-x64": "1.5.22", + "@swc/core-linux-arm-gnueabihf": "1.5.22", + "@swc/core-linux-arm64-gnu": "1.5.22", + "@swc/core-linux-arm64-musl": "1.5.22", + "@swc/core-linux-x64-gnu": "1.5.22", + "@swc/core-linux-x64-musl": "1.5.22", + "@swc/core-win32-arm64-msvc": "1.5.22", + "@swc/core-win32-ia32-msvc": "1.5.22", + "@swc/core-win32-x64-msvc": "1.5.22" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.5.22", + "resolved": "https://registry.npmmirror.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.22.tgz", + "integrity": "sha512-aqiflbmzv8joY/fNpCBe7/YJupoWQHz5dX1YfU3D8Kii5VNZeqsQEXDUEEAFZUwnSce1aoGguX/O/DIxC+1Rlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.5.22", + "resolved": "https://registry.npmmirror.com/@swc/core-darwin-x64/-/core-darwin-x64-1.5.22.tgz", + "integrity": "sha512-U0yddnMZxuZEd2P4RJIcbgu7b9/w0jo0e6I4iL4+MFN1J3IBxPi666xsBDdnsTDGKYHwv+sgFrwcK2gJIL/n6Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.5.22", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.22.tgz", + "integrity": "sha512-gXyPgla7w4QgvTx10XXNAECU+bdJtY8/6jz0IbU6NMiHtCC8NO6my1io5wuDUeUE5KefACpIWmKsKV2ts/uNNA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.5.22", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.22.tgz", + "integrity": "sha512-5UaMgE2onZETZ23xOl2fuql4MtU6HMbAISGTkIKu2U44J/4sINRi7VYiEWdc8ZN/xPcCKpvbqmpZZejf4T4Rtw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.5.22", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.22.tgz", + "integrity": "sha512-t/Rj/afBx5+7cfCtBGmx9V55ckqHh031jglfgJtaAOPRXygz30tavPCVdaOXyJPxjZ2QszYPK43CTOsA4QI+pg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.5.22", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.22.tgz", + "integrity": "sha512-OYn6FZd02iiJOIet6SzvVHsIzpB06biKNJvPPSYbQHZBb2BQbqw6zGwhkrHh8+tFfzL0W0RVOHzp1dJwAgAvlQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.5.22", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.22.tgz", + "integrity": "sha512-DOmY/kTAITzObfXZif7+NzhEb6xrwQriVhogAFjM2//M6QQX3XYU6EazKyBU97FG6jAnU8Xo0CsQ11NVO+P+dA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.5.22", + "resolved": "https://registry.npmmirror.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.22.tgz", + "integrity": "sha512-m+z0a0Kxc27CgMheBfch71vSHAaVu3WOtuTevinRy+kWYIXRAEtCIQK1F7U7Lj06VuTONAtol6ZQb/aywvJiDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.5.22", + "resolved": "https://registry.npmmirror.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.22.tgz", + "integrity": "sha512-96ipznXxSv8jzd22po3++UK4TjKwNb38f2RQjTTYyzry4omuI0fmzBLNVBdEOtw/jSQqouwLHvnezywhXwIk/A==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.5.22", + "resolved": "https://registry.npmmirror.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.22.tgz", + "integrity": "sha512-53pNt9zuD5x8HGjeF4LeVxpZGqkviqfF+idnEJ9alT0aEKaSkxf7iL+RnPsq4lXMIkREE9cCoG0uDoXGwl14dA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true + }, + "node_modules/@swc/types": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/@swc/types/-/types-0.1.7.tgz", + "integrity": "sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ==", + "dev": true, + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.40.0", + "resolved": "https://registry.npmmirror.com/@tanstack/query-core/-/query-core-5.40.0.tgz", + "integrity": "sha512-eD8K8jsOIq0Z5u/QbvOmfvKKE/XC39jA7yv4hgpl/1SRiU+J8QCIwgM/mEHuunQsL87dcvnHqSVLmf9pD4CiaA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.40.0", + "resolved": "https://registry.npmmirror.com/@tanstack/react-query/-/react-query-5.40.0.tgz", + "integrity": "sha512-iv/W0Axc4aXhFzkrByToE1JQqayxTPNotCoSCnarR/A1vDIHaoKpg7FTIfP3Ev2mbKn1yrxq0ZKYUdLEJxs6Tg==", + "dependencies": { + "@tanstack/query-core": "5.40.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "devOptional": true + }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "devOptional": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "devOptional": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmmirror.com/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.0.tgz", + "integrity": "sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==", + "dev": true, + "dependencies": { + "@swc/core": "^1.5.7" + }, + "peerDependencies": { + "vite": "^4 || ^5" + } + }, + "node_modules/@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "dependencies": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.2.5.tgz", + "integrity": "sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==", + "dependencies": { + "@volar/source-map": "2.2.5" + } + }, + "node_modules/@volar/source-map": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-2.2.5.tgz", + "integrity": "sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==", + "dependencies": { + "muggle-string": "^0.4.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dependencies": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.19", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-2.0.19.tgz", + "integrity": "sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==", + "dependencies": { + "@volar/language-core": "~2.2.4", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/@wallet-standard/app": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@wallet-standard/app/-/app-1.0.1.tgz", + "integrity": "sha512-LnLYq2Vy2guTZ8GQKKSXQK3+FRGPil75XEdkZqE6fiLixJhZJoJa5hT7lXxwe0ykVTt9LEThdTbOpT7KadS26Q==", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/base": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@wallet-standard/base/-/base-1.0.1.tgz", + "integrity": "sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w==", + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/core": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@wallet-standard/core/-/core-1.0.3.tgz", + "integrity": "sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==", + "dependencies": { + "@wallet-standard/app": "^1.0.1", + "@wallet-standard/base": "^1.0.1", + "@wallet-standard/features": "^1.0.3", + "@wallet-standard/wallet": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/features": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@wallet-standard/features/-/features-1.0.3.tgz", + "integrity": "sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/wallet": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@wallet-standard/wallet/-/wallet-1.0.1.tgz", + "integrity": "sha512-qkhJeuQU2afQTZ02yMZE5SFc91Fo3hyFjFkpQglHudENNyiSG0oUKcIjky8X32xVSaumgTZSQUAzpXnCTWHzKQ==", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/broadcast-channel": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/broadcast-channel/-/broadcast-channel-3.7.0.tgz", + "integrity": "sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "detect-node": "^2.1.0", + "js-sha3": "0.8.0", + "microseconds": "0.2.0", + "nano-time": "1.0.0", + "oblivious-set": "1.0.0", + "rimraf": "3.0.2", + "unload": "2.2.0" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001625", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001625.tgz", + "integrity": "sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmmirror.com/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/code-red/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "peer": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==" + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.786", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.786.tgz", + "integrity": "sha512-i/A2UB0sxYViMN0M2zIotQFRIOt1jLuVXudACHBDiJ5gGuAUzf/crZxwlBTdA0O52Hy4CNtTzS7AKRAacs/08Q==" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.7", + "resolved": "https://registry.npmmirror.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.7.tgz", + "integrity": "sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrun": { + "version": "3.2.26", + "resolved": "https://registry.npmmirror.com/esrun/-/esrun-3.2.26.tgz", + "integrity": "sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==", + "dependencies": { + "@digitak/grubber": "^3.1.4", + "chokidar": "^3.5.1", + "esbuild": "^0.17.4" + }, + "bin": { + "esrun": "bin.js" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/esrun/node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "engines": { + "node": "*" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gql.tada": { + "version": "1.7.5", + "resolved": "https://registry.npmmirror.com/gql.tada/-/gql.tada-1.7.5.tgz", + "integrity": "sha512-GepPTee+FWSVVZQ7GiJHzsGNo7gOb59kcn4mUPYLlkbpeJfOUwpuoB05ZNaXG0W4qZVPd1I7R2UgMHBjY1lGlQ==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5", + "@gql.tada/cli-utils": "1.3.9", + "@gql.tada/internal": "1.0.0" + }, + "bin": { + "gql-tada": "bin/cli.js", + "gql.tada": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmmirror.com/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "peer": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "peer": true + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmmirror.com/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/match-sorter": { + "version": "6.3.4", + "resolved": "https://registry.npmmirror.com/match-sorter/-/match-sorter-6.3.4.tgz", + "integrity": "sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==", + "dependencies": { + "@babel/runtime": "^7.23.8", + "remove-accents": "0.5.0" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "peer": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/microseconds": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/microseconds/-/microseconds-0.2.0.tgz", + "integrity": "sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + }, + "node_modules/mlly": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.0.tgz", + "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.0", + "ufo": "^1.5.3" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "node_modules/nano-time": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/nano-time/-/nano-time-1.0.0.tgz", + "integrity": "sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==", + "dependencies": { + "big-integer": "^1.6.16" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/navi-sdk": { + "version": "1.1.23", + "resolved": "https://registry.npmmirror.com/navi-sdk/-/navi-sdk-1.1.23.tgz", + "integrity": "sha512-ikTjgPXj6XzTk90j8Fy5cjaIaO1z44Odq+jmI0p27kceX2l50pgHyN3k0oyIffW9Q2/XkWAyoUJzDYVT7W1PRA==", + "dependencies": { + "@mysten/sui.js": "^0.50.1", + "axios": "^1.6.7", + "esrun": "^3.2.26", + "tsconfig-paths": "^4.2.0", + "vitest": "^1.3.1" + } + }, + "node_modules/navi-sdk/node_modules/@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmmirror.com/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/oblivious-set": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/oblivious-set/-/oblivious-set-1.0.0.tgz", + "integrity": "sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/periscopic/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/react-query": { + "version": "3.39.3", + "resolved": "https://registry.npmmirror.com/react-query/-/react-query-3.39.3.tgz", + "integrity": "sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "broadcast-channel": "^3.4.1", + "match-sorter": "^6.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll": { + "version": "2.5.5", + "resolved": "https://registry.npmmirror.com/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", + "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.3", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmmirror.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remove-accents": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/remove-accents/-/remove-accents-0.5.0.tgz", + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==" + }, + "node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svelte": { + "version": "4.2.17", + "resolved": "https://registry.npmmirror.com/svelte/-/svelte-4.2.17.tgz", + "integrity": "sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/svelte2tsx": { + "version": "0.7.9", + "resolved": "https://registry.npmmirror.com/svelte2tsx/-/svelte2tsx-0.7.9.tgz", + "integrity": "sha512-Rm+0LAwg9wT4H2IsR8EaM9EWErTzi9LmuZKxkH5b1ua94XjQmwHstBP4VabLgA9AE6XmwBg+xK7Cjzwfm6ustQ==", + "dependencies": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + }, + "peerDependencies": { + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", + "typescript": "^4.9.4 || ^5.0.0" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==" + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unload": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/unload/-/unload-2.2.0.tgz", + "integrity": "sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==", + "dependencies": { + "@babel/runtime": "^7.6.2", + "detect-node": "^2.0.4" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/vite": { + "version": "4.5.3", + "resolved": "https://registry.npmmirror.com/vite/-/vite-4.5.3.tgz", + "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/vite-node/node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/vite-node/node_modules/vite": { + "version": "5.2.12", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.2.12.tgz", + "integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==", + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "dependencies": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/vitest/node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/vitest/node_modules/vite": { + "version": "5.2.12", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.2.12.tgz", + "integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==", + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/mover/andyous/code/task6/navi-tx/package.json b/mover/andyous/code/task6/navi-tx/package.json new file mode 100644 index 000000000..c5186ac48 --- /dev/null +++ b/mover/andyous/code/task6/navi-tx/package.json @@ -0,0 +1,36 @@ +{ + "name": "my-first-sui-dapp-client", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@mysten/sui.js": "0.54.1", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@suiet/wallet-kit": "^0.2.24", + "@tanstack/react-query": "^5.0.0", + "navi-sdk": "^1.1.23", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } +} diff --git a/mover/andyous/code/task6/navi-tx/prettier.config.cjs b/mover/andyous/code/task6/navi-tx/prettier.config.cjs new file mode 100644 index 000000000..c07541106 --- /dev/null +++ b/mover/andyous/code/task6/navi-tx/prettier.config.cjs @@ -0,0 +1,4 @@ +// eslint-disable-next-line no-undef +module.exports = { + proseWrap: "always", +}; diff --git a/mover/andyous/code/task6/navi-tx/src/App.tsx b/mover/andyous/code/task6/navi-tx/src/App.tsx new file mode 100644 index 000000000..da602cd5a --- /dev/null +++ b/mover/andyous/code/task6/navi-tx/src/App.tsx @@ -0,0 +1,51 @@ +import { Box, Container, Flex, Heading } from "@radix-ui/themes"; +import { WalletStatus } from "./WalletStatus"; +import { ConnectButton, ErrorCode } from "@suiet/wallet-kit"; + +function App() { + return ( + <> + + + dApp Starter Template + + + + { + if ( + error.code === ErrorCode.WALLET__CONNECT_ERROR__USER_REJECTED + ) { + console.warn( + "user rejected the connection to " + error.details?.wallet, + ); + } else { + console.warn("unknown connect error: ", error); + } + }} + /> + + + + + + + + + ); +} + +export default App; diff --git a/mover/andyous/code/task6/navi-tx/src/Navi.tsx b/mover/andyous/code/task6/navi-tx/src/Navi.tsx new file mode 100644 index 000000000..727258499 --- /dev/null +++ b/mover/andyous/code/task6/navi-tx/src/Navi.tsx @@ -0,0 +1,58 @@ +import { useAccountBalance, useWallet } from "@suiet/wallet-kit"; +import { Button } from "@radix-ui/themes"; + +import { depositCoin, borrowCoin } from "navi-sdk/dist/libs/PTB"; +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from "navi-sdk/dist/address"; +import { Sui, USDC } from "navi-sdk/dist/address"; +import { TransactionBlock } from "@mysten/sui.js/transactions"; + +export function Navi() { + const wallet = useWallet(); + const { balance } = useAccountBalance(); + + async function handleNAVISDK() { + if (!wallet.account) return; + const account = wallet.account; + const sender = account.address; + try { + let txb = new TransactionBlock(); + txb.setSender(sender); + + let getCoinInfo = balance; + if (!getCoinInfo) { + throw new Error("Insufficient balance"); + } + + let deposit_amount = 1e9; + let sui_symbol = Sui.symbol; + const pool_sui: PoolConfig = pool[sui_symbol as keyof Pool]; + const [to_deposit] = txb.splitCoins(txb.gas, [deposit_amount]); + await depositCoin(txb, pool_sui, to_deposit, deposit_amount); + + let borrow_amount = 0.053100 * 1e6; + let usdc_symbol = USDC.symbol; + const pool_usdc: PoolConfig = pool[usdc_symbol as keyof Pool]; + const [borrow_coin] = await borrowCoin(txb, pool_usdc, borrow_amount); + + await depositCoin(txb, pool_usdc, borrow_coin, borrow_amount); + + const resData = await wallet.signAndExecuteTransactionBlock({ + transactionBlock: txb, + }); + console.log("transaction digest: " + JSON.stringify(resData)); + } catch (e) { + console.error("Operation failed (see response in the console)", e); + } + } + + if (!wallet.account) { + return; + } + + return ( + + ); +} diff --git a/mover/andyous/code/task6/navi-tx/src/WalletStatus.tsx b/mover/andyous/code/task6/navi-tx/src/WalletStatus.tsx new file mode 100644 index 000000000..89d9ea0c5 --- /dev/null +++ b/mover/andyous/code/task6/navi-tx/src/WalletStatus.tsx @@ -0,0 +1,33 @@ +import { Container, Flex, Heading, Text } from "@radix-ui/themes"; +import { Navi } from "./Navi"; +import { formatSUI, useAccountBalance, useWallet } from "@suiet/wallet-kit"; + +export function WalletStatus() { + const wallet = useWallet(); + const { balance } = useAccountBalance(); + + return ( + + Wallet Status + + {wallet.account ? ( + + Wallet connected + Address: {wallet.account?.address} + current wallet: {wallet.adapter?.name} + current network: {wallet.chain?.name} + + wallet balance:{" "} + {formatSUI(balance ?? 0, { + withAbbr: false, + })}{" "} + SUI + + + ) : ( + Wallet not connected + )} + + + ); +} diff --git a/mover/andyous/code/task6/navi-tx/src/main.tsx b/mover/andyous/code/task6/navi-tx/src/main.tsx new file mode 100644 index 000000000..7d61f2433 --- /dev/null +++ b/mover/andyous/code/task6/navi-tx/src/main.tsx @@ -0,0 +1,18 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "@radix-ui/themes/styles.css"; +import "@suiet/wallet-kit/style.css"; + +import { Theme } from "@radix-ui/themes"; +import App from "./App.tsx"; +import { WalletProvider } from "@suiet/wallet-kit"; + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + + + , +); diff --git a/mover/andyous/code/task6/navi-tx/src/vite-env.d.ts b/mover/andyous/code/task6/navi-tx/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/mover/andyous/code/task6/navi-tx/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mover/andyous/code/task6/navi-tx/tsconfig.json b/mover/andyous/code/task6/navi-tx/tsconfig.json new file mode 100644 index 000000000..a7fc6fbf2 --- /dev/null +++ b/mover/andyous/code/task6/navi-tx/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/andyous/code/task6/navi-tx/tsconfig.node.json b/mover/andyous/code/task6/navi-tx/tsconfig.node.json new file mode 100644 index 000000000..42872c59f --- /dev/null +++ b/mover/andyous/code/task6/navi-tx/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/andyous/code/task6/navi-tx/vite.config.ts b/mover/andyous/code/task6/navi-tx/vite.config.ts new file mode 100644 index 000000000..d366e8c8d --- /dev/null +++ b/mover/andyous/code/task6/navi-tx/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); diff --git a/mover/andyous/notes/readme.md b/mover/andyous/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/andyous/readme.md b/mover/andyous/readme.md new file mode 100644 index 000000000..dcd97479e --- /dev/null +++ b/mover/andyous/readme.md @@ -0,0 +1,54 @@ +## 基本信息 + +- Sui钱包地址: `0x9889d68011a0361ba9643d29989e8078188760584fe39b735f6dce2cffbf0168` + > 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `andyous` + +## 个人简介 + +- 工作经验: 7年 +- 技术栈: `js` `ts` `golang` `rust` + > 重要提示 请认真写自己的简介 +- 多年web2开发经验,主要技术前端技术栈,已经学习了solidity,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `@andyouss` + +## 任务 + +## 01 hello move + +- [] Sui cli version: sui-move 1.23.1 +- [] Sui钱包截图: ![Sui钱包截图](./code/task1/assets/suiw.png) +- [] package id: 0x953c5b67b194d755f702dfc2c674a60b9a67d647b350889dd0a7a7aeaac44ab3 +- [] package id 在 scan上的查看截图:![Scan截图](./code/task1/assets/suiscan.png) + +## 02 move coin + +- [] My Coin package id : 0x49dfecdbc866ef4703fa2652114e91840343280c17e2751805199a3b57142ca5 +- [] Faucet package id : 0x4a4a5635541fed84a05810aea20b7b9b63a375ca9ca8505608a787230073c8ef +- [] 转账 `My Coin` hash: 6aKnmL9CjxGH1QoCCTbR8kH5mxjFcPZa4hPG8GM7ifFQ +- [] `Faucet Coin` address1 mint hash: Eym4gAMy1CTJjBwEBudwsYAbssySYKirG3PaeA1ydJ8P +- [] `Faucet Coin` address2 mint hash: 4wDmmSmQBm79UrDL4gV3ddC8ASDxm892muMj2K65RyYc + +## 03 move NFT + +- [] nft package id :0x7fd8fcaee5a543e1d94e8c51d6ca76047c82054cb6476b943a7728da25e7d7ff +- [] nft object id : 0x0bc03a6899b45cc3011cc05534faece6318800cde4c04e5dcc09fd5612b5c864 +- [] 转账 nft hash: J15pdYvQ12y1MvPoU93bsF4Dw29pXdDEhdidv5m1orkP +- [] scan上的NFT截图:![Scan截图](./code/task3/assets/suinft.png) + +## 04 Move Game + +- [] game package id : 0xd5014cd2aa0fc701db0fe4311f49cd5a9b3f9921f483e28810e4b733d9aa7411 +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap + +- [] swap package id : 0xa64e9799da1a2f8b78191c7b6e9b138200b51e191ef31f6671da13fd3321fc0f +- [] call swap CoinA-> CoinB hash : EGLNVgZT4nYXJ7oxyxBWfVBNYwduCDTyYev1xE9mWyRx +- [] call swap CoinB-> CoinA hash : gt8cV2grbd2cytxi2rqshZ6hgvgZVxWb62xgPD7TSjd + +## 06 Dapp-kit SDK PTB + +- [] save hash : 9QT3SpAHecdZLdvaPh8M6YFXVxJYDjBso9b3UtYb6tY5 diff --git a/mover/antake2333/code/task4/lottery/log/buy_ticket.log b/mover/antake2333/code/task4/lottery/log/buy_ticket.log index 5b2f80f64..c239ddeea 100644 --- a/mover/antake2333/code/task4/lottery/log/buy_ticket.log +++ b/mover/antake2333/code/task4/lottery/log/buy_ticket.log @@ -1,7 +1,7 @@ 分割硬币 -sui client split-coin --coin-id 0xdc21bc6b53180fcba1cb0276667fe9b2061aba4e20907e57c487f5561bf247ae --gas-budget 100000000 --amounts 9000000 -sui client call --function buy_ticket --module lottery --package 0x91e2951c78814e7eed30a3b154356ab151c2d7bc7aa0f0a6d8e986e9224be088 --args 0xccac73f5cc772ee64b47597f59e76508c1cf3e68a4b161349e4d9eef45bf443a 0x56add0d55a319bd6dc73cf33ffd7279bf993196ec7e6d56bb81f895882fb6f00 0x6 --type-args 0x2::sui::SUI --gas-budget 100000000 +sui client split-coin --coin-id 0xdc21bc6b53180fcba1cb0276667fe9b2061aba4e20907e57c487f5561bf247ae --amounts 9000000 +sui client call --function buy_ticket --module lottery --package 0x91e2951c78814e7eed30a3b154356ab151c2d7bc7aa0f0a6d8e986e9224be088 --args 0xccac73f5cc772ee64b47597f59e76508c1cf3e68a4b161349e4d9eef45bf443a 0x56add0d55a319bd6dc73cf33ffd7279bf993196ec7e6d56bb81f895882fb6f00 0x6 --type-args 0x2::sui::SUI [warn] Client/Server api version mismatch, client api version : 1.24.0, server api version : 1.24.1 diff --git a/mover/antake2333/code/task4/lottery/log/create_pool.log b/mover/antake2333/code/task4/lottery/log/create_pool.log index ea9ee4d22..8b9fec5ce 100644 --- a/mover/antake2333/code/task4/lottery/log/create_pool.log +++ b/mover/antake2333/code/task4/lottery/log/create_pool.log @@ -1,4 +1,4 @@ -sui client call --function create_pool --module lottery --package 0x91e2951c78814e7eed30a3b154356ab151c2d7bc7aa0f0a6d8e986e9224be088 --args 0xb09084039ffe08f6cff1656f8b54ba19ecf08a2e6b72402d10aaaad25da8b8ab SUI-24H 1000000 3600000 100 1715241578000 10 8 10000 --type-args 0x2::sui::SUI --gas-budget 100000000 +sui client call --function create_pool --module lottery --package 0x91e2951c78814e7eed30a3b154356ab151c2d7bc7aa0f0a6d8e986e9224be088 --args 0xb09084039ffe08f6cff1656f8b54ba19ecf08a2e6b72402d10aaaad25da8b8ab SUI-24H 1000000 3600000 100 1715241578000 10 8 10000 --type-args 0x2::sui::SUI diff --git a/mover/antake2333/code/task4/lottery/log/publish.log b/mover/antake2333/code/task4/lottery/log/publish.log index 1b4271e92..543c99dbd 100644 --- a/mover/antake2333/code/task4/lottery/log/publish.log +++ b/mover/antake2333/code/task4/lottery/log/publish.log @@ -1,4 +1,4 @@ -sui client publish --gas-budget 100000000; +sui client publish ; 941003040=0.94SUi diff --git a/mover/antake2333/code/task4/lottery/log/settle_pool.log b/mover/antake2333/code/task4/lottery/log/settle_pool.log index 4940a3386..faa0c0ec7 100644 --- a/mover/antake2333/code/task4/lottery/log/settle_pool.log +++ b/mover/antake2333/code/task4/lottery/log/settle_pool.log @@ -1,4 +1,4 @@ -sui client call --function settle_pool --module lottery --package 0x91e2951c78814e7eed30a3b154356ab151c2d7bc7aa0f0a6d8e986e9224be088 --args 0xccac73f5cc772ee64b47597f59e76508c1cf3e68a4b161349e4d9eef45bf443a [1,2,3,4,5,6,4,7] 0x6 --type-args 0x2::sui::SUI --gas-budget 100000000 +sui client call --function settle_pool --module lottery --package 0x91e2951c78814e7eed30a3b154356ab151c2d7bc7aa0f0a6d8e986e9224be088 --args 0xccac73f5cc772ee64b47597f59e76508c1cf3e68a4b161349e4d9eef45bf443a [1,2,3,4,5,6,4,7] 0x6 --type-args 0x2::sui::SUI Transaction Digest: 54dx1iE2HMu5ovWYRimemj3KxSBMMPtCdCAkrB5Z4rKg diff --git a/mover/baicaiyihao/code/task7/1717903519799.jpg b/mover/baicaiyihao/code/task7/1717903519799.jpg new file mode 100644 index 000000000..f146825f1 Binary files /dev/null and b/mover/baicaiyihao/code/task7/1717903519799.jpg differ diff --git a/mover/baicaiyihao/code/task8/1717946259730.jpg b/mover/baicaiyihao/code/task8/1717946259730.jpg new file mode 100644 index 000000000..b43a8ce5f Binary files /dev/null and b/mover/baicaiyihao/code/task8/1717946259730.jpg differ diff --git a/mover/baicaiyihao/readme.md b/mover/baicaiyihao/readme.md index d9bc65811..cb09102a3 100644 --- a/mover/baicaiyihao/readme.md +++ b/mover/baicaiyihao/readme.md @@ -31,3 +31,14 @@ ## 05 Move Swap - [] swap package id : - [] call swap hash: + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./code/task7/1717903519799.jpg) +- [x] flag hash : EEf6hm8Fh6ozFfu4ecFZoEG4UJTk2Go4zgVA7kWaGv8q + +## 08 Move CTF Lets Move +- [x] CLI call 截图 : ![截图](./code/task8/1717946259730.jpg) +- [x] flag hash : 96CGrC5q5J2cTjFL61aRdZDtQu3rzSFdgnpbDuUdYKst \ No newline at end of file diff --git a/mover/beney/readme.md b/mover/beney/readme.md index 798a1918e..7698894e2 100644 --- a/mover/beney/readme.md +++ b/mover/beney/readme.md @@ -34,3 +34,6 @@ ## 06 SDK PTB - [] save hash : 7e965w8s3jVKEgugd15JgHgeQSyv3QsKGeSWqNGpZg98 + +## 07 Move CTF Check In +- [] save hash : 3d4PdH1jJWf5gbgzTkZBQSDpAYfyofVxAFxqdXpmnhE1 diff --git a/mover/bityoume/code/task1_hello_move/README.md b/mover/bityoume/code/task1_hello_move/README.md index ce2df6bb8..d3cb13286 100644 --- a/mover/bityoume/code/task1_hello_move/README.md +++ b/mover/bityoume/code/task1_hello_move/README.md @@ -42,7 +42,7 @@ BUILDING hello_move ```bash $ sui client publish - --gas-budget 100000000 + UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git INCLUDING DEPENDENCY Sui INCLUDING DEPENDENCY MoveStdlib diff --git a/mover/bityoume/code/task2_move_coin/README.md b/mover/bityoume/code/task2_move_coin/README.md index 16426c43f..e10660679 100644 --- a/mover/bityoume/code/task2_move_coin/README.md +++ b/mover/bityoume/code/task2_move_coin/README.md @@ -92,7 +92,7 @@ Active environment switched to [mainnet] ## 合约发布 ```bash -$ sui client publish --gas-budget 100000000 +$ sui client publish UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git INCLUDING DEPENDENCY Sui INCLUDING DEPENDENCY MoveStdlib @@ -359,7 +359,7 @@ $ sui client balance ## 拆分 `My Coin` ```bash -sui client split-coin --coin-id $COIN --amounts 1000 2000 --gas-budget 100000000 +sui client split-coin --coin-id $COIN --amounts 1000 2000 export COIN1=0x1f46de45bd8f75d7eab6349afc048e85f28c0b1e31c3add617ae361f8bbcc41f export COIN2=0xca32f8ef3814d97f64b1d55743adec35496d536297260712ec3916c061bf9e1e diff --git a/mover/bityoume/code/task3_move_nft/README.md b/mover/bityoume/code/task3_move_nft/README.md index a23c8c4b8..6ac5e579f 100644 --- a/mover/bityoume/code/task3_move_nft/README.md +++ b/mover/bityoume/code/task3_move_nft/README.md @@ -103,7 +103,7 @@ module task3::nft_hero{ ## 合约部署 ```bash -$ sui client publish --gas-budget 100000000 +$ sui client publish UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git INCLUDING DEPENDENCY Sui diff --git a/mover/bob9988/code/justctf/db.mv b/mover/bob9988/code/justctf/db.mv new file mode 100644 index 000000000..141a8944a Binary files /dev/null and b/mover/bob9988/code/justctf/db.mv differ diff --git a/mover/bob9988/code/justctf/tos.mv b/mover/bob9988/code/justctf/tos.mv new file mode 100644 index 000000000..b2253ab1d Binary files /dev/null and b/mover/bob9988/code/justctf/tos.mv differ diff --git a/mover/bob9988/code/justctf/woo.mv b/mover/bob9988/code/justctf/woo.mv new file mode 100644 index 000000000..2f3c10ab5 Binary files /dev/null and b/mover/bob9988/code/justctf/woo.mv differ diff --git a/mover/bob9988/code/task1/hello/Move.lock b/mover/bob9988/code/task1/hello/Move.lock new file mode 100644 index 000000000..8bcbfc543 --- /dev/null +++ b/mover/bob9988/code/task1/hello/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "23C730475A68F1E6BEDDB2CD78A3EB131C4A59425643F732B34CA8F439B08D68" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xea133ba50d9e97f0a681d3244ad29ea49f913d66d4ee5e5b632ae2d606ad9f69" +latest-published-id = "0xea133ba50d9e97f0a681d3244ad29ea49f913d66d4ee5e5b632ae2d606ad9f69" +published-version = "1" diff --git a/mover/bob9988/code/task1/hello/Move.toml b/mover/bob9988/code/task1/hello/Move.toml new file mode 100644 index 000000000..f6bf62a02 --- /dev/null +++ b/mover/bob9988/code/task1/hello/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello" +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] +hello = "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/bob9988/code/task1/hello/sources/hello.move b/mover/bob9988/code/task1/hello/sources/hello.move new file mode 100644 index 000000000..3fed04daf --- /dev/null +++ b/mover/bob9988/code/task1/hello/sources/hello.move @@ -0,0 +1,21 @@ +module hello::hello { + + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct HelloObject has key, store { + id: UID, + text: string::String + } + + public entry fun mint(ctx: &mut TxContext) { + let object = HelloObject { + id: object::new(ctx), + text: string::utf8(b"Hello bob9988 !") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } + +} diff --git a/mover/bob9988/code/task1/hello/tests/hello_tests.move b/mover/bob9988/code/task1/hello/tests/hello_tests.move new file mode 100644 index 000000000..34dfcfb57 --- /dev/null +++ b/mover/bob9988/code/task1/hello/tests/hello_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello::hello_tests { + // uncomment this line to import the module + // use hello::hello; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello() { + // pass + } + + #[test, expected_failure(abort_code = ::hello::hello_tests::ENotImplemented)] + fun test_hello_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/bob9988/images/cli.png b/mover/bob9988/images/cli.png new file mode 100644 index 000000000..551527e65 Binary files /dev/null and b/mover/bob9988/images/cli.png differ diff --git a/mover/bob9988/images/p.png b/mover/bob9988/images/p.png new file mode 100644 index 000000000..fa2b7cc3e Binary files /dev/null and b/mover/bob9988/images/p.png differ diff --git a/mover/bob9988/images/w.png b/mover/bob9988/images/w.png new file mode 100644 index 000000000..4b78a25e2 Binary files /dev/null and b/mover/bob9988/images/w.png differ diff --git a/mover/bob9988/notes/readme.md b/mover/bob9988/notes/readme.md new file mode 100644 index 000000000..760055d04 --- /dev/null +++ b/mover/bob9988/notes/readme.md @@ -0,0 +1,6 @@ + +## task1 + +https://suiscan.xyz/testnet/object/0xea133ba50d9e97f0a681d3244ad29ea49f913d66d4ee5e5b632ae2d606ad9f69/contracts + + diff --git a/mover/bob9988/readme.md b/mover/bob9988/readme.md new file mode 100644 index 000000000..e7441f898 --- /dev/null +++ b/mover/bob9988/readme.md @@ -0,0 +1,65 @@ +## 基本信息 +- Sui钱包地址: `0xca84959f8ca55c4d763360ceb5b6afeae4062dfa6e4e927e7efaf48d1e0495a2` +- github: `bob9988` + +## 个人简介 +- 工作经验: 0年 +- 技术栈: `Python` +- 对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `bob9988` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.27.0-homebrew +- [x] Sui钱包截图: ![Sui钱包截图](./images/w.png) +- [x] package id: 0xea133ba50d9e97f0a681d3244ad29ea49f913d66d4ee5e5b632ae2d606ad9f69 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/p.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/cli.png) +- [x] flag hash : GJKZCjHzQUaNL2975FCo5dQiJ7SmXkgZtnmrP6VDm17y + +## 08 Move CTF Lets Move +- [x] proof : 0x3a685c43 +- [x] flag hash : 9FK5Wn1QiAGrMAzhhDMD76jbMFMGR2ftJHH5VLbnVdt8 + +## justctf + +``` +$ cat tos.mv | nc tos.nc.jctf.pro 31337 +[SERVER] Challenge modules published at: 542fe29e11d10314d3330e060c64f8fb9cd341981279432b03b2bd51cf5d489b[SERVER] Solution published at 8655bd078d73e2f0f010889dda6acb8e515c4db4554a161cdda02d3123b8e25c[SERVER] Congrats, flag: justCTF{Th4t_sp3ll_looks_d4ngerous...keep_y0ur_distance} + +$ cat db.mv | nc db.nc.jctf.pro 31337 +[SERVER] Challenge modules published at: 04db9c21c0199c3645b317bd7b12c7cecfcd2a48716a8e2a204fef460c0dd37e[SERVER] Solution published at e0f689404de0ad5622188a2a6c9754b47e6e5e3aa53d83bcd67b827aabd75eb9[SERVER] Congrats, flag: justCTF{I_us3d_to_b3_an_ott3r_until_i_t00k_th4t_arr0w} + +$ cat woo.mv |nc woo.nc.jctf.pro 31337 +[SERVER] Challenge modules published at: c4c8b6eefb675ba752fd89f6e63e40679126d0cfeca86e34df7fc864e8207e46[SERVER] Solution published at 2572cf7f8af849a797cac28c44b67bf0451d5c7564d1c68c018da28e58606443[SERVER] Congrats, flag: justCTF{Ott3r_uses_expl0it_its_sup3r_eff3ctiv3} +``` diff --git a/mover/byte07041/images/sui-scan.png b/mover/byte07041/images/sui-scan.png new file mode 100644 index 000000000..3bae497f6 Binary files /dev/null and b/mover/byte07041/images/sui-scan.png differ diff --git a/mover/byte07041/images/sui.png b/mover/byte07041/images/sui.png new file mode 100644 index 000000000..37809afb4 Binary files /dev/null and b/mover/byte07041/images/sui.png differ diff --git a/mover/byte07041/images/task3.png b/mover/byte07041/images/task3.png new file mode 100644 index 000000000..9eee9f666 Binary files /dev/null and b/mover/byte07041/images/task3.png differ diff --git a/mover/byte07041/readme.md b/mover/byte07041/readme.md new file mode 100644 index 000000000..105a3f2ce --- /dev/null +++ b/mover/byte07041/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x58525026b3f7196a4ae3f6a10cd3128e08ac2b71ab4d14e69050073b0d46bd21` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `byte07041` + +## 个人简介 +- 工作经验: 1年 +- 技术栈: 前端 +> 重要提示 请认真写自己的简介 +- 前端开发, 目前在学习 web3 开发 +- 联系方式: `byte07041@outlook.com` + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.27.0 +- [x] Sui钱包截图: ![Sui钱包截图](./images/sui.png) +- [x] package id: 0x2637b814cf5a557b2623f05906f8022904db1371ab938b3ee49fb2398a025c11 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/sui-scan.png) + +## 02 move coin +- [x] My Coin package id : 0xc8aebebb4e9790a3d43e1651d47d4bd02a90197668617a3fa63dadc96b132239 +- [x] Faucet package id : 0xdd839a1e1d7ab1876ab354d2aaed0e896e1917efdf0bb032dccbabadc715b018 +- [x] 转账 `My Coin` hash: HRS6bwmwQvJnAqUAYYk9aNbwRDjqCQB3JKxAc8sdpNk5 +- [x] `Faucet Coin` address1 mint hash: HZhC3pqi6S6AnBTAe3T93mP5M27HhdvvfyBGpqiesXmn +- [x] `Faucet Coin` address2 mint hash: C3TW3qLfznuPybMtSAVLQyNnHJWzzUTqLoGzA9PMyxUZ + +## 03 move NFT +- [x] nft package id : 0x1ca7d4c55951271b5d188a3079f3144a5cdcd5b13073e048fb19e752dcff4da1 +- [x] nft object id : 0x7955a943be112b8829ae5c89208ce02eff211fdde5e095612253f16ee2b2079b +- [x] 转账 nft hash: ARqzKkQfVxeCrWNJZKqdhojY8Sa7inewxMDcx5qqh7Lu +- [x] scan上的NFT截图: ![Scan截图](./images/task3.png) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : +- [] flag hash : + +## 08 Move CTF Lets Move +- [x] proof : 60244478 +- [x] flag hash : 12HSrFDgCm6uVpNyhMKkMijRyCcpWUqz8XipXjoWL3LR diff --git a/mover/byte07041/task1/Move.lock b/mover/byte07041/task1/Move.lock new file mode 100644 index 000000000..6d2464172 --- /dev/null +++ b/mover/byte07041/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E03D8CCB139FD5AAA6C3DF53281A5C2A7267CEEDE876153DF254B492715959CB" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x2637b814cf5a557b2623f05906f8022904db1371ab938b3ee49fb2398a025c11" +latest-published-id = "0x2637b814cf5a557b2623f05906f8022904db1371ab938b3ee49fb2398a025c11" +published-version = "1" diff --git a/mover/byte07041/task1/Move.toml b/mover/byte07041/task1/Move.toml new file mode 100644 index 000000000..ade8a6442 --- /dev/null +++ b/mover/byte07041/task1/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "hello_move" +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/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] +hello_move = "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/byte07041/task1/sources/hello_move.move b/mover/byte07041/task1/sources/hello_move.move new file mode 100644 index 000000000..e5a9b222f --- /dev/null +++ b/mover/byte07041/task1/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"byte07041"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/byte07041/task1/tests/hello_move_tests.move b/mover/byte07041/task1/tests/hello_move_tests.move new file mode 100644 index 000000000..07ea8bb3f --- /dev/null +++ b/mover/byte07041/task1/tests/hello_move_tests.move @@ -0,0 +1,17 @@ +// #[test_only] +// module hello_move::hello_move_tests { +// // uncomment this line to import the module +// // use hello_move::hello_move; +// +// const ENotImplemented: u64 = 0; +// +// #[test] +// fun test_hello_move() { +// hello_move::hello_move::hello_move(); +// } +// +// #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] +// fun test_hello_move_fail() { +// abort ENotImplemented +// } +// } diff --git a/mover/byte07041/task2/byte07041_coin/Move.lock b/mover/byte07041/task2/byte07041_coin/Move.lock new file mode 100644 index 000000000..557b7b964 --- /dev/null +++ b/mover/byte07041/task2/byte07041_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "53D0305D245AAF7E0FDFFFF55CEB0B10AEB176F012C211BC2518BD0693DD222D" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xc8aebebb4e9790a3d43e1651d47d4bd02a90197668617a3fa63dadc96b132239" +latest-published-id = "0xc8aebebb4e9790a3d43e1651d47d4bd02a90197668617a3fa63dadc96b132239" +published-version = "1" diff --git a/mover/byte07041/task2/byte07041_coin/Move.toml b/mover/byte07041/task2/byte07041_coin/Move.toml new file mode 100644 index 000000000..cbe414efe --- /dev/null +++ b/mover/byte07041/task2/byte07041_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "a_07041_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://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] +a_07041_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/byte07041/task2/byte07041_coin/sources/byte07041_coin.move b/mover/byte07041/task2/byte07041_coin/sources/byte07041_coin.move new file mode 100644 index 000000000..66690cc11 --- /dev/null +++ b/mover/byte07041/task2/byte07041_coin/sources/byte07041_coin.move @@ -0,0 +1,32 @@ + +/// Module: a_07041_coin +module a_07041_coin::a_07041_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + public struct A_07041_COIN has drop {} + fun init(witness: A_07041_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, // 6 decimal places + b"a_07041 coin", // symbol + b"a_07041 coin", // name + b"Awesome Coint", // description + option:: none(), // icon + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} + diff --git a/mover/byte07041/task2/byte07041_faucet/Move.lock b/mover/byte07041/task2/byte07041_faucet/Move.lock new file mode 100644 index 000000000..45ace32a4 --- /dev/null +++ b/mover/byte07041/task2/byte07041_faucet/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "46F73B7A5851983A3FA49BE7CF5BC2B76440DC460AD62ED407F5BB2342D62B81" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xdd839a1e1d7ab1876ab354d2aaed0e896e1917efdf0bb032dccbabadc715b018" +latest-published-id = "0xdd839a1e1d7ab1876ab354d2aaed0e896e1917efdf0bb032dccbabadc715b018" +published-version = "1" diff --git a/mover/byte07041/task2/byte07041_faucet/Move.toml b/mover/byte07041/task2/byte07041_faucet/Move.toml new file mode 100644 index 000000000..c7b2a9e80 --- /dev/null +++ b/mover/byte07041/task2/byte07041_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "a_07041_faucet" +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] +a_07041_faucet = "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/byte07041/task2/byte07041_faucet/sources/byte07041_faucet.move b/mover/byte07041/task2/byte07041_faucet/sources/byte07041_faucet.move new file mode 100644 index 000000000..192340f80 --- /dev/null +++ b/mover/byte07041/task2/byte07041_faucet/sources/byte07041_faucet.move @@ -0,0 +1,48 @@ +/// Module: a_07041_faucet +module a_07041_faucet::a_07041_faucet { + use sui::balance::{Balance}; + use sui::balance; + use sui::coin::{Self, TreasuryCap}; + public struct A_07041_FAUCET has drop {} + public struct PublicWallet has key { + id: UID, + coin: Balance, + faucet_amount: u64, + } + const AMOUNT: u64 = 10^12; + const EFaucetDry: u64 = 1; + #[allow(lint(share_owned))] + fun init(witness: A_07041_FAUCET, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 10, + b"A_07041 Faucet", + b"A_07041 Faucet", + b"Meme Coin", + option::none(), + ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + let wallet = PublicWallet { + id: object::new(ctx), + coin: balance::zero(), + faucet_amount: AMOUNT, + }; + transfer::share_object(wallet); + } + public entry fun mint_faucet( + treasury_cap: &mut TreasuryCap, + amount: u64, + wallet: &mut PublicWallet, + ctx: &mut TxContext) { + let coins = coin::mint(treasury_cap, amount, ctx); + balance::join(&mut wallet.coin, coin::into_balance(coins)); + } + public entry fun get_faucet(wallet: &mut PublicWallet, ctx: &mut TxContext) { + let balance_amount = balance::value(&wallet.coin); + assert!(balance_amount >= wallet.faucet_amount, EFaucetDry); + let mint_balance = balance::split(&mut wallet.coin, wallet.faucet_amount); + let faucet_coin = coin::from_balance(mint_balance, ctx); + transfer::public_transfer(faucet_coin, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/byte07041/task3/nft/Move.lock b/mover/byte07041/task3/nft/Move.lock new file mode 100644 index 000000000..d2dee4164 --- /dev/null +++ b/mover/byte07041/task3/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9D4FCF5807A34E3110DFBA44AD92FEFEC55EE3DE8CF58F3D302F55D3004E70D1" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x1ca7d4c55951271b5d188a3079f3144a5cdcd5b13073e048fb19e752dcff4da1" +latest-published-id = "0x1ca7d4c55951271b5d188a3079f3144a5cdcd5b13073e048fb19e752dcff4da1" +published-version = "1" diff --git a/mover/byte07041/task3/nft/Move.toml b/mover/byte07041/task3/nft/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/byte07041/task3/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/byte07041/task3/nft/sources/nft.move b/mover/byte07041/task3/nft/sources/nft.move new file mode 100644 index 000000000..6cf62f9db --- /dev/null +++ b/mover/byte07041/task3/nft/sources/nft.move @@ -0,0 +1,61 @@ +module nft::nft { + + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"byte07041"), + description: string::utf8(b"byte07041 NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/174679710?v=4" + ) + }; + transfer::public_transfer(nft, recipient); + } +} \ No newline at end of file diff --git a/mover/byte07041/task3/nft/tests/nft_tests.move b/mover/byte07041/task3/nft/tests/nft_tests.move new file mode 100644 index 000000000..1e3625fad --- /dev/null +++ b/mover/byte07041/task3/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/byteccnet/code/readme.md b/mover/byteccnet/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/byteccnet/code/task1/hello_move/Move.lock b/mover/byteccnet/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..8c13c23e7 --- /dev/null +++ b/mover/byteccnet/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x51ab03c2a6fc6c68a8c7af3bacb002dc3f77a380cbf82eb82acd486c86519b12" +latest-published-id = "0x51ab03c2a6fc6c68a8c7af3bacb002dc3f77a380cbf82eb82acd486c86519b12" +published-version = "1" diff --git a/mover/byteccnet/code/task1/hello_move/Move.toml b/mover/byteccnet/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/byteccnet/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/byteccnet/code/task1/hello_move/sources/hello_move.move b/mover/byteccnet/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..b5d918820 --- /dev/null +++ b/mover/byteccnet/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,25 @@ +/* +/// Module: hello_move +module hello_move::hello_move { + +} +*/ +module hello_move::hello_move { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"byteccnet"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/byteccnet/code/task1/hello_move/tests/hello_move_tests.move b/mover/byteccnet/code/task1/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/byteccnet/code/task1/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/byteccnet/code/task2/byteccnet_coin/Move.lock b/mover/byteccnet/code/task2/byteccnet_coin/Move.lock new file mode 100644 index 000000000..41fef4f86 --- /dev/null +++ b/mover/byteccnet/code/task2/byteccnet_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E98DBBCB5F23E0DE29E821AEBA35068E8E66BBDAD32ED191B8DD10FEDEB5DF95" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x5f20bae836f24d1d5250582adeb856d754dff30440faed48a873bcfabf732b0a" +latest-published-id = "0x5f20bae836f24d1d5250582adeb856d754dff30440faed48a873bcfabf732b0a" +published-version = "1" diff --git a/mover/byteccnet/code/task2/byteccnet_coin/Move.toml b/mover/byteccnet/code/task2/byteccnet_coin/Move.toml new file mode 100644 index 000000000..0724a2ab4 --- /dev/null +++ b/mover/byteccnet/code/task2/byteccnet_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "byteccnet_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://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] +byteccnet_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/byteccnet/code/task2/byteccnet_coin/sources/byteccnet_coin.move b/mover/byteccnet/code/task2/byteccnet_coin/sources/byteccnet_coin.move new file mode 100644 index 000000000..2d56ae3d8 --- /dev/null +++ b/mover/byteccnet/code/task2/byteccnet_coin/sources/byteccnet_coin.move @@ -0,0 +1,35 @@ +/* +/// Module: byteccnet_coin +module byteccnet_coin::byteccnet_coin { + +} +*/ +module byteccnet_coin::byteccnet_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + public struct BYTECCNET_COIN has drop {} + fun init(witness: BYTECCNET_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, // decimals + b"byteccnet COIN", // symbol + b"byteccnet COIN", // name + b"Amazing Coin", // description + option:: none(), // icon url + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/byteccnet/code/task2/byteccnet_coin/tests/byteccnet_coin_tests.move b/mover/byteccnet/code/task2/byteccnet_coin/tests/byteccnet_coin_tests.move new file mode 100644 index 000000000..c1f3e982f --- /dev/null +++ b/mover/byteccnet/code/task2/byteccnet_coin/tests/byteccnet_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module byteccnet_coin::byteccnet_coin_tests { + // uncomment this line to import the module + // use byteccnet_coin::byteccnet_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_byteccnet_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::byteccnet_coin::byteccnet_coin_tests::ENotImplemented)] + fun test_byteccnet_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/byteccnet/code/task2/byteccnet_faucet/Move.lock b/mover/byteccnet/code/task2/byteccnet_faucet/Move.lock new file mode 100644 index 000000000..700297698 --- /dev/null +++ b/mover/byteccnet/code/task2/byteccnet_faucet/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "3C325D76F1BBDAF5CF64821E9DB2A4F8063657ABF588FC518BE3617AD37AB4EB" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x0620181792f9d9dc1ae4ada2ac8cb48e05e6c1e3f8060950cdbc66a55a5d90ab" +latest-published-id = "0x0620181792f9d9dc1ae4ada2ac8cb48e05e6c1e3f8060950cdbc66a55a5d90ab" +published-version = "1" diff --git a/mover/byteccnet/code/task2/byteccnet_faucet/Move.toml b/mover/byteccnet/code/task2/byteccnet_faucet/Move.toml new file mode 100644 index 000000000..7bf1ddce7 --- /dev/null +++ b/mover/byteccnet/code/task2/byteccnet_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "byteccnet_faucet" +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] +byteccnet_faucet = "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/byteccnet/code/task2/byteccnet_faucet/sources/byteccnet_faucet.move b/mover/byteccnet/code/task2/byteccnet_faucet/sources/byteccnet_faucet.move new file mode 100644 index 000000000..319042cda --- /dev/null +++ b/mover/byteccnet/code/task2/byteccnet_faucet/sources/byteccnet_faucet.move @@ -0,0 +1,53 @@ +/* +/// Module: byteccnet_faucet +module byteccnet_faucet::byteccnet_faucet { + +} +*/ +module byteccnet_faucet::byteccnet_faucet { + use sui::balance::{Balance}; + use sui::balance; + use sui::coin::{Self, TreasuryCap}; + public struct BYTECCNET_FAUCET has drop {} + public struct PublicWallet has key { + id: UID, + coin: Balance, + faucet_amount: u64, + } + const AMOUNT: u64 = 10^12; + const EFaucetDry: u64 = 1; + #[allow(lint(share_owned))] + fun init(witness: BYTECCNET_FAUCET, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 10, + b"byteccnet Faucet", + b"byteccnet Faucet", + b"Get some free coin", + option::none(), + ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + let wallet = PublicWallet { + id: object::new(ctx), + coin: balance::zero(), + faucet_amount: AMOUNT, + }; + transfer::share_object(wallet); + } + public entry fun mint_faucet( + treasury_cap: &mut TreasuryCap, + amount: u64, + wallet: &mut PublicWallet, + ctx: &mut TxContext) { + let coins = coin::mint(treasury_cap, amount, ctx); + balance::join(&mut wallet.coin, coin::into_balance(coins)); + } + public entry fun get_faucet(wallet: &mut PublicWallet, ctx: &mut TxContext) { + let balance_amount = balance::value(&wallet.coin); + assert!(balance_amount >= wallet.faucet_amount, EFaucetDry); + let mint_balance = balance::split(&mut wallet.coin, wallet.faucet_amount); + let faucet_coin = coin::from_balance(mint_balance, ctx); + transfer::public_transfer(faucet_coin, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/byteccnet/code/task2/byteccnet_faucet/tests/byteccnet_faucet_tests.move b/mover/byteccnet/code/task2/byteccnet_faucet/tests/byteccnet_faucet_tests.move new file mode 100644 index 000000000..78d7975e1 --- /dev/null +++ b/mover/byteccnet/code/task2/byteccnet_faucet/tests/byteccnet_faucet_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module byteccnet_faucet::byteccnet_faucet_tests { + // uncomment this line to import the module + // use byteccnet_faucet::byteccnet_faucet; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_byteccnet_faucet() { + // pass + } + + #[test, expected_failure(abort_code = ::byteccnet_faucet::byteccnet_faucet_tests::ENotImplemented)] + fun test_byteccnet_faucet_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/byteccnet/code/task3/nft/Move.lock b/mover/byteccnet/code/task3/nft/Move.lock new file mode 100644 index 000000000..d8c3c3d29 --- /dev/null +++ b/mover/byteccnet/code/task3/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9D4FCF5807A34E3110DFBA44AD92FEFEC55EE3DE8CF58F3D302F55D3004E70D1" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x31614f464188e24c02bc2a59d31ae830d63b9447c7006b17fb816e2161d3d0a9" +latest-published-id = "0x31614f464188e24c02bc2a59d31ae830d63b9447c7006b17fb816e2161d3d0a9" +published-version = "1" diff --git a/mover/byteccnet/code/task3/nft/Move.toml b/mover/byteccnet/code/task3/nft/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/byteccnet/code/task3/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/byteccnet/code/task3/nft/sources/nft.move b/mover/byteccnet/code/task3/nft/sources/nft.move new file mode 100644 index 000000000..53ec9648e --- /dev/null +++ b/mover/byteccnet/code/task3/nft/sources/nft.move @@ -0,0 +1,66 @@ +/* +/// Module: nft +module nft::nft { + +} +*/ +module nft::nft { + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"byteccnet"), + description: string::utf8(b"byteccnet NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/173048792?v=4" + ) + }; + transfer::public_transfer(nft, recipient); + } +} diff --git a/mover/byteccnet/code/task3/nft/tests/nft_tests.move b/mover/byteccnet/code/task3/nft/tests/nft_tests.move new file mode 100644 index 000000000..1e3625fad --- /dev/null +++ b/mover/byteccnet/code/task3/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/byteccnet/code/task7/task7.png b/mover/byteccnet/code/task7/task7.png new file mode 100644 index 000000000..3ccb7ffa1 Binary files /dev/null and b/mover/byteccnet/code/task7/task7.png differ diff --git a/mover/byteccnet/images/task1package.png b/mover/byteccnet/images/task1package.png new file mode 100644 index 000000000..a05c09f2d Binary files /dev/null and b/mover/byteccnet/images/task1package.png differ diff --git a/mover/byteccnet/images/task1wallet.png b/mover/byteccnet/images/task1wallet.png new file mode 100644 index 000000000..ad4b8963d Binary files /dev/null and b/mover/byteccnet/images/task1wallet.png differ diff --git a/mover/byteccnet/images/task3nft.png b/mover/byteccnet/images/task3nft.png new file mode 100644 index 000000000..680cc66c1 Binary files /dev/null and b/mover/byteccnet/images/task3nft.png differ diff --git a/mover/byteccnet/images/task7.png b/mover/byteccnet/images/task7.png new file mode 100644 index 000000000..3ccb7ffa1 Binary files /dev/null and b/mover/byteccnet/images/task7.png differ diff --git a/mover/byteccnet/notes/readme.md b/mover/byteccnet/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/byteccnet/readme.md b/mover/byteccnet/readme.md new file mode 100644 index 000000000..884d9ad98 --- /dev/null +++ b/mover/byteccnet/readme.md @@ -0,0 +1,53 @@ +## 基本信息 +- Sui钱包地址: `0x843bb744061732c64cb2b982697aa15e18386eebb0ee97eb58bec46235fc7228` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `byteccnet` + +## 个人简介 +- 工作经验: 1年 +- 技术栈: `kotlin` +- Android 开发者,想学习 Web3 知识拓展自己技术能力,还有扩展视野。 + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.27.0-homebrew +- [x] Sui钱包截图: ![Sui钱包截图](./images/task1wallet.png) +- [x] package id: 0x51ab03c2a6fc6c68a8c7af3bacb002dc3f77a380cbf82eb82acd486c86519b12 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/task1package.png) + +## 02 move coin +- [] My Coin package id : 0x5f20bae836f24d1d5250582adeb856d754dff30440faed48a873bcfabf732b0a +- [] Faucet package id : 0x0620181792f9d9dc1ae4ada2ac8cb48e05e6c1e3f8060950cdbc66a55a5d90ab +- [] 转账 `My Coin` hash: 3U4yWbxq7UiLMs74uneQwDHke14JN68q3pyvP96CQYRi +- [] `Faucet Coin` address1 mint hash: 9LsdYsc5DhT3aCx2cGVUoLXNWEDVbd4dgEspdiDj8Stp +- [] `Faucet Coin` address2 mint hash: AVahmELwDGwhu8jttVTYiKzdNvjhPWZFNfaL5Nntoz1m + + +## 03 move NFT +- [] nft package id : 0x31614f464188e24c02bc2a59d31ae830d63b9447c7006b17fb816e2161d3d0a9 +- [] nft object id : 0xb8a76e3d511de7f0bf65ca270f0f478ce7b106dcc933e08c7920089ad07a5b3e +- [] 转账 nft hash: 6sJrvvv6bD1xi5CWbuF62KJyKPU8a9gZfTKnc3HZysSJ +- [] mint 到自己地址的截图 hash:GoEeHBNF82DRt73XrUFKEi32UCt5W8Kr9U88cy1UVyxB 以及截图:![截图](./images/task3nft.png) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/task7.png) +- [x] flag hash : FwwTTCa7aetzB1LdNTaRooQWCh8wJCp8GH6g9jcwBvWM + +## 08 Move CTF Lets Move +- [] proof : 80241658 +- [] flag hash : 2qxsB1CFiemTB7JZrw5JEz8hPJDKXbbi1KPAaZMyF8Xm diff --git a/mover/bytesloop/code/readme.md b/mover/bytesloop/code/readme.md index 8f57c54f1..a76771fe3 100644 --- a/mover/bytesloop/code/readme.md +++ b/mover/bytesloop/code/readme.md @@ -1,17 +1,60 @@ - 创建项目 - sui move new hello_move -- 发布上链 - sui client publish --gas-budget 100000000 -- 调用合约 - sui client call --package 0x90f7990609a98035510af1a81f183f77c8d1c8bfd11148fc33b4a7d78d96c25d --module task1_hello_bytesloop --function init --gas-budget 100000000 -- 铸造BMC代币 - sui client call --package 0x603c23f1529f80fe07aa0f0e63c42780de82f2d18089f6369519b4886efa22c6 --module byte_move_coin --function mint --gas-budget 100000000 --args 0xc3a7d9817d8792302abd2f77122be820e633c423cfc1a8428dbc8f912014fcbc 10000 0x51479dc0018ee6664b280c84b55dc31dad66911067968a4e0b4685314b183d56 (小数位是2, 10000最后会等于 100) -- 铸造BFC代币 - sui client call --package 0x603c23f1529f80fe07aa0f0e63c42780de82f2d18089f6369519b4886efa22c6 --module byte_faucet_coin --function mint --gas-budget 100000000 --args 0x07f35029c8458cb5b8c6628574a03b8ab07aed0bd58005f2d44f202e978306c7 10000 0x51479dc0018ee6664b280c84b55dc31dad66911067968a4e0b4685314b183d56 (在线领取 https://suiscan.xyz/testnet/object/0x603c23f1529f80fe07aa0f0e63c42780de82f2d18089f6369519b4886efa22c6/contracts) -- mint nft - sui client call --package 0x193452b4288caed0e35a8a1470753d722e41ece22d8da082183179fd2896db83 --module bytesloop_nft --function mint --gas-budget 100000000 --args BYTESLOOPNFT "https://avatars.githubusercontent.com/u/2389412?v=4" +- 发布上链 - sui client publish +- 调用合约 - sui client call --package 0x90f7990609a98035510af1a81f183f77c8d1c8bfd11148fc33b4a7d78d96c25d --module task1_hello_bytesloop --function init +- 铸造BMC代币 - sui client call --package 0x603c23f1529f80fe07aa0f0e63c42780de82f2d18089f6369519b4886efa22c6 --module byte_move_coin --function mint --args 0xc3a7d9817d8792302abd2f77122be820e633c423cfc1a8428dbc8f912014fcbc 10000 0x51479dc0018ee6664b280c84b55dc31dad66911067968a4e0b4685314b183d56 (小数位是2, 10000最后会等于 100) +- 铸造BFC代币 - sui client call --package 0x603c23f1529f80fe07aa0f0e63c42780de82f2d18089f6369519b4886efa22c6 --module byte_faucet_coin --function mint --args 0x07f35029c8458cb5b8c6628574a03b8ab07aed0bd58005f2d44f202e978306c7 10000 0x51479dc0018ee6664b280c84b55dc31dad66911067968a4e0b4685314b183d56 (在线领取 https://suiscan.xyz/testnet/object/0x603c23f1529f80fe07aa0f0e63c42780de82f2d18089f6369519b4886efa22c6/contracts) +- mint nft - sui client call --package 0x193452b4288caed0e35a8a1470753d722e41ece22d8da082183179fd2896db83 --module bytesloop_nft --function mint --args BYTESLOOPNFT "https://avatars.githubusercontent.com/u/2389412?v=4" ## task4_move_game -- 发布上链 - sui client publish --gas-budget 100000000 --skip-dependency-verification +- 发布上链 - sui client publish --skip-dependency-verification - PackageID: 0x7797f82b4284b393f7a4add26439cc8bac3147bd96a4d077fed33cecc41c4c36 - AdminCap: 0x6e0d14106ec3f628773c815396765ac2cf7cdcf13d462902c2295db9c49c4a5a - Game: 0xc90108000890fe94cf334ffa7808c624c845a3408cd449c9910d8f32a7858481 -- Get Faucet Coin: sui client call --package 0x7797f82b4284b393f7a4add26439cc8bac3147bd96a4d077fed33cecc41c4c36 --module bytesloop_game --function get_faucet_coin --args 0x07f35029c8458cb5b8c6628574a03b8ab07aed0bd58005f2d44f202e978306c7 1000000000 --gas-budget 100000000 -- Deposit: sui client call --package 0x7797f82b4284b393f7a4add26439cc8bac3147bd96a4d077fed33cecc41c4c36 --module bytesloop_game --function deposit --args 0xc90108000890fe94cf334ffa7808c624c845a3408cd449c9910d8f32a7858481 0xb0cb8b97e8f8b807f98ee9e66bf254348d504cc7792f393b66033a764f206254 500000000 --gas-budget 100000000 -- Play: sui client call --package 0x7797f82b4284b393f7a4add26439cc8bac3147bd96a4d077fed33cecc41c4c36 --module bytesloop_game --function play --args 2 0xc90108000890fe94cf334ffa7808c624c845a3408cd449c9910d8f32a7858481 0x9c76d90e10a99159ead35857ce08cc76008bd3ad9bfa608acc223597d862bf10 0x6 --gas-budget 100000000 \ No newline at end of file +- Get Faucet Coin: sui client call --package 0x7797f82b4284b393f7a4add26439cc8bac3147bd96a4d077fed33cecc41c4c36 --module bytesloop_game --function get_faucet_coin --args 0x07f35029c8458cb5b8c6628574a03b8ab07aed0bd58005f2d44f202e978306c7 1000000000 +- Deposit: sui client call --package 0x7797f82b4284b393f7a4add26439cc8bac3147bd96a4d077fed33cecc41c4c36 --module bytesloop_game --function deposit --args 0xc90108000890fe94cf334ffa7808c624c845a3408cd449c9910d8f32a7858481 0xb0cb8b97e8f8b807f98ee9e66bf254348d504cc7792f393b66033a764f206254 500000000 +- Play: sui client call --package 0x7797f82b4284b393f7a4add26439cc8bac3147bd96a4d077fed33cecc41c4c36 --module bytesloop_game --function play --args 2 0xc90108000890fe94cf334ffa7808c624c845a3408cd449c9910d8f32a7858481 0x9c76d90e10a99159ead35857ce08cc76008bd3ad9bfa608acc223597d862bf10 0x6 + + +## task5_move_swap + +- 发布上链 - sui client publish --skip-dependency-verification +- PackageID: 0x29cd0bf0b0cc54132acbf0cdae4bd21ce15e29a46d9acd2fcecdbca85d8c7258 +- AdminCap: 0xe775fbed2789ec27c709d5fe84c16bd8ed07271250e55650b77380856b6897d3 +- Bank: 0x3ada5d09b7132bf3582fb7f7a13dab8f1c9a65d97000fdec6d70ddbdee51c4dc + +- 获取并存入1亿USD和1亿RMB +- Get USD (byte_move_coin) - sui client call --package 0x603c23f1529f80fe07aa0f0e63c42780de82f2d18089f6369519b4886efa22c6 --module byte_move_coin --function mint --args 0xc3a7d9817d8792302abd2f77122be820e633c423cfc1a8428dbc8f912014fcbc 10000000000 0x51479dc0018ee6664b280c84b55dc31dad66911067968a4e0b4685314b183d56 --gas-budget 5000000 +- USD ObjectID - 0xe1908265b80b72542d1374af2d0b781d397cc88cc42a6df8d7e5a0fc7f13736a +- Get RMB (byte_faucet_coin) - sui client call --package 0x603c23f1529f80fe07aa0f0e63c42780de82f2d18089f6369519b4886efa22c6 --module byte_faucet_coin --function mint --args 0x07f35029c8458cb5b8c6628574a03b8ab07aed0bd58005f2d44f202e978306c7 10000000000 0x51479dc0018ee6664b280c84b55dc31dad66911067968a4e0b4685314b183d56 --gas-budget 5000000 +- RMB ObjectID - 0x8f4b44726d2a83223db2e4316c2431d597703e9037b9fcad6efe7af2ca999785 +- Deposit USD - sui client call --package 0x29cd0bf0b0cc54132acbf0cdae4bd21ce15e29a46d9acd2fcecdbca85d8c7258 --module bytesloop_swap --function deposit_USD --args 0x3ada5d09b7132bf3582fb7f7a13dab8f1c9a65d97000fdec6d70ddbdee51c4dc 0xe1908265b80b72542d1374af2d0b781d397cc88cc42a6df8d7e5a0fc7f13736a --gas-budget 5000000 +- Deposit RMB - sui client call --package 0x29cd0bf0b0cc54132acbf0cdae4bd21ce15e29a46d9acd2fcecdbca85d8c7258 --module bytesloop_swap --function deposit_RMB --args 0x3ada5d09b7132bf3582fb7f7a13dab8f1c9a65d97000fdec6d70ddbdee51c4dc 0x8f4b44726d2a83223db2e4316c2431d597703e9037b9fcad6efe7af2ca999785 --gas-budget 5000000 + +- Get USD to swap - sui client call --package 0x603c23f1529f80fe07aa0f0e63c42780de82f2d18089f6369519b4886efa22c6 --module byte_move_coin --function mint --args 0xc3a7d9817d8792302abd2f77122be820e633c423cfc1a8428dbc8f912014fcbc 200000000 0x51479dc0018ee6664b280c84b55dc31dad66911067968a4e0b4685314b183d56 --gas-budget 5000000 ( +Object ID - 0xd6240a8aa63169c0fdc868fc30ff45312c1aa56fcfd6b2249547182e59183468) +- swap usd to rmb - sui client call --package 0x29cd0bf0b0cc54132acbf0cdae4bd21ce15e29a46d9acd2fcecdbca85d8c7258 --module bytesloop_swap --function swap_usd2rmb --args 0x3ada5d09b7132bf3582fb7f7a13dab8f1c9a65d97000fdec6d70ddbdee51c4dc 0xd6240a8aa63169c0fdc868fc30ff45312c1aa56fcfd6b2249547182e59183468 --gas-budget 5000000 +- https://suiscan.xyz/testnet/tx/C3znaEcZTqiqtaVCfwMxip7DvbkhCewYcDkYiaT1wgMF RMB ObjectID: 0xe7ef4ecfc81cb4b5f1da57963b9c9e3b37a4e921c9ea5d16bbab312e2776abd1 +- swap rmb to usd - sui client call --package 0x29cd0bf0b0cc54132acbf0cdae4bd21ce15e29a46d9acd2fcecdbca85d8c7258 --module bytesloop_swap --function swap_rmb2usd --args 0x3ada5d09b7132bf3582fb7f7a13dab8f1c9a65d97000fdec6d70ddbdee51c4dc 0xe7ef4ecfc81cb4b5f1da57963b9c9e3b37a4e921c9ea5d16bbab312e2776abd1 --gas-budget 5000000 +- https://suiscan.xyz/testnet/tx/9zr3rEQabQfyn94gFZtEDM6SUUqgd32ftgkKVzdWiU9o USD ObjectID: 0xd57fd1ecf6f9957ddd4ae9745454ce471dabf037c636616bf941d8da154dae6b + + +## task7_move_ctf_check_in + +- check_in.move - https://github.com/move-cn/letsmove-ctf/blob/main/src/01_check_in/check_in/sources/check_in.move +- 合约部署地址: https://testnet.suivision.xyz/package/0x60695ee31f93add1f79909c884a55dff7e5f140bbd2e495819966bd2f7971d42 +- FlagStr: https://testnet.suivision.xyz/object/0x011f9404e6f167e549b617a53eea058029167a2beac26c624cbc3550e04b5ad2 (rW~-fs`.8E:-E'7LZWqCj5) 每次执行成功都会更新FlagStr +- random: 0x8 +- github id: bytesloop +- CLI call: sui client call --package 0x60695ee31f93add1f79909c884a55dff7e5f140bbd2e495819966bd2f7971d42 --module check_in --function get_flag --args "rW~-fs`.8E:-E'7LZWqCj5" "bytesloop" 0x011f9404e6f167e549b617a53eea058029167a2beac26c624cbc3550e04b5ad2 0x8 --gas-budget 10000000 + + +## task8_move_ctf_pow + +- lets_move.move - https://github.com/move-cn/letsmove-ctf/blob/main/src/02_lets_move/lets_move/sources/lets_move.move +- 合约部署地址: https://testnet.suivision.xyz/package/0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f +- Challenge Object: https://testnet.suivision.xyz/object/0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 (uMKz'lr#*kw][z/CAvOZ) +- random: 0x8 +- github id: bytesloop +- CLI call: sui client call --package 0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f --module lets_move --function get_flag --args 6d2f21242436127de875 "bytesloop" 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 0x8 --gas-budget 10000000 \ No newline at end of file diff --git a/mover/bytesloop/code/task5_move_swap/Move.lock b/mover/bytesloop/code/task5_move_swap/Move.lock new file mode 100644 index 000000000..678e2dfec --- /dev/null +++ b/mover/bytesloop/code/task5_move_swap/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "63A6A7450834B2F6377C131F7AABC3226A4E6E9B277F2AAF91C4FB4EEDDD29F9" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "task2_move_coin" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { local = "F:\\GitCode\\Move\\sui\\crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { local = "F:\\GitCode\\Move\\sui\\crates\\sui-framework\\packages\\sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "task2_move_coin" +source = { local = "..\\task2_move_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x29cd0bf0b0cc54132acbf0cdae4bd21ce15e29a46d9acd2fcecdbca85d8c7258" +latest-published-id = "0x29cd0bf0b0cc54132acbf0cdae4bd21ce15e29a46d9acd2fcecdbca85d8c7258" +published-version = "1" diff --git a/mover/bytesloop/code/task5_move_swap/Move.toml b/mover/bytesloop/code/task5_move_swap/Move.toml new file mode 100644 index 000000000..1d69e8b98 --- /dev/null +++ b/mover/bytesloop/code/task5_move_swap/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "task5_move_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 (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" } +Sui = { local = "F:/GitCode/Move/sui/crates/sui-framework/packages/sui-framework" } +task2_move_coin = { local = "../task2_move_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_move_swap = "0x29cd0bf0b0cc54132acbf0cdae4bd21ce15e29a46d9acd2fcecdbca85d8c7258" +task2_move_coin = "0x603c23f1529f80fe07aa0f0e63c42780de82f2d18089f6369519b4886efa22c6" + +# 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/bytesloop/code/task5_move_swap/sources/bytesloop_swap.move b/mover/bytesloop/code/task5_move_swap/sources/bytesloop_swap.move new file mode 100644 index 000000000..9f36f9287 --- /dev/null +++ b/mover/bytesloop/code/task5_move_swap/sources/bytesloop_swap.move @@ -0,0 +1,75 @@ +/// Module: task5_move_swap +module task5_move_swap::bytesloop_swap { + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin}; + use sui::tx_context::sender; + use task2_move_coin::byte_move_coin::BYTE_MOVE_COIN; + use task2_move_coin::byte_faucet_coin::BYTE_FAUCET_COIN; + + // 银行提供换汇服务 汇率: 1 USD = 7 RMB + public struct Bank has key { + id: UID, + USD: Balance, + RMB: Balance, + rate: u64, + } + + public struct AdminCap has key { + id: UID, + } + + public fun get_rate(bank: &Bank): u64 { + bank.rate + } + + public entry fun set_rate(_: &AdminCap, bank: &mut Bank, rate: u64, _: &mut TxContext) { + bank.rate = rate; + } + + fun init(ctx: &mut TxContext) { + let bank = Bank { + id: object::new(ctx), + USD: balance::zero(), + RMB: balance::zero(), + rate: 7, + }; + transfer::share_object(bank); + + let admin_cap = AdminCap { id: object::new(ctx) }; + transfer::transfer(admin_cap, sender(ctx)); + } + + + public entry fun deposit_RMB(bank:&mut Bank,rmb:Coin,_:&mut TxContext){ + balance::join(&mut bank.RMB,coin::into_balance(rmb)); + } + + public entry fun deposit_USD(bank:&mut Bank,usd:Coin,_:&mut TxContext){ + balance::join(&mut bank.USD,coin::into_balance(usd)); + } + + public entry fun swap_usd2rmb(bank: &mut Bank, usd: Coin, ctx: &mut TxContext) { + let usd_amount = coin::value(&usd); + let rmb_amount = usd_amount * bank.rate; + + balance::join(&mut bank.USD, coin::into_balance(usd)); + + let rmb_balance = balance::split(&mut bank.RMB, rmb_amount); + let rmb = coin::from_balance(rmb_balance, ctx); + + transfer::public_transfer(rmb, sender(ctx)); + } + + public entry fun swap_rmb2usd(bank: &mut Bank, rmb: Coin, ctx: &mut TxContext) { + let rmb_amount = coin::value(&rmb); + let usd_amount = rmb_amount / bank.rate; + + balance::join(&mut bank.RMB, coin::into_balance(rmb)); + + let usd_balance = balance::split(&mut bank.USD, usd_amount); + let usd = coin::from_balance(usd_balance, ctx); + + transfer::public_transfer(usd, sender(ctx)); + } +} + diff --git a/mover/bytesloop/code/task5_move_swap/tests/task5_move_swap_tests.move b/mover/bytesloop/code/task5_move_swap/tests/task5_move_swap_tests.move new file mode 100644 index 000000000..04b2220ac --- /dev/null +++ b/mover/bytesloop/code/task5_move_swap/tests/task5_move_swap_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task5_move_swap::task5_move_swap_tests { + // uncomment this line to import the module + // use task5_move_swap::task5_move_swap; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task5_move_swap() { + // pass + } + + #[test, expected_failure(abort_code = ::task5_move_swap::task5_move_swap_tests::ENotImplemented)] + fun test_task5_move_swap_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/bytesloop/code/task6_sdk_ptb/README.md b/mover/bytesloop/code/task6_sdk_ptb/README.md new file mode 100644 index 000000000..d0889dcae --- /dev/null +++ b/mover/bytesloop/code/task6_sdk_ptb/README.md @@ -0,0 +1,35 @@ +# 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/) +- [`@mysten/dapp-kit`](https://sdk.mystenlabs.com/dapp-kit) for connecting to + wallets and loading data +- [pnpm](https://pnpm.io/) for package management + +## 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 +``` diff --git a/mover/bytesloop/code/task6_sdk_ptb/index.html b/mover/bytesloop/code/task6_sdk_ptb/index.html new file mode 100644 index 000000000..bb7f75b16 --- /dev/null +++ b/mover/bytesloop/code/task6_sdk_ptb/index.html @@ -0,0 +1,59 @@ + + + + + + + Sui dApp Starter + + + + +
+ + + diff --git a/mover/bytesloop/code/task6_sdk_ptb/package-lock.json b/mover/bytesloop/code/task6_sdk_ptb/package-lock.json new file mode 100644 index 000000000..d9ba499cb --- /dev/null +++ b/mover/bytesloop/code/task6_sdk_ptb/package-lock.json @@ -0,0 +1,10095 @@ +{ + "name": "sui-navi-ptb", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "sui-navi-ptb", + "version": "0.0.0", + "dependencies": { + "@mysten/dapp-kit": "0.14.3", + "@mysten/sui": "1.0.3", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@suiet/wallet-kit": "^0.2.24", + "@tanstack/react-query": "^5.0.0", + "navi-sdk": "^1.1.23", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } + }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, + "node_modules/@0no-co/graphqlsp": { + "version": "1.12.5", + "resolved": "https://registry.npmjs.org/@0no-co/graphqlsp/-/graphqlsp-1.12.5.tgz", + "integrity": "sha512-YS9s8sf3XLaVdBt33u1mbUdfUSLiarQW1SFd3ITh2CLWz1nVnVTN0oCrpepuFHUJ7rt+b6Gk14sgjP4ONdeZfQ==", + "dependencies": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", + "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", + "dependencies": { + "@babel/highlight": "^7.24.6", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", + "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", + "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helpers": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/traverse": "^7.24.6", + "@babel/types": "^7.24.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.6.tgz", + "integrity": "sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==", + "dependencies": { + "@babel/types": "^7.24.6", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz", + "integrity": "sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.6.tgz", + "integrity": "sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", + "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", + "dependencies": { + "@babel/compat-data": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.6.tgz", + "integrity": "sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-member-expression-to-functions": "^7.24.6", + "@babel/helper-optimise-call-expression": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.6.tgz", + "integrity": "sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz", + "integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz", + "integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==", + "dependencies": { + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz", + "integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.6.tgz", + "integrity": "sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz", + "integrity": "sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", + "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.6.tgz", + "integrity": "sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz", + "integrity": "sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.6.tgz", + "integrity": "sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-wrap-function": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.6.tgz", + "integrity": "sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-member-expression-to-functions": "^7.24.6", + "@babel/helper-optimise-call-expression": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", + "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.6.tgz", + "integrity": "sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz", + "integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==", + "dependencies": { + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz", + "integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", + "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz", + "integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.6.tgz", + "integrity": "sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==", + "dependencies": { + "@babel/helper-function-name": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz", + "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", + "dependencies": { + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz", + "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.6", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz", + "integrity": "sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6.tgz", + "integrity": "sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6.tgz", + "integrity": "sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/plugin-transform-optional-chaining": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6.tgz", + "integrity": "sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.6.tgz", + "integrity": "sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.6.tgz", + "integrity": "sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.6.tgz", + "integrity": "sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.6.tgz", + "integrity": "sha512-TzCtxGgVTEJWWwcYwQhCIQ6WaKlo80/B+Onsk4RRCcYqpYGFcG9etPW94VToGte5AAcxRrhjPUFvUS3Y2qKi4A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.6.tgz", + "integrity": "sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.6.tgz", + "integrity": "sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-remap-async-to-generator": "^7.24.6", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.6.tgz", + "integrity": "sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==", + "dependencies": { + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-remap-async-to-generator": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.6.tgz", + "integrity": "sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.6.tgz", + "integrity": "sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.6.tgz", + "integrity": "sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.6.tgz", + "integrity": "sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.6.tgz", + "integrity": "sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.6.tgz", + "integrity": "sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/template": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.6.tgz", + "integrity": "sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.6.tgz", + "integrity": "sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.6.tgz", + "integrity": "sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.6.tgz", + "integrity": "sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.6.tgz", + "integrity": "sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.6.tgz", + "integrity": "sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.6.tgz", + "integrity": "sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.6.tgz", + "integrity": "sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.6.tgz", + "integrity": "sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.6.tgz", + "integrity": "sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.6.tgz", + "integrity": "sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.6.tgz", + "integrity": "sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.6.tgz", + "integrity": "sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.6.tgz", + "integrity": "sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.6.tgz", + "integrity": "sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.6.tgz", + "integrity": "sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.6.tgz", + "integrity": "sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.6.tgz", + "integrity": "sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.6.tgz", + "integrity": "sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.6.tgz", + "integrity": "sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.6.tgz", + "integrity": "sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.6.tgz", + "integrity": "sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.6.tgz", + "integrity": "sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.6.tgz", + "integrity": "sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.6.tgz", + "integrity": "sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.6.tgz", + "integrity": "sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.6.tgz", + "integrity": "sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.6.tgz", + "integrity": "sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.6.tgz", + "integrity": "sha512-vQfyXRtG/kNIcTYRd/49uJnwvMig9X3R4XsTVXRml2RFupZFY+2RDuK+/ymb+MfX2WuIHAgUZc2xEvQrnI7QCg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.6.tgz", + "integrity": "sha512-/3iiEEHDsJuj9QU09gbyWGSUxDboFcD7Nj6dnHIlboWSodxXAoaY/zlNMHeYAC0WsERMqgO9a7UaM77CsYgWcg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.6.tgz", + "integrity": "sha512-pCtPHhpRZHfwdA5G1Gpk5mIzMA99hv0R8S/Ket50Rw+S+8hkt3wBWqdqHaPw0CuUYxdshUgsPiLQ5fAs4ASMhw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-jsx": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.6.tgz", + "integrity": "sha512-F7EsNp5StNDouSSdYyDSxh4J+xvj/JqG+Cb6s2fA+jCyHOzigG5vTwgH8tU2U8Voyiu5zCG9bAK49wTr/wPH0w==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.6.tgz", + "integrity": "sha512-0HoDQlFJJkXRyV2N+xOpUETbKHcouSwijRQbKWVtxsPoq5bbB30qZag9/pSc5xcWVYjTHlLsBsY+hZDnzQTPNw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.6.tgz", + "integrity": "sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.6.tgz", + "integrity": "sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.6.tgz", + "integrity": "sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.6.tgz", + "integrity": "sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.6.tgz", + "integrity": "sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.6.tgz", + "integrity": "sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.6.tgz", + "integrity": "sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.6.tgz", + "integrity": "sha512-H0i+hDLmaYYSt6KU9cZE0gb3Cbssa/oxWis7PX4ofQzbvsfix9Lbh8SRk7LCPDlLWJHUiFeHU0qRRpF/4Zv7mQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-typescript": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.6.tgz", + "integrity": "sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.6.tgz", + "integrity": "sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.6.tgz", + "integrity": "sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.6.tgz", + "integrity": "sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.6.tgz", + "integrity": "sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==", + "dependencies": { + "@babel/compat-data": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.6", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.6", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.6", + "@babel/plugin-syntax-import-attributes": "^7.24.6", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.6", + "@babel/plugin-transform-async-generator-functions": "^7.24.6", + "@babel/plugin-transform-async-to-generator": "^7.24.6", + "@babel/plugin-transform-block-scoped-functions": "^7.24.6", + "@babel/plugin-transform-block-scoping": "^7.24.6", + "@babel/plugin-transform-class-properties": "^7.24.6", + "@babel/plugin-transform-class-static-block": "^7.24.6", + "@babel/plugin-transform-classes": "^7.24.6", + "@babel/plugin-transform-computed-properties": "^7.24.6", + "@babel/plugin-transform-destructuring": "^7.24.6", + "@babel/plugin-transform-dotall-regex": "^7.24.6", + "@babel/plugin-transform-duplicate-keys": "^7.24.6", + "@babel/plugin-transform-dynamic-import": "^7.24.6", + "@babel/plugin-transform-exponentiation-operator": "^7.24.6", + "@babel/plugin-transform-export-namespace-from": "^7.24.6", + "@babel/plugin-transform-for-of": "^7.24.6", + "@babel/plugin-transform-function-name": "^7.24.6", + "@babel/plugin-transform-json-strings": "^7.24.6", + "@babel/plugin-transform-literals": "^7.24.6", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.6", + "@babel/plugin-transform-member-expression-literals": "^7.24.6", + "@babel/plugin-transform-modules-amd": "^7.24.6", + "@babel/plugin-transform-modules-commonjs": "^7.24.6", + "@babel/plugin-transform-modules-systemjs": "^7.24.6", + "@babel/plugin-transform-modules-umd": "^7.24.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.6", + "@babel/plugin-transform-new-target": "^7.24.6", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.6", + "@babel/plugin-transform-numeric-separator": "^7.24.6", + "@babel/plugin-transform-object-rest-spread": "^7.24.6", + "@babel/plugin-transform-object-super": "^7.24.6", + "@babel/plugin-transform-optional-catch-binding": "^7.24.6", + "@babel/plugin-transform-optional-chaining": "^7.24.6", + "@babel/plugin-transform-parameters": "^7.24.6", + "@babel/plugin-transform-private-methods": "^7.24.6", + "@babel/plugin-transform-private-property-in-object": "^7.24.6", + "@babel/plugin-transform-property-literals": "^7.24.6", + "@babel/plugin-transform-regenerator": "^7.24.6", + "@babel/plugin-transform-reserved-words": "^7.24.6", + "@babel/plugin-transform-shorthand-properties": "^7.24.6", + "@babel/plugin-transform-spread": "^7.24.6", + "@babel/plugin-transform-sticky-regex": "^7.24.6", + "@babel/plugin-transform-template-literals": "^7.24.6", + "@babel/plugin-transform-typeof-symbol": "^7.24.6", + "@babel/plugin-transform-unicode-escapes": "^7.24.6", + "@babel/plugin-transform-unicode-property-regex": "^7.24.6", + "@babel/plugin-transform-unicode-regex": "^7.24.6", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.6", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.6.tgz", + "integrity": "sha512-8mpzh1bWvmINmwM3xpz6ahu57mNaWavMm+wBNjQ4AFu1nghKBiIRET7l/Wmj4drXany/BBGjJZngICcD98F1iw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-transform-react-display-name": "^7.24.6", + "@babel/plugin-transform-react-jsx": "^7.24.6", + "@babel/plugin-transform-react-jsx-development": "^7.24.6", + "@babel/plugin-transform-react-pure-annotations": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.6.tgz", + "integrity": "sha512-U10aHPDnokCFRXgyT/MaIRTivUu2K/mu0vJlwRS9LxJmJet+PFQNKpggPyFCUtC6zWSBPjvxjnpNkAn3Uw2m5w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-syntax-jsx": "^7.24.6", + "@babel/plugin-transform-modules-commonjs": "^7.24.6", + "@babel/plugin-transform-typescript": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, + "node_modules/@babel/runtime": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz", + "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.6.tgz", + "integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==", + "dependencies": { + "@babel/code-frame": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.6.tgz", + "integrity": "sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==", + "dependencies": { + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.6.tgz", + "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==", + "dependencies": { + "@babel/helper-string-parser": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@digitak/grubber": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@digitak/grubber/-/grubber-3.1.4.tgz", + "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==" + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.2.tgz", + "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==", + "dependencies": { + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.5.tgz", + "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.0.tgz", + "integrity": "sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz", + "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" + }, + "node_modules/@gql.tada/cli-utils": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/@gql.tada/cli-utils/-/cli-utils-1.3.9.tgz", + "integrity": "sha512-oRb7SG/+csx9CiypSJTI21KaLfulOUnhX1vxg4FXi2snub9XShkGR2XnnlJVTAOZXY9Vcxti1NutAElxdDkycA==", + "dependencies": { + "@0no-co/graphqlsp": "^1.12.1", + "@gql.tada/internal": "1.0.0", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@gql.tada/internal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gql.tada/internal/-/internal-1.0.0.tgz", + "integrity": "sha512-B55aIYyZn5ewdgMqoJciPAwF5DKYX6HBabTU+ap/dpNH3EgJrLomc8Y8w+MCxCyOx+dXL9OduT6eWnVr7J7Eyg==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mysten/bcs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-1.0.0.tgz", + "integrity": "sha512-GhdAFPJZztnlFF2bFrjprjreCGpYtN3LMVCrWjLTT44xwwafphFqTYQEgCHkqGobg05P2EBoG7cMcF3skmkPwg==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/dapp-kit": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/@mysten/dapp-kit/-/dapp-kit-0.14.3.tgz", + "integrity": "sha512-iOEOBJ7VR/zkaA5rkYliUNtZAOP7scEDHBpq2Px5rApleEkoMGX09fgxRPDfIj3dZ467NyvEOKgebU+kpfvj4w==", + "dependencies": { + "@mysten/sui": "1.0.3", + "@mysten/wallet-standard": "0.12.3", + "@mysten/zksend": "0.9.3", + "@radix-ui/react-dialog": "^1.0.4", + "@radix-ui/react-dropdown-menu": "^2.0.5", + "@radix-ui/react-slot": "^1.0.2", + "@vanilla-extract/css": "^1.13.0", + "@vanilla-extract/dynamic": "^2.0.3", + "@vanilla-extract/recipes": "^0.5.0", + "clsx": "^2.0.0", + "zustand": "^4.4.1" + }, + "peerDependencies": { + "@tanstack/react-query": "^5.0.0", + "react": "*" + } + }, + "node_modules/@mysten/sui": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@mysten/sui/-/sui-1.0.3.tgz", + "integrity": "sha512-mkz0QwbHvhuXtiPhdQA47nXeH4M2aKMNeFBE7F+4RSWeMXa4g4ojrXURI2OAc9KZc1qFxas7ZcZKAbF3qto72w==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "1.0.0", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.7.0", + "graphql": "^16.8.1", + "tweetnacl": "^1.0.3", + "valibot": "^0.25.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@mysten/sui.js/node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/wallet-standard": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/@mysten/wallet-standard/-/wallet-standard-0.12.3.tgz", + "integrity": "sha512-bbObcLV0gVdH56kbCZ8ZoSU+6ll4Ihvh1ShigPgKcpfvRCHMd16VOQ8X6WwPC8RoQx26rcQVxrejmH8H8ATBrw==", + "dependencies": { + "@mysten/sui": "1.0.3", + "@wallet-standard/core": "1.0.3" + } + }, + "node_modules/@mysten/zksend": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@mysten/zksend/-/zksend-0.9.3.tgz", + "integrity": "sha512-MkVCUCG7xLky3lYDf0ZgX7Vif3PA4yGYo8J1YpQiJ6XYnHh/kNVxkJFc8M9pCfDGko6neCzYVVXdGscCfAKHPg==", + "dependencies": { + "@mysten/sui": "1.0.3", + "@mysten/wallet-standard": "0.12.3", + "mitt": "^3.0.1", + "nanostores": "^0.9.3", + "valibot": "^0.25.0" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@radix-ui/colors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/colors/-/colors-3.0.0.tgz", + "integrity": "sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==" + }, + "node_modules/@radix-ui/number": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.0.1.tgz", + "integrity": "sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/react-accessible-icon": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.0.3.tgz", + "integrity": "sha512-duVGKeWPSUILr/MdlPxV+GeULTc2rS1aihGdQ3N2qCUPMgxYLxvAsHJM3mCVLF8d5eK+ympmB22mb1F3a5biNw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-visually-hidden": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-alert-dialog": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.0.5.tgz", + "integrity": "sha512-OrVIOcZL0tl6xibeuGt5/+UxoT2N27KCFOPjFyfXMnchxSHZ/OW7cCX2nGlIYJrbHK/fczPcFzAwvNBB6XBNMA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dialog": "1.0.5", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz", + "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-aspect-ratio": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.0.3.tgz", + "integrity": "sha512-fXR5kbMan9oQqMuacfzlGG/SQMcmMlZ4wrvpckv8SgUulD0MMpspxJrxg/Gp/ISV3JfV1AeSWTYK9GvxA4ySwA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.0.4.tgz", + "integrity": "sha512-kVK2K7ZD3wwj3qhle0ElXhOjbezIgyl2hVvgwfIdexL3rN6zJmy5AqqIf+D31lxVppdzV8CjAfZ6PklkmInZLw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.0.4.tgz", + "integrity": "sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-use-previous": "1.0.1", + "@radix-ui/react-use-size": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.3.tgz", + "integrity": "sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context-menu": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.1.5.tgz", + "integrity": "sha512-R5XaDj06Xul1KGb+WP8qiOh7tKJNz2durpLBXAGZjSVtctcRFCuEvy2gtMwRJGePwQQE5nV77gs4FwRi8T+r2g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-menu": "2.0.6", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz", + "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.1.tgz", + "integrity": "sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", + "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-escape-keydown": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.0.6.tgz", + "integrity": "sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-menu": "2.0.6", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", + "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", + "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-form/-/react-form-0.0.3.tgz", + "integrity": "sha512-kgE+Z/haV6fxE5WqIXj05KkaXa3OkZASoTDy25yX2EIp/x0c54rOH/vFr5nOZTg7n7T1z8bSyXmiVIFP9bbhPQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-label": "2.0.2", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-hover-card": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.0.7.tgz", + "integrity": "sha512-OcUN2FU0YpmajD/qkph3XzMcK/NmSk9hGWnjV68p6QiZMgILugusgQwnLSDs3oFSJYGKf3Y49zgFedhGh04k9A==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-icons": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz", + "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==", + "peerDependencies": { + "react": "^16.x || ^17.x || ^18.x" + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.0.2.tgz", + "integrity": "sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.0.6.tgz", + "integrity": "sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-collection": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-roving-focus": "1.0.4", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-callback-ref": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.0.7.tgz", + "integrity": "sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.3.tgz", + "integrity": "sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1", + "@radix-ui/react-use-rect": "1.0.1", + "@radix-ui/react-use-size": "1.0.1", + "@radix-ui/rect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", + "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", + "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-radio-group": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.1.3.tgz", + "integrity": "sha512-x+yELayyefNeKeTx4fjK6j99Fs6c4qKm3aY38G3swQVTN6xMpsrbigC0uHs2L//g8q4qR7qOcww8430jJmi2ag==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-roving-focus": "1.0.4", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-use-previous": "1.0.1", + "@radix-ui/react-use-size": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz", + "integrity": "sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-collection": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.0.5.tgz", + "integrity": "sha512-b6PAgH4GQf9QEn8zbT2XUHpW5z8BzqEc7Kl11TwDrvuTrxlkcjTD5qa/bxgKr+nmuXKu4L/W5UZ4mlP/VG/5Gw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/number": "1.0.1", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.0.0.tgz", + "integrity": "sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/number": "1.0.1", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-collection": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1", + "@radix-ui/react-use-previous": "1.0.1", + "@radix-ui/react-visually-hidden": "1.0.3", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.0.3.tgz", + "integrity": "sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slider": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.1.2.tgz", + "integrity": "sha512-NKs15MJylfzVsCagVSWKhGGLNR1W9qWs+HtgbmjjVUB3B9+lb3PYoXxVju3kOrpf0VKyVCtZp+iTwVoqpa1Chw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/number": "1.0.1", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-collection": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1", + "@radix-ui/react-use-previous": "1.0.1", + "@radix-ui/react-use-size": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.0.3.tgz", + "integrity": "sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-use-previous": "1.0.1", + "@radix-ui/react-use-size": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.0.4.tgz", + "integrity": "sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-roving-focus": "1.0.4", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.0.7.tgz", + "integrity": "sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "@radix-ui/react-visually-hidden": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", + "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", + "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.0.1.tgz", + "integrity": "sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz", + "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/rect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz", + "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz", + "integrity": "sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.1.tgz", + "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/themes": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/themes/-/themes-2.0.3.tgz", + "integrity": "sha512-yaXQ8aWT2P1CQ0Xe6YCRD9HXsfMTvKkrIYkrc4aitCzhGTLS0sjtTqKmrxIWMVA+3DIbEuG9K/8aAMRJBhep8g==", + "dependencies": { + "@radix-ui/colors": "^3.0.0", + "@radix-ui/primitive": "^1.0.1", + "@radix-ui/react-accessible-icon": "^1.0.3", + "@radix-ui/react-alert-dialog": "^1.0.5", + "@radix-ui/react-aspect-ratio": "^1.0.3", + "@radix-ui/react-avatar": "^1.0.4", + "@radix-ui/react-checkbox": "^1.0.4", + "@radix-ui/react-context-menu": "^2.1.5", + "@radix-ui/react-dialog": "^1.0.5", + "@radix-ui/react-direction": "^1.0.1", + "@radix-ui/react-dropdown-menu": "^2.0.6", + "@radix-ui/react-form": "^0.0.3", + "@radix-ui/react-hover-card": "^1.0.7", + "@radix-ui/react-popover": "^1.0.7", + "@radix-ui/react-portal": "^1.0.4", + "@radix-ui/react-radio-group": "^1.1.3", + "@radix-ui/react-scroll-area": "^1.0.5", + "@radix-ui/react-select": "^2.0.0", + "@radix-ui/react-separator": "^1.0.3", + "@radix-ui/react-slider": "^1.1.2", + "@radix-ui/react-slot": "^1.0.2", + "@radix-ui/react-switch": "^1.0.3", + "@radix-ui/react-tabs": "^1.0.4", + "@radix-ui/react-tooltip": "^1.0.7", + "@radix-ui/react-use-callback-ref": "^1.0.1", + "@radix-ui/react-visually-hidden": "^1.0.3", + "classnames": "^2.3.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@scure/base": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.6.tgz", + "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "node_modules/@suiet/wallet-kit": { + "version": "0.2.24", + "resolved": "https://registry.npmjs.org/@suiet/wallet-kit/-/wallet-kit-0.2.24.tgz", + "integrity": "sha512-BXJ3Hv7ey9eUQVqhtLZpY3X8Ek+ODligRtWb6hnnPXsKys2h3kS0FygEZhoilMn3+cvmAtnW1sW1mrtM6aacDw==", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@mysten/wallet-standard": "0.11.2", + "@radix-ui/react-dialog": "^1.0.2", + "@suiet/wallet-sdk": "0.2.21", + "@svgr/rollup": "^6.5.1", + "@wallet-standard/core": "1.0.3", + "buffer": "^6.0.3", + "classnames": "^2.3.2", + "lodash-es": "^4.17.21", + "mitt": "^3.0.0", + "react-query": "^3.39.2" + }, + "peerDependencies": { + "@mysten/sui.js": "0.51.2", + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@suiet/wallet-kit/node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@suiet/wallet-kit/node_modules/@mysten/sui.js": { + "version": "0.51.2", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.51.2.tgz", + "integrity": "sha512-RRG/VHhVvkQlWqodFZagRxVDo3SbXh4e3xTBplhPNNyybugbWj/V+wGrNv5/KtxfVxHBw6jTCoB798ijqPBq7g==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.4.1", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@suiet/wallet-kit/node_modules/@mysten/wallet-standard": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/@mysten/wallet-standard/-/wallet-standard-0.11.2.tgz", + "integrity": "sha512-wDuXHwmdYS+9ewH6w4Fg67QwDpYN6JTKPWC/fuEWRuHy4uS77DfrIG6KHtU0tReMGapevXovKpw6WoSHJHDDHg==", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@wallet-standard/core": "1.0.3" + } + }, + "node_modules/@suiet/wallet-sdk": { + "version": "0.2.21", + "resolved": "https://registry.npmjs.org/@suiet/wallet-sdk/-/wallet-sdk-0.2.21.tgz", + "integrity": "sha512-d0IlSgZpbwIO6LTs3pric/M/4Rq/Ip4OezOUTRStp3PE02+9dVbNsRbCv7NjP50Vf660U3u3TdhVg7looi3yCw==", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@mysten/wallet-standard": "0.11.2", + "@noble/hashes": "^1.3.0", + "buffer": "^6.0.3", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "peerDependencies": { + "@mysten/sui.js": "0.51.2" + } + }, + "node_modules/@suiet/wallet-sdk/node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@suiet/wallet-sdk/node_modules/@mysten/sui.js": { + "version": "0.51.2", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.51.2.tgz", + "integrity": "sha512-RRG/VHhVvkQlWqodFZagRxVDo3SbXh4e3xTBplhPNNyybugbWj/V+wGrNv5/KtxfVxHBw6jTCoB798ijqPBq7g==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.4.1", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@suiet/wallet-sdk/node_modules/@mysten/wallet-standard": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/@mysten/wallet-standard/-/wallet-standard-0.11.2.tgz", + "integrity": "sha512-wDuXHwmdYS+9ewH6w4Fg67QwDpYN6JTKPWC/fuEWRuHy4uS77DfrIG6KHtU0tReMGapevXovKpw6WoSHJHDDHg==", + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@wallet-standard/core": "1.0.3" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", + "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", + "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", + "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", + "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", + "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", + "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", + "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", + "@svgr/babel-plugin-remove-jsx-attribute": "*", + "@svgr/babel-plugin-remove-jsx-empty-expression": "*", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", + "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", + "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", + "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", + "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", + "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", + "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "dependencies": { + "@babel/types": "^7.20.0", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", + "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/hast-util-to-babel-ast": "^6.5.1", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "^6.0.0" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", + "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "dependencies": { + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "svgo": "^2.8.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/rollup": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/rollup/-/rollup-6.5.1.tgz", + "integrity": "sha512-GeUfq0grJfpcn2jRWRaZ4npn27nnWK21vUj6MqDqknuJnEqGADcZZjO9wrUAaPLr3InAnQi0Z7nwiNUdzkaj6A==", + "dependencies": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-constant-elements": "^7.18.12", + "@babel/preset-env": "^7.19.4", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@rollup/pluginutils": "^4.2.1", + "@svgr/core": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "@svgr/plugin-svgo": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@swc/core": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.5.7.tgz", + "integrity": "sha512-U4qJRBefIJNJDRCCiVtkfa/hpiZ7w0R6kASea+/KLp+vkus3zcLSB8Ub8SvKgTIxjWpwsKcZlPf5nrv4ls46SQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@swc/counter": "^0.1.2", + "@swc/types": "0.1.7" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.5.7", + "@swc/core-darwin-x64": "1.5.7", + "@swc/core-linux-arm-gnueabihf": "1.5.7", + "@swc/core-linux-arm64-gnu": "1.5.7", + "@swc/core-linux-arm64-musl": "1.5.7", + "@swc/core-linux-x64-gnu": "1.5.7", + "@swc/core-linux-x64-musl": "1.5.7", + "@swc/core-win32-arm64-msvc": "1.5.7", + "@swc/core-win32-ia32-msvc": "1.5.7", + "@swc/core-win32-x64-msvc": "1.5.7" + }, + "peerDependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.7.tgz", + "integrity": "sha512-bZLVHPTpH3h6yhwVl395k0Mtx8v6CGhq5r4KQdAoPbADU974Mauz1b6ViHAJ74O0IVE5vyy7tD3OpkQxL/vMDQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.5.7.tgz", + "integrity": "sha512-RpUyu2GsviwTc2qVajPL0l8nf2vKj5wzO3WkLSHAHEJbiUZk83NJrZd1RVbEknIMO7+Uyjh54hEh8R26jSByaw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.7.tgz", + "integrity": "sha512-cTZWTnCXLABOuvWiv6nQQM0hP6ZWEkzdgDvztgHI/+u/MvtzJBN5lBQ2lue/9sSFYLMqzqff5EHKlFtrJCA9dQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.7.tgz", + "integrity": "sha512-hoeTJFBiE/IJP30Be7djWF8Q5KVgkbDtjySmvYLg9P94bHg9TJPSQoC72tXx/oXOgXvElDe/GMybru0UxhKx4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.7.tgz", + "integrity": "sha512-+NDhK+IFTiVK1/o7EXdCeF2hEzCiaRSrb9zD7X2Z7inwWlxAntcSuzZW7Y6BRqGQH89KA91qYgwbnjgTQ22PiQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.7.tgz", + "integrity": "sha512-25GXpJmeFxKB+7pbY7YQLhWWjkYlR+kHz5I3j9WRl3Lp4v4UD67OGXwPe+DIcHqcouA1fhLhsgHJWtsaNOMBNg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.7.tgz", + "integrity": "sha512-0VN9Y5EAPBESmSPPsCJzplZHV26akC0sIgd3Hc/7S/1GkSMoeuVL+V9vt+F/cCuzr4VidzSkqftdP3qEIsXSpg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.7.tgz", + "integrity": "sha512-RtoNnstBwy5VloNCvmvYNApkTmuCe4sNcoYWpmY7C1+bPR+6SOo8im1G6/FpNem8AR5fcZCmXHWQ+EUmRWJyuA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.7.tgz", + "integrity": "sha512-Xm0TfvcmmspvQg1s4+USL3x8D+YPAfX2JHygvxAnCJ0EHun8cm2zvfNBcsTlnwYb0ybFWXXY129aq1wgFC9TpQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.7.tgz", + "integrity": "sha512-tp43WfJLCsKLQKBmjmY/0vv1slVywR5Q4qKjF5OIY8QijaEW7/8VwPyUyVoJZEnDgv9jKtUTG5PzqtIYPZGnyg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true + }, + "node_modules/@swc/types": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.7.tgz", + "integrity": "sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ==", + "dev": true, + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.40.0.tgz", + "integrity": "sha512-eD8K8jsOIq0Z5u/QbvOmfvKKE/XC39jA7yv4hgpl/1SRiU+J8QCIwgM/mEHuunQsL87dcvnHqSVLmf9pD4CiaA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.40.0.tgz", + "integrity": "sha512-iv/W0Axc4aXhFzkrByToE1JQqayxTPNotCoSCnarR/A1vDIHaoKpg7FTIfP3Ev2mbKn1yrxq0ZKYUdLEJxs6Tg==", + "dependencies": { + "@tanstack/query-core": "5.40.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "devOptional": true + }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "devOptional": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "devOptional": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vanilla-extract/css": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.15.2.tgz", + "integrity": "sha512-Bi61iCAtojCuqvV+FYaF5i69vBjuMQJpHPdpgKYyQvx+e2Hp79V0ELglyYOdcyg9Wh0k0MFwgCDipVd7EloTXQ==", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@vanilla-extract/private": "^1.0.5", + "css-what": "^6.1.0", + "cssesc": "^3.0.0", + "csstype": "^3.0.7", + "dedent": "^1.5.3", + "deep-object-diff": "^1.1.9", + "deepmerge": "^4.2.2", + "media-query-parser": "^2.0.2", + "modern-ahocorasick": "^1.0.0", + "picocolors": "^1.0.0" + } + }, + "node_modules/@vanilla-extract/dynamic": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@vanilla-extract/dynamic/-/dynamic-2.1.1.tgz", + "integrity": "sha512-iqf736036ujEIKsIq28UsBEMaLC2vR2DhwKyrG3NDb/fRy9qL9FKl1TqTtBV4daU30Uh3saeik4vRzN8bzQMbw==", + "dependencies": { + "@vanilla-extract/private": "^1.0.5" + } + }, + "node_modules/@vanilla-extract/private": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.5.tgz", + "integrity": "sha512-6YXeOEKYTA3UV+RC8DeAjFk+/okoNz/h88R+McnzA2zpaVqTR/Ep+vszkWYlGBcMNO7vEkqbq5nT/JMMvhi+tw==" + }, + "node_modules/@vanilla-extract/recipes": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@vanilla-extract/recipes/-/recipes-0.5.3.tgz", + "integrity": "sha512-SPREq1NmaoKuvJeOV0pppOkwy3pWZUoDufsyQ6iHrbkHhAU7XQqG9o0iZSmg5JoVgDLIiOr9djQb0x9wuxig7A==", + "peerDependencies": { + "@vanilla-extract/css": "^1.0.0" + } + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.0.tgz", + "integrity": "sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==", + "dev": true, + "dependencies": { + "@swc/core": "^1.5.7" + }, + "peerDependencies": { + "vite": "^4 || ^5" + } + }, + "node_modules/@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "dependencies": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.2.5.tgz", + "integrity": "sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==", + "dependencies": { + "@volar/source-map": "2.2.5" + } + }, + "node_modules/@volar/source-map": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.2.5.tgz", + "integrity": "sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==", + "dependencies": { + "muggle-string": "^0.4.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dependencies": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.19.tgz", + "integrity": "sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==", + "dependencies": { + "@volar/language-core": "~2.2.4", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/@wallet-standard/app": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/app/-/app-1.0.1.tgz", + "integrity": "sha512-LnLYq2Vy2guTZ8GQKKSXQK3+FRGPil75XEdkZqE6fiLixJhZJoJa5hT7lXxwe0ykVTt9LEThdTbOpT7KadS26Q==", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/base/-/base-1.0.1.tgz", + "integrity": "sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w==", + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/core": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@wallet-standard/core/-/core-1.0.3.tgz", + "integrity": "sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==", + "dependencies": { + "@wallet-standard/app": "^1.0.1", + "@wallet-standard/base": "^1.0.1", + "@wallet-standard/features": "^1.0.3", + "@wallet-standard/wallet": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/features": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@wallet-standard/features/-/features-1.0.3.tgz", + "integrity": "sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/wallet": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/wallet/-/wallet-1.0.1.tgz", + "integrity": "sha512-qkhJeuQU2afQTZ02yMZE5SFc91Fo3hyFjFkpQglHudENNyiSG0oUKcIjky8X32xVSaumgTZSQUAzpXnCTWHzKQ==", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/broadcast-channel": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/broadcast-channel/-/broadcast-channel-3.7.0.tgz", + "integrity": "sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "detect-node": "^2.1.0", + "js-sha3": "0.8.0", + "microseconds": "0.2.0", + "nano-time": "1.0.0", + "oblivious-set": "1.0.0", + "rimraf": "3.0.2", + "unload": "2.2.0" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001625", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001625.tgz", + "integrity": "sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/code-red/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "peer": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==" + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deep-object-diff": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz", + "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.787", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.787.tgz", + "integrity": "sha512-d0EFmtLPjctczO3LogReyM2pbBiiZbnsKnGF+cdZhsYzHm/A0GV7W94kqzLD8SN4O3f3iHlgLUChqghgyznvCQ==" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.7.tgz", + "integrity": "sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrun": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/esrun/-/esrun-3.2.26.tgz", + "integrity": "sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==", + "dependencies": { + "@digitak/grubber": "^3.1.4", + "chokidar": "^3.5.1", + "esbuild": "^0.17.4" + }, + "bin": { + "esrun": "bin.js" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/esrun/node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esrun/node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "engines": { + "node": "*" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gql.tada": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/gql.tada/-/gql.tada-1.7.5.tgz", + "integrity": "sha512-GepPTee+FWSVVZQ7GiJHzsGNo7gOb59kcn4mUPYLlkbpeJfOUwpuoB05ZNaXG0W4qZVPd1I7R2UgMHBjY1lGlQ==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5", + "@gql.tada/cli-utils": "1.3.9", + "@gql.tada/internal": "1.0.0" + }, + "bin": { + "gql-tada": "bin/cli.js", + "gql.tada": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "peer": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "peer": true + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/match-sorter": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.4.tgz", + "integrity": "sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==", + "dependencies": { + "@babel/runtime": "^7.23.8", + "remove-accents": "0.5.0" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "peer": true + }, + "node_modules/media-query-parser": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/media-query-parser/-/media-query-parser-2.0.2.tgz", + "integrity": "sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==", + "dependencies": { + "@babel/runtime": "^7.12.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/microseconds": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/microseconds/-/microseconds-0.2.0.tgz", + "integrity": "sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + }, + "node_modules/mlly": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.0.tgz", + "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.0", + "ufo": "^1.5.3" + } + }, + "node_modules/modern-ahocorasick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-1.0.1.tgz", + "integrity": "sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "node_modules/nano-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nano-time/-/nano-time-1.0.0.tgz", + "integrity": "sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==", + "dependencies": { + "big-integer": "^1.6.16" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanostores": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/nanostores/-/nanostores-0.9.5.tgz", + "integrity": "sha512-Z+p+g8E7yzaWwOe5gEUB2Ox0rCEeXWYIZWmYvw/ajNYX8DlXdMvMDj8DWfM/subqPAcsf8l8Td4iAwO1DeIIRQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/navi-sdk": { + "version": "1.1.23", + "resolved": "https://registry.npmjs.org/navi-sdk/-/navi-sdk-1.1.23.tgz", + "integrity": "sha512-ikTjgPXj6XzTk90j8Fy5cjaIaO1z44Odq+jmI0p27kceX2l50pgHyN3k0oyIffW9Q2/XkWAyoUJzDYVT7W1PRA==", + "dependencies": { + "@mysten/sui.js": "^0.50.1", + "axios": "^1.6.7", + "esrun": "^3.2.26", + "tsconfig-paths": "^4.2.0", + "vitest": "^1.3.1" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/oblivious-set": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.0.0.tgz", + "integrity": "sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/periscopic/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/react-query": { + "version": "3.39.3", + "resolved": "https://registry.npmjs.org/react-query/-/react-query-3.39.3.tgz", + "integrity": "sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "broadcast-channel": "^3.4.1", + "match-sorter": "^6.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", + "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.3", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remove-accents": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==" + }, + "node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svelte": { + "version": "4.2.17", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.17.tgz", + "integrity": "sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/svelte2tsx": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.9.tgz", + "integrity": "sha512-Rm+0LAwg9wT4H2IsR8EaM9EWErTzi9LmuZKxkH5b1ua94XjQmwHstBP4VabLgA9AE6XmwBg+xK7Cjzwfm6ustQ==", + "dependencies": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + }, + "peerDependencies": { + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", + "typescript": "^4.9.4 || ^5.0.0" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==" + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unload": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz", + "integrity": "sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==", + "dependencies": { + "@babel/runtime": "^7.6.2", + "detect-node": "^2.0.4" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/valibot": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-0.25.0.tgz", + "integrity": "sha512-cmD0ca15oyAbT75iYLNW6uU6doAeIwYfOshpXka/E1Bx4frzbkrgb7gvkI7K0YK/DVOksei4FfxWfRoBP3NFTg==" + }, + "node_modules/vite": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", + "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/vite-node/node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/vite-node/node_modules/vite": { + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.12.tgz", + "integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==", + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "dependencies": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/vitest/node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/vitest/node_modules/vite": { + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.12.tgz", + "integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==", + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zustand": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.2.tgz", + "integrity": "sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g==", + "dependencies": { + "use-sync-external-store": "1.2.0" + }, + "engines": { + "node": ">=12.7.0" + }, + "peerDependencies": { + "@types/react": ">=16.8", + "immer": ">=9.0.6", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + } + } + } + } +} diff --git a/mover/bytesloop/code/task6_sdk_ptb/package.json b/mover/bytesloop/code/task6_sdk_ptb/package.json new file mode 100644 index 000000000..2584b36ab --- /dev/null +++ b/mover/bytesloop/code/task6_sdk_ptb/package.json @@ -0,0 +1,37 @@ +{ + "name": "sui-navi-ptb", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@mysten/dapp-kit": "0.14.3", + "@mysten/sui": "1.0.3", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@suiet/wallet-kit": "^0.2.24", + "@tanstack/react-query": "^5.0.0", + "navi-sdk": "^1.1.23", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } +} diff --git a/mover/bytesloop/code/task6_sdk_ptb/prettier.config.cjs b/mover/bytesloop/code/task6_sdk_ptb/prettier.config.cjs new file mode 100644 index 000000000..c07541106 --- /dev/null +++ b/mover/bytesloop/code/task6_sdk_ptb/prettier.config.cjs @@ -0,0 +1,4 @@ +// eslint-disable-next-line no-undef +module.exports = { + proseWrap: "always", +}; diff --git a/mover/bytesloop/code/task6_sdk_ptb/src/App.tsx b/mover/bytesloop/code/task6_sdk_ptb/src/App.tsx new file mode 100644 index 000000000..d61a4e40f --- /dev/null +++ b/mover/bytesloop/code/task6_sdk_ptb/src/App.tsx @@ -0,0 +1,47 @@ +import { ConnectButton, ErrorCode } from "@suiet/wallet-kit"; +import { Box, Container, Flex, Heading } from "@radix-ui/themes"; +import { WalletStatus } from "./WalletStatus"; + +function App() { + return ( + <> + + + dApp Starter Template + + + + { + if(error.code === ErrorCode.WALLET__CONNECT_ERROR__USER_REJECTED) { + console.warn("user rejected the connection to " + error.details?.wallet,); + } else { + console.warn("unknown connect error: ", error); + } + }} + /> + + + + + + + + + ); +} + +export default App; diff --git a/mover/bytesloop/code/task6_sdk_ptb/src/Navi.tsx b/mover/bytesloop/code/task6_sdk_ptb/src/Navi.tsx new file mode 100644 index 000000000..51ce12850 --- /dev/null +++ b/mover/bytesloop/code/task6_sdk_ptb/src/Navi.tsx @@ -0,0 +1,58 @@ +import { useAccountBalance, useWallet } from "@suiet/wallet-kit"; +import { Button } from "@radix-ui/themes"; + +import { depositCoin, borrowCoin } from "navi-sdk/dist/libs/PTB"; +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from "navi-sdk/dist/address"; +import { Sui, USDC } from "navi-sdk/dist/address"; +import { TransactionBlock } from "@mysten/sui.js/transactions"; + +export function Navi() { + const wallet = useWallet(); + const { balance } = useAccountBalance(); + + async function handleNAVISDK() { + if (!wallet.account) return; + const account = wallet.account; + const sender = account.address; + try { + let txb = new TransactionBlock(); + txb.setSender(sender); + + let getCoinInfo = balance; + if (!getCoinInfo) { + throw new Error("Insufficient balance"); + } + + let deposit_amount = 1e9; + let sui_symbol = Sui.symbol; + const pool_sui: PoolConfig = pool[sui_symbol as keyof Pool]; + const [to_deposit] = txb.splitCoins(txb.gas, [deposit_amount]); + await depositCoin(txb, pool_sui, to_deposit, deposit_amount); + + let borrow_amount = 0.053117 * 1e6; + let usdc_symbol = USDC.symbol; + const pool_usdc: PoolConfig = pool[usdc_symbol as keyof Pool]; + const [borrow_coin] = await borrowCoin(txb, pool_usdc, borrow_amount); + + await depositCoin(txb, pool_usdc, borrow_coin, borrow_amount); + + const resData = await wallet.signAndExecuteTransactionBlock({ + transactionBlock: txb, + }); + console.log("transaction digest: " + JSON.stringify(resData)); + } catch (e) { + console.error("Operation failed (see response in the console)", e); + } + } + + if (!wallet.account) { + return; + } + + return ( + + ); +} \ No newline at end of file diff --git a/mover/bytesloop/code/task6_sdk_ptb/src/OwnedObjects.tsx b/mover/bytesloop/code/task6_sdk_ptb/src/OwnedObjects.tsx new file mode 100644 index 000000000..fa759db0a --- /dev/null +++ b/mover/bytesloop/code/task6_sdk_ptb/src/OwnedObjects.tsx @@ -0,0 +1,42 @@ +import { useCurrentAccount, useSuiClientQuery } from "@mysten/dapp-kit"; +import { Flex, Heading, Text } from "@radix-ui/themes"; + +export function OwnedObjects() { + const account = useCurrentAccount(); + const { data, isPending, error } = useSuiClientQuery( + "getOwnedObjects", + { + owner: account?.address as string, + }, + { + enabled: !!account, + }, + ); + + if (!account) { + return; + } + + if (error) { + return Error: {error.message}; + } + + if (isPending || !data) { + return Loading...; + } + + return ( + + {data.data.length === 0 ? ( + No objects owned by the connected wallet + ) : ( + Objects owned by the connected wallet + )} + {data.data.map((object) => ( + + Object ID: {object.data?.objectId} + + ))} + + ); +} diff --git a/mover/bytesloop/code/task6_sdk_ptb/src/WalletStatus.tsx b/mover/bytesloop/code/task6_sdk_ptb/src/WalletStatus.tsx new file mode 100644 index 000000000..4cd2756a8 --- /dev/null +++ b/mover/bytesloop/code/task6_sdk_ptb/src/WalletStatus.tsx @@ -0,0 +1,33 @@ +import { Container, Flex, Heading, Text } from "@radix-ui/themes"; +import { Navi } from "./Navi"; +import { formatSUI, useAccountBalance, useWallet } from "@suiet/wallet-kit"; + +export function WalletStatus() { + const wallet = useWallet(); + const { balance } = useAccountBalance(); + + return ( + + Wallet Status + + {wallet.account ? ( + + Wallet connected + Address: {wallet.account?.address} + current wallet: {wallet.adapter?.name} + current network: {wallet.chain?.name} + + wallet balance:{" "} + {formatSUI(balance ?? 0, { + withAbbr: false, + })}{" "} + SUI + + + ) : ( + Wallet not connected + )} + + + ); +} \ No newline at end of file diff --git a/mover/bytesloop/code/task6_sdk_ptb/src/main.tsx b/mover/bytesloop/code/task6_sdk_ptb/src/main.tsx new file mode 100644 index 000000000..7e087631d --- /dev/null +++ b/mover/bytesloop/code/task6_sdk_ptb/src/main.tsx @@ -0,0 +1,18 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "@radix-ui/themes/styles.css"; +import "@suiet/wallet-kit/style.css"; + +import { Theme } from "@radix-ui/themes"; +import App from "./App.tsx"; +import { WalletProvider } from "@suiet/wallet-kit"; + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + + + , +); \ No newline at end of file diff --git a/mover/bytesloop/code/task6_sdk_ptb/src/vite-env.d.ts b/mover/bytesloop/code/task6_sdk_ptb/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/mover/bytesloop/code/task6_sdk_ptb/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mover/bytesloop/code/task6_sdk_ptb/tsconfig.json b/mover/bytesloop/code/task6_sdk_ptb/tsconfig.json new file mode 100644 index 000000000..a7fc6fbf2 --- /dev/null +++ b/mover/bytesloop/code/task6_sdk_ptb/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/bytesloop/code/task6_sdk_ptb/tsconfig.node.json b/mover/bytesloop/code/task6_sdk_ptb/tsconfig.node.json new file mode 100644 index 000000000..42872c59f --- /dev/null +++ b/mover/bytesloop/code/task6_sdk_ptb/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/bytesloop/code/task6_sdk_ptb/vite.config.ts b/mover/bytesloop/code/task6_sdk_ptb/vite.config.ts new file mode 100644 index 000000000..d366e8c8d --- /dev/null +++ b/mover/bytesloop/code/task6_sdk_ptb/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); diff --git a/mover/bytesloop/code/task7_move_ctf_check_in/check_in/Move.lock b/mover/bytesloop/code/task7_move_ctf_check_in/check_in/Move.lock new file mode 100644 index 000000000..21baef181 --- /dev/null +++ b/mover/bytesloop/code/task7_move_ctf_check_in/check_in/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "60ED2B08562863E03B32E589CB9D813832DBE08E722E777386028AACAA9C2B4A" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.26.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x60695ee31f93add1f79909c884a55dff7e5f140bbd2e495819966bd2f7971d42" +latest-published-id = "0x60695ee31f93add1f79909c884a55dff7e5f140bbd2e495819966bd2f7971d42" +published-version = "1" diff --git a/mover/bytesloop/code/task7_move_ctf_check_in/check_in/Move.toml b/mover/bytesloop/code/task7_move_ctf_check_in/check_in/Move.toml new file mode 100644 index 000000000..767a6440b --- /dev/null +++ b/mover/bytesloop/code/task7_move_ctf_check_in/check_in/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "check_in" +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/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] +check_in = "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/bytesloop/code/task7_move_ctf_check_in/check_in/sources/check_in.move b/mover/bytesloop/code/task7_move_ctf_check_in/check_in/sources/check_in.move new file mode 100644 index 000000000..04420da55 --- /dev/null +++ b/mover/bytesloop/code/task7_move_ctf_check_in/check_in/sources/check_in.move @@ -0,0 +1,74 @@ +module check_in::check_in { + use std::ascii::{String, string}; + use std::string; + use std::vector; + use sui::event; + use sui::object; + use sui::random; + use sui::random::Random; + use sui::transfer::share_object; + use sui::tx_context::{Self, TxContext}; + + const ESTRING: u64 = 0; + + public struct Flag has copy, drop { + sender: address, + flag: bool, + ture_num: u64, + github_id: String + } + + public struct FlagString has key { + id: UID, + str: String, + ture_num: u64 + } + + fun init(ctx: &mut TxContext) { + let flag_str = FlagString { + id: object::new(ctx), + str: string(b"LetsMoveCTF"), + ture_num: 0 + }; + share_object(flag_str); + } + + + entry fun get_flag( + string: String, + github_id: String, + flag_str: &mut FlagString, + rand: &Random, + ctx: &mut TxContext + ) { + assert!(string == flag_str.str, ESTRING); + + flag_str.str = getRandomString(rand, ctx); + + flag_str.ture_num = flag_str.ture_num + 1; + + event::emit(Flag { + sender: tx_context::sender(ctx), + flag: true, + ture_num: flag_str.ture_num, + github_id + }); + } + + + fun getRandomString(rand: &Random, ctx: &mut TxContext): String { + let mut gen = random::new_generator(rand, ctx); + + let mut str_len = random::generate_u8_in_range(&mut gen, 4, 30); + + let mut rand: vector = b""; + while (str_len != 0) { + let rand_num = random::generate_u8_in_range(&mut gen, 34, 126); + vector::push_back(&mut rand, rand_num); + str_len = str_len - 1; + }; + + string(rand) + } +} + diff --git a/mover/bytesloop/code/task7_move_ctf_check_in/check_in/tests/check_in_tests.move b/mover/bytesloop/code/task7_move_ctf_check_in/check_in/tests/check_in_tests.move new file mode 100644 index 000000000..acc72e7a2 --- /dev/null +++ b/mover/bytesloop/code/task7_move_ctf_check_in/check_in/tests/check_in_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module check_in::check_in_tests { + // uncomment this line to import the module + // use check_in::check_in; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_check_in() { + // pass + } + + #[test, expected_failure(abort_code = ::check_in::check_in_tests::ENotImplemented)] + fun test_check_in_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/bytesloop/code/task7_move_ctf_check_in/image.jpg b/mover/bytesloop/code/task7_move_ctf_check_in/image.jpg new file mode 100644 index 000000000..ad940a073 Binary files /dev/null and b/mover/bytesloop/code/task7_move_ctf_check_in/image.jpg differ diff --git a/mover/bytesloop/code/task8_move_ctf_pow/.gitignore b/mover/bytesloop/code/task8_move_ctf_pow/.gitignore new file mode 100644 index 000000000..bc520cdc0 --- /dev/null +++ b/mover/bytesloop/code/task8_move_ctf_pow/.gitignore @@ -0,0 +1 @@ +solve/ \ No newline at end of file diff --git a/mover/bytesloop/code/task8_move_ctf_pow/lets_move/Move.lock b/mover/bytesloop/code/task8_move_ctf_pow/lets_move/Move.lock new file mode 100644 index 000000000..cd2698372 --- /dev/null +++ b/mover/bytesloop/code/task8_move_ctf_pow/lets_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "786B91A5B97E30CFE4109DB806C7FDAA208AD34906C77AB899770D4D0AEB5DB1" +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.26.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f" +latest-published-id = "0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f" +published-version = "1" diff --git a/mover/bytesloop/code/task8_move_ctf_pow/lets_move/Move.toml b/mover/bytesloop/code/task8_move_ctf_pow/lets_move/Move.toml new file mode 100644 index 000000000..1f489de90 --- /dev/null +++ b/mover/bytesloop/code/task8_move_ctf_pow/lets_move/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "lets_move" +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" } +Sui = { local = "F:/GitCode/Move/sui/crates/sui-framework/packages/sui-framework" } + +# 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] +lets_move = "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/bytesloop/code/task8_move_ctf_pow/lets_move/sources/lets_move.move b/mover/bytesloop/code/task8_move_ctf_pow/lets_move/sources/lets_move.move new file mode 100644 index 000000000..a80be1f6d --- /dev/null +++ b/mover/bytesloop/code/task8_move_ctf_pow/lets_move/sources/lets_move.move @@ -0,0 +1,88 @@ +module lets_move::lets_move { + use std::ascii::{String, string}; + use std::hash; + use sui::event; + use sui::bcs; + use sui::random; + use sui::random::Random; + use sui::transfer::share_object; + + const EPROOF: u64 = 0; + + public struct Flag has copy, drop { + sender: address, + flag: bool, + ture_num: u64, + github_id: String + } + + public struct Challenge has key { + id: UID, + str: String, + difficulity: u64, + ture_num: u64 + } + + fun init(ctx: &mut TxContext) { + let flag_str = Challenge { + id: object::new(ctx), + str: string(b"LetsMoveCTF"), + difficulity: 3, + ture_num: 0, + }; + share_object(flag_str); + } + + + entry fun get_flag( + proof: vector, + github_id: String, + challenge: &mut Challenge, + rand: &Random, + ctx: &mut TxContext + ) { + let mut full_proof: vector = vector::empty(); + vector::append(&mut full_proof, proof); // 随机数 + vector::append(&mut full_proof, tx_context::sender(ctx).to_bytes()); // 发送者 + vector::append(&mut full_proof, bcs::to_bytes(challenge)); // challenge字符串 + + let hash: vector = hash::sha3_256(full_proof); + + // challenge.difficulity = 3 前三位为0 + let mut prefix_sum: u32 = 0; + let mut i: u64 = 0; + while (i < challenge.difficulity) { + prefix_sum = prefix_sum + (*vector::borrow(&hash, i) as u32); + i = i + 1; + }; + + assert!(prefix_sum == 0, EPROOF); + + challenge.str = getRandomString(rand, ctx); + challenge.ture_num = challenge.ture_num + 1; + + event::emit(Flag { + sender: tx_context::sender(ctx), + flag: true, + ture_num: challenge.ture_num, + github_id + }); + } + + + fun getRandomString(rand: &Random, ctx: &mut TxContext): String { + let mut gen = random::new_generator(rand, ctx); + + let mut str_len = random::generate_u8_in_range(&mut gen, 4, 30); + + let mut rand: vector = b""; + while (str_len != 0) { + let rand_num = random::generate_u8_in_range(&mut gen, 34, 126); + vector::push_back(&mut rand, rand_num); + str_len = str_len - 1; + }; + + string(rand) + } +} + diff --git a/mover/bytesloop/code/task8_move_ctf_pow/lets_move/tests/lets_move_tests.move b/mover/bytesloop/code/task8_move_ctf_pow/lets_move/tests/lets_move_tests.move new file mode 100644 index 000000000..badd6cd23 --- /dev/null +++ b/mover/bytesloop/code/task8_move_ctf_pow/lets_move/tests/lets_move_tests.move @@ -0,0 +1,27 @@ + +#[test_only] +module lets_move::lets_move_tests { + // uncomment this line to import the module + use sui::bcs; + use std::hash; + const EPROOF: u64 = 0; + const ENotImplemented: u64 = 0; + + #[test] + fun test_lets_move() { + let vect: vector = b"Hola mundo"; + let str: std::string::String = std::string::utf8(vect); + std::debug::print(&vect); // [debug] 0x486f6c61206d756e646f + std::debug::print(&str); // [debug] "Hola mundo" + + // lets_move::getRandomString(@0x8, &mut ctx); // @0x8 = https://testnet.suivision.xyz/object/0x0000000000000000000000000000000000000000000000000000000000000008 + let mut ctx = tx_context::dummy(); + std::debug::print(&ctx); + } + + #[test, expected_failure(abort_code = ::lets_move::lets_move_tests::ENotImplemented)] + fun test_lets_move_fail() { + abort ENotImplemented + } +} + diff --git a/mover/bytesloop/readme.md b/mover/bytesloop/readme.md index d5dd5feef..832ee3a9c 100644 --- a/mover/bytesloop/readme.md +++ b/mover/bytesloop/readme.md @@ -29,8 +29,17 @@ - [x] call game hash: `9wDmFHnQYe9FmtMhvWBx4mNQgSEbwb1tSTUidPxay1oa` (Testnet) ## 05 Move Swap -- [] swap package id : -- [] call swap hash: +- [x] swap package id : `0x29cd0bf0b0cc54132acbf0cdae4bd21ce15e29a46d9acd2fcecdbca85d8c7258` (Testnet) +- [x] call swap hash: `https://suiscan.xyz/testnet/tx/C3znaEcZTqiqtaVCfwMxip7DvbkhCewYcDkYiaT1wgMF` (usd to rmb) +- [x] call swap hash: `https://suiscan.xyz/testnet/tx/9zr3rEQabQfyn94gFZtEDM6SUUqgd32ftgkKVzdWiU9o` (rmb to usd) ## 06 SDK PTB -- [] save hash : +- [x] save hash : `https://suivision.xyz/txblock/EfrEkzsnQjydVrnFdZwhSCWPDF3oiM1qnpMYHuzD6wb7` + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./code/task7_move_ctf_check_in/image.jpg) +- [x] flag hash : `Du8woLMhqMtTXQoDz2yT4WgfwkmzeYL2XVocADdWfn6P` + +## 08 Move CTF Lets Move +- [x] proof : `6d2f21242436127de875` +- [x] flag hash : `2hchn6NgjancH8QwsHpxkrr3hSeQjouPKKXCTZzYK2PU` \ No newline at end of file diff --git a/mover/cabbage-go/code/task1/sources/task1.move b/mover/cabbage-go/code/task1/sources/task1.move new file mode 100644 index 000000000..42cc4fa01 --- /dev/null +++ b/mover/cabbage-go/code/task1/sources/task1.move @@ -0,0 +1,21 @@ +module task1::hello { + + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct Hello has key, store { + id: UID, + text: string::String + } + + public entry fun mint(ctx: &mut TxContext) { + let object = Hello { + id: object::new(ctx), + text: string::utf8(b"cabbage-go") + }; + transfer::transfer(object, tx_context::sender(ctx)); + } +} + diff --git a/mover/cabbage-go/images/QQ_1721797409896.png b/mover/cabbage-go/images/QQ_1721797409896.png new file mode 100644 index 000000000..8a8e6c7e1 Binary files /dev/null and b/mover/cabbage-go/images/QQ_1721797409896.png differ diff --git a/mover/cabbage-go/images/image-20240724134059046.png b/mover/cabbage-go/images/image-20240724134059046.png new file mode 100644 index 000000000..117297de7 Binary files /dev/null and b/mover/cabbage-go/images/image-20240724134059046.png differ diff --git a/mover/cabbage-go/notes/readme.md b/mover/cabbage-go/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/cabbage-go/readme.md b/mover/cabbage-go/readme.md new file mode 100644 index 000000000..50d6b521f --- /dev/null +++ b/mover/cabbage-go/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x63187c46a1969a901569b35b7184768b5fe0c8d611d8a820e76d215a3f34b58e ` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: cabbage-go + +## 个人简介 +- 工作经验: 2年 +- 技术栈: `Rust` `Python` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: qq: `9932899995` + +## 任务 + +## 01 hello move +- [] Sui cli version:sui 1.29.2-09db80adf1af +- [] Sui钱包截图: ![Sui钱包截图](./images/QQ_1721797409896.png) +- [] package id: 0x152988cd21ca4d84eb963cbdadfcd7096dd3e2666c711a639e260f5013a58ce1 +- [] package id 在 scan上的查看截图:![Scan截图](./images/image-20240724134059046.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/chaos-zhu/notes/readme.md b/mover/chaos-zhu/notes/readme.md index 4819ce977..756a3b9a6 100644 --- a/mover/chaos-zhu/notes/readme.md +++ b/mover/chaos-zhu/notes/readme.md @@ -105,7 +105,7 @@ sui client switch --env mainnet ```shell # 部署 -sui client publish --gas-budget 100000000 . +sui client publish . ``` 在可视化web界面调用mint. diff --git a/mover/chenmingnan/code/readme.md b/mover/chenmingnan/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/chenmingnan/code/task1/hello_world/Move.lock b/mover/chenmingnan/code/task1/hello_world/Move.lock new file mode 100644 index 000000000..26da92d81 --- /dev/null +++ b/mover/chenmingnan/code/task1/hello_world/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "60F2000F4D6DAD240EF371DB3BC521F7BD4C8B814BC59CA473B852B77FDBE53C" +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.26.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x63a38cee199811378decd74e5000899b424756be716de124232b894476ff7bb7" +latest-published-id = "0x63a38cee199811378decd74e5000899b424756be716de124232b894476ff7bb7" +published-version = "1" diff --git a/mover/chenmingnan/code/task1/hello_world/Move.toml b/mover/chenmingnan/code/task1/hello_world/Move.toml new file mode 100644 index 000000000..201de1731 --- /dev/null +++ b/mover/chenmingnan/code/task1/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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] +hello_world = "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/chenmingnan/code/task1/hello_world/sources/hello_world.move b/mover/chenmingnan/code/task1/hello_world/sources/hello_world.move new file mode 100644 index 000000000..4e18b2c90 --- /dev/null +++ b/mover/chenmingnan/code/task1/hello_world/sources/hello_world.move @@ -0,0 +1,20 @@ +/// Module: hello_world +module hello_world::hello_world { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"chenmingnan"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/chenmingnan/code/task1/hello_world/tests/hello_world_tests.move b/mover/chenmingnan/code/task1/hello_world/tests/hello_world_tests.move new file mode 100644 index 000000000..fefedbe62 --- /dev/null +++ b/mover/chenmingnan/code/task1/hello_world/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_world::hello_world_tests { + // uncomment this line to import the module + // use hello_world::hello_world; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_world() { + // pass + } + + #[test, expected_failure(abort_code = hello_world::hello_world_tests::ENotImplemented)] + fun test_hello_world_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/chenmingnan/code/task2/chenmingnan_coin/Move.lock b/mover/chenmingnan/code/task2/chenmingnan_coin/Move.lock new file mode 100644 index 000000000..3c6c9a089 --- /dev/null +++ b/mover/chenmingnan/code/task2/chenmingnan_coin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "3DC4E3B89C7F137DF1A7D72A83FE9F62504BEB5FF7C450C2B0064E05ECF50217" +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.26.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x452ca38d56417a29e8643670a31849211ab97742d99b33ff4599260188e60326" +latest-published-id = "0x452ca38d56417a29e8643670a31849211ab97742d99b33ff4599260188e60326" +published-version = "1" + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x554f8bf738b5066c1e744f3155e6fa76df5cb6f66c226a5325d7fc3728a59117" +latest-published-id = "0x554f8bf738b5066c1e744f3155e6fa76df5cb6f66c226a5325d7fc3728a59117" +published-version = "1" diff --git a/mover/chenmingnan/code/task2/chenmingnan_coin/Move.toml b/mover/chenmingnan/code/task2/chenmingnan_coin/Move.toml new file mode 100644 index 000000000..12b47aa8e --- /dev/null +++ b/mover/chenmingnan/code/task2/chenmingnan_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "chenmingnan_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://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] +chenmingnan_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/chenmingnan/code/task2/chenmingnan_coin/sources/chenmingnan_coin.move b/mover/chenmingnan/code/task2/chenmingnan_coin/sources/chenmingnan_coin.move new file mode 100644 index 000000000..f3e174226 --- /dev/null +++ b/mover/chenmingnan/code/task2/chenmingnan_coin/sources/chenmingnan_coin.move @@ -0,0 +1,32 @@ + +/// Module: chenmingnan_coin +module chenmingnan_coin::chenmingnan_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + public struct CHENMINGNAN_COIN has drop {} + fun init(witness: CHENMINGNAN_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, // decimals + b"chenmingnan COIN", // symbol + b"chenmingnan COIN", // name + b"Amazing Coin", // description + option:: none(), // icon url + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} + diff --git a/mover/chenmingnan/code/task2/chenmingnan_coin/tests/chenmingnan_coin_tests.move b/mover/chenmingnan/code/task2/chenmingnan_coin/tests/chenmingnan_coin_tests.move new file mode 100644 index 000000000..0a33b075c --- /dev/null +++ b/mover/chenmingnan/code/task2/chenmingnan_coin/tests/chenmingnan_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module chenmingnan_coin::chenmingnan_coin_tests { + // uncomment this line to import the module + // use chenmingnan_coin::chenmingnan_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_chenmingnan_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::chenmingnan_coin::chenmingnan_coin_tests::ENotImplemented)] + fun test_chenmingnan_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/chenmingnan/code/task2/chenmingnan_faucet/Move.lock b/mover/chenmingnan/code/task2/chenmingnan_faucet/Move.lock new file mode 100644 index 000000000..616249c97 --- /dev/null +++ b/mover/chenmingnan/code/task2/chenmingnan_faucet/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "B39BF82FE41E10EE1E11D6600548C4F627421DED7F14D030EF535BFF6A2336D9" +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.26.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xbae98367fae50287574e44c87f4d0a11c4a03e777eef2b78460bb0e571a84099" +latest-published-id = "0xbae98367fae50287574e44c87f4d0a11c4a03e777eef2b78460bb0e571a84099" +published-version = "1" + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x4b173ac0003e21854bdfb94b31b2227bb1336cd6cd2e76ba088eb1605313a1e1" +latest-published-id = "0x4b173ac0003e21854bdfb94b31b2227bb1336cd6cd2e76ba088eb1605313a1e1" +published-version = "1" diff --git a/mover/chenmingnan/code/task2/chenmingnan_faucet/Move.toml b/mover/chenmingnan/code/task2/chenmingnan_faucet/Move.toml new file mode 100644 index 000000000..da1a6cda0 --- /dev/null +++ b/mover/chenmingnan/code/task2/chenmingnan_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "chenmingnan_faucet" +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] +chenmingnan_faucet = "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/chenmingnan/code/task2/chenmingnan_faucet/sources/chenmingnan_faucet.move b/mover/chenmingnan/code/task2/chenmingnan_faucet/sources/chenmingnan_faucet.move new file mode 100644 index 000000000..7aee66274 --- /dev/null +++ b/mover/chenmingnan/code/task2/chenmingnan_faucet/sources/chenmingnan_faucet.move @@ -0,0 +1,48 @@ +/// Module: chenmingnan_faucet +module chenmingnan_faucet::chenmingnan_faucet { + use sui::balance::{Balance}; + use sui::balance; + use sui::coin::{Self, TreasuryCap}; + public struct CHENMINGNAN_FAUCET has drop {} + public struct PublicWallet has key { + id: UID, + coin: Balance, + faucet_amount: u64, + } + const AMOUNT: u64 = 10^12; + const EFaucetDry: u64 = 1; + #[allow(lint(share_owned))] + fun init(witness: CHENMINGNAN_FAUCET, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 10, + b"CHENMINGNAN Faucet", + b"CHENMINGNAN Faucet", + b"Get some free coin", + option::none(), + ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + let wallet = PublicWallet { + id: object::new(ctx), + coin: balance::zero(), + faucet_amount: AMOUNT, + }; + transfer::share_object(wallet); + } + public entry fun mint_faucet( + treasury_cap: &mut TreasuryCap, + amount: u64, + wallet: &mut PublicWallet, + ctx: &mut TxContext) { + let coins = coin::mint(treasury_cap, amount, ctx); + balance::join(&mut wallet.coin, coin::into_balance(coins)); + } + public entry fun get_faucet(wallet: &mut PublicWallet, ctx: &mut TxContext) { + let balance_amount = balance::value(&wallet.coin); + assert!(balance_amount >= wallet.faucet_amount, EFaucetDry); + let mint_balance = balance::split(&mut wallet.coin, wallet.faucet_amount); + let faucet_coin = coin::from_balance(mint_balance, ctx); + transfer::public_transfer(faucet_coin, tx_context::sender(ctx)); + } +} diff --git a/mover/chenmingnan/code/task2/chenmingnan_faucet/tests/chenmingnan_faucet_tests.move b/mover/chenmingnan/code/task2/chenmingnan_faucet/tests/chenmingnan_faucet_tests.move new file mode 100644 index 000000000..e406af404 --- /dev/null +++ b/mover/chenmingnan/code/task2/chenmingnan_faucet/tests/chenmingnan_faucet_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module chenmingnan_faucet::chenmingnan_faucet_tests { + // uncomment this line to import the module + // use chenmingnan_faucet::chenmingnan_faucet; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_chenmingnan_faucet() { + // pass + } + + #[test, expected_failure(abort_code = ::chenmingnan_faucet::chenmingnan_faucet_tests::ENotImplemented)] + fun test_chenmingnan_faucet_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/chenmingnan/code/task3/chenmingnan_nft/Move.lock b/mover/chenmingnan/code/task3/chenmingnan_nft/Move.lock new file mode 100644 index 000000000..0b9c64f0f --- /dev/null +++ b/mover/chenmingnan/code/task3/chenmingnan_nft/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "919D9933C82236F505F6DCFDFFA289F9E438713169F4A7933344ABA66CE2B328" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xcb1c49eed47add3ab02618ce166c661feaa6c9ad2bb8743f483b09e77a0089b8" +latest-published-id = "0xcb1c49eed47add3ab02618ce166c661feaa6c9ad2bb8743f483b09e77a0089b8" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x8c17d23917938aa01bb61fa9ee8ffab5c999f4ef2b47978ffabe111c5c4827b4" +latest-published-id = "0x8c17d23917938aa01bb61fa9ee8ffab5c999f4ef2b47978ffabe111c5c4827b4" +published-version = "1" diff --git a/mover/chenmingnan/code/task3/chenmingnan_nft/Move.toml b/mover/chenmingnan/code/task3/chenmingnan_nft/Move.toml new file mode 100644 index 000000000..c79b9c1fd --- /dev/null +++ b/mover/chenmingnan/code/task3/chenmingnan_nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "chenmingnan_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://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] +chenmingnan_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/chenmingnan/code/task3/chenmingnan_nft/sources/chenmingnan_nft.move b/mover/chenmingnan/code/task3/chenmingnan_nft/sources/chenmingnan_nft.move new file mode 100644 index 000000000..3444b6a5b --- /dev/null +++ b/mover/chenmingnan/code/task3/chenmingnan_nft/sources/chenmingnan_nft.move @@ -0,0 +1,62 @@ + +module chenmingnan_nft::chenmingnan_nft { + + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct CHENMINGNAN_NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: CHENMINGNAN_NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"chenmingnan"), + description: string::utf8(b"chenmingnan NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/62949979?v=4" + ) + }; + transfer::public_transfer(nft, recipient); + } +} \ No newline at end of file diff --git a/mover/chenmingnan/code/task3/chenmingnan_nft/tests/chenmingnan_nft_tests.move b/mover/chenmingnan/code/task3/chenmingnan_nft/tests/chenmingnan_nft_tests.move new file mode 100644 index 000000000..9234eb020 --- /dev/null +++ b/mover/chenmingnan/code/task3/chenmingnan_nft/tests/chenmingnan_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module chenmingnan_nft::chenmingnan_nft_tests { + // uncomment this line to import the module + // use chenmingnan_nft::chenmingnan_nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_chenmingnan_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::chenmingnan_nft::chenmingnan_nft_tests::ENotImplemented)] + fun test_chenmingnan_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/chenmingnan/code/task4/game/Move.lock b/mover/chenmingnan/code/task4/game/Move.lock new file mode 100644 index 000000000..0e51be5c7 --- /dev/null +++ b/mover/chenmingnan/code/task4/game/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "7BC81EE7D5B76ECFCD5AB7348D00F8DB7D28EBCF0DDB180BDA6D422CDFEA393C" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x90cc48cae3c65926d1708596e1d22b0edfb20afd03ec62609108e060d160aaed" +latest-published-id = "0x90cc48cae3c65926d1708596e1d22b0edfb20afd03ec62609108e060d160aaed" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xe11222d024af83247e1f7e5d5f60f36ed68a8d352d374dc4b855e0f427efedf0" +latest-published-id = "0xe11222d024af83247e1f7e5d5f60f36ed68a8d352d374dc4b855e0f427efedf0" +published-version = "1" diff --git a/mover/chenmingnan/code/task4/game/Move.toml b/mover/chenmingnan/code/task4/game/Move.toml new file mode 100644 index 000000000..83788c73a --- /dev/null +++ b/mover/chenmingnan/code/task4/game/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "game" +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/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] +game = "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/chenmingnan/code/task4/game/sources/game.move b/mover/chenmingnan/code/task4/game/sources/game.move new file mode 100644 index 000000000..c2b6a5c7b --- /dev/null +++ b/mover/chenmingnan/code/task4/game/sources/game.move @@ -0,0 +1,47 @@ +module game::game { + use std::string; + use sui::event; + use sui::clock::{Self, Clock}; + + // 事件结构体定义 + public struct GameResultEvent has drop, copy { + user_choice: u64, + random_choice: u64, + result: string::String, + } + + // 生成随机选择 + fun get_random_choice(clock: &Clock): u64 { + let time = clock::timestamp_ms(clock); + let random_choice = time % 3; // 0: 石头, 1: 剪刀, 2: 布 + random_choice + } + + // 判断游戏结果 + fun determine_result(user_choice: u64, random_choice: u64): string::String { + if (user_choice == random_choice) { + string::utf8(b"draw") + } else if ((user_choice == 0 && random_choice == 1) || // 石头赢剪刀 + (user_choice == 1 && random_choice == 2) || // 剪刀赢布 + (user_choice == 2 && random_choice == 0)) { // 布赢石头 + string::utf8(b"you win") + } else { + string::utf8(b"you lose") + } + } + + // 石头剪刀布游戏逻辑 + public entry fun play(user_choice: u64, clock: &Clock) { + // 断言输入的选择在合理范围内 + assert!(user_choice < 3, 0); + + // 获取系统的随机选择 + let random_choice = get_random_choice(clock); + + // 判断游戏结果 + let result = determine_result(user_choice, random_choice); + + // 触发事件 + event::emit(GameResultEvent { user_choice, random_choice, result }); + } +} diff --git a/mover/chenmingnan/code/task4/game/tests/game_tests.move b/mover/chenmingnan/code/task4/game/tests/game_tests.move new file mode 100644 index 000000000..c7dbc671a --- /dev/null +++ b/mover/chenmingnan/code/task4/game/tests/game_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module game::game_tests { + // uncomment this line to import the module + // use game::game; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_game() { + // pass + } + + #[test, expected_failure(abort_code = ::game::game_tests::ENotImplemented)] + fun test_game_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/chenmingnan/notes/readme.md b/mover/chenmingnan/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/chenmingnan/notes/task7/WechatIMG3291.jpg b/mover/chenmingnan/notes/task7/WechatIMG3291.jpg new file mode 100644 index 000000000..89d8d29ce Binary files /dev/null and b/mover/chenmingnan/notes/task7/WechatIMG3291.jpg differ diff --git a/mover/chenmingnan/readme.md b/mover/chenmingnan/readme.md new file mode 100644 index 000000000..991be9aa5 --- /dev/null +++ b/mover/chenmingnan/readme.md @@ -0,0 +1,44 @@ +## 基本信息 +- Sui钱包地址: `0xeaa87ec635bd3c0134d4bdb110642157b9c25d48a1ac88655473db5c954c5314` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `chenmingnan` + +## 个人简介 +- 工作经验: 研究生 +- 技术栈: `Python` +- 初学 Python,对 move 感兴趣 +- 联系方式: tg: `cmn` + +## 任务 + +## 01 hello move +- [x] package id: 0x63a38cee199811378decd74e5000899b424756be716de124232b894476ff7bb7 + +## 02 move coin +- [x] My Coin package id : 0x452ca38d56417a29e8643670a31849211ab97742d99b33ff4599260188e60326 +- [x] Faucet package id : 0xbae98367fae50287574e44c87f4d0a11c4a03e777eef2b78460bb0e571a84099 +- [x] 转账 `My Coin` hash : 4GcQ5qnMsjNCbPuDHhZYkgoxYqaVg6YnEHkKp2VgR7Uo + +## 03 move NFT +- [x] nft package id : 0x8c17d23917938aa01bb61fa9ee8ffab5c999f4ef2b47978ffabe111c5c4827b4 +- [x] nft object id : 0x2d577c06661f0ca3633b08872e519a5873f6ff78382407b5563f251f9f48e869 +- [x] 转账 nft hash: 1415tF87kN4rpzqvcGGxK7wEFZamgEsoYUsYH2UKN9XL + +## 04 Move Game +- [x] game package id : 0xe11222d024af83247e1f7e5d5f60f36ed68a8d352d374dc4b855e0f427efedf0 +- [x] call game hash: EpfyN4umuuo4z33mxvzXMEHUsLxn6TNd5xATdBrq4Xmb + +## 05 Move Swap +- [] swap package id : +- [] call swap hash: + +## 06 SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图: ![CLI](./notes/task7/WechatIMG3291.jpg) +- [x] flag hash: 8YnAUm8qjSkfqZnhh2oxcvWWAG1bcXtfbSgqcgpFDD44 + +## 08 Move CTF Lets Move +- [x] Proof: `86636586` +- [x] Transaction block: `8vmrR3VdVrnfp1KrtbMGsuPiZ7qm4BaaCRdYTjxLMnFH` \ No newline at end of file diff --git a/mover/chmod777john/readme.md b/mover/chmod777john/readme.md index 21eafa6ce..d38798b8e 100644 --- a/mover/chmod777john/readme.md +++ b/mover/chmod777john/readme.md @@ -19,4 +19,7 @@ - [] package id: 0x3d74725bf9be7475c2371b2d8b5393ee99262760c35cb6427127b84b72b1fb83 - [] package id 在 scan上的查看截图: ![image](https://github.com/chmod777john/letsmove/assets/146207719/0e739627-9ea2-4477-a3d7-3c10dfd88e4f) +## 07 Move CTF Check In +- [x] CLI call 截图 : ![image](https://github.com/chmod777john/letsmove/assets/146207719/3b97ef59-b53c-4777-9755-1e93c5e61f90) +- [x] flag hash : F5nj8crmFYvJYCuZq84EV4Y3WfQ5UmZrJcAo5Yz7nfRU diff --git a/mover/colin755/code/hello_dapp/README.md b/mover/colin755/code/hello_dapp/README.md new file mode 100644 index 000000000..ec054a25a --- /dev/null +++ b/mover/colin755/code/hello_dapp/README.md @@ -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": "" + } +}' +``` + +### 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 = ""; +``` + +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 +``` diff --git a/mover/colin755/code/hello_dapp/index.html b/mover/colin755/code/hello_dapp/index.html new file mode 100644 index 000000000..bb7f75b16 --- /dev/null +++ b/mover/colin755/code/hello_dapp/index.html @@ -0,0 +1,59 @@ + + + + + + + Sui dApp Starter + + + + +
+ + + diff --git a/mover/colin755/code/hello_dapp/move/counter/Move.lock b/mover/colin755/code/hello_dapp/move/counter/Move.lock new file mode 100644 index 000000000..f616d8ea4 --- /dev/null +++ b/mover/colin755/code/hello_dapp/move/counter/Move.lock @@ -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 = "0xd84aa68711922334e2f79c130c329cff71417cf4cae063cf39feee225205570d" +latest-published-id = "0xd84aa68711922334e2f79c130c329cff71417cf4cae063cf39feee225205570d" +published-version = "1" diff --git a/mover/colin755/code/hello_dapp/move/counter/Move.toml b/mover/colin755/code/hello_dapp/move/counter/Move.toml new file mode 100644 index 000000000..94e850382 --- /dev/null +++ b/mover/colin755/code/hello_dapp/move/counter/Move.toml @@ -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" diff --git a/mover/colin755/code/hello_dapp/move/counter/sources/counter.move b/mover/colin755/code/hello_dapp/move/counter/sources/counter.move new file mode 100644 index 000000000..857c95d19 --- /dev/null +++ b/mover/colin755/code/hello_dapp/move/counter/sources/counter.move @@ -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) + } +} diff --git a/mover/colin755/code/hello_dapp/package.json b/mover/colin755/code/hello_dapp/package.json new file mode 100644 index 000000000..4bd181970 --- /dev/null +++ b/mover/colin755/code/hello_dapp/package.json @@ -0,0 +1,35 @@ +{ + "name": "hello_dapp", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@mysten/dapp-kit": "0.14.10", + "@mysten/sui": "1.2.0", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@tanstack/react-query": "^5.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } +} \ No newline at end of file diff --git a/mover/colin755/code/hello_dapp/pnpm-lock.yaml b/mover/colin755/code/hello_dapp/pnpm-lock.yaml new file mode 100644 index 000000000..41b9e3f4e --- /dev/null +++ b/mover/colin755/code/hello_dapp/pnpm-lock.yaml @@ -0,0 +1,3476 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@mysten/dapp-kit': + specifier: 0.14.10 + version: 0.14.10(@tanstack/react-query@5.49.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(svelte@4.2.18)(typescript@5.5.2) + '@mysten/sui': + specifier: 1.2.0 + version: 1.2.0(svelte@4.2.18)(typescript@5.5.2) + '@radix-ui/colors': + specifier: ^3.0.0 + version: 3.0.0 + '@radix-ui/react-icons': + specifier: ^1.3.0 + version: 1.3.0(react@18.3.1) + '@radix-ui/themes': + specifier: ^2.0.0 + version: 2.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@tanstack/react-query': + specifier: ^5.0.0 + version: 5.49.0(react@18.3.1) + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) + +devDependencies: + '@types/react': + specifier: ^18.2.15 + version: 18.3.3 + '@types/react-dom': + specifier: ^18.2.7 + version: 18.3.0 + '@typescript-eslint/eslint-plugin': + specifier: ^6.1.0 + version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/parser': + specifier: ^6.1.0 + version: 6.21.0(eslint@8.57.0)(typescript@5.5.2) + '@vitejs/plugin-react-swc': + specifier: ^3.3.2 + version: 3.7.0(vite@4.5.3) + eslint: + specifier: ^8.45.0 + version: 8.57.0 + eslint-plugin-react-hooks: + specifier: ^4.6.0 + version: 4.6.2(eslint@8.57.0) + eslint-plugin-react-refresh: + specifier: ^0.4.3 + version: 0.4.7(eslint@8.57.0) + prettier: + specifier: ^3.0.0 + version: 3.3.2 + typescript: + specifier: ^5.3.3 + version: 5.5.2 + vite: + specifier: ^4.4.4 + version: 4.5.3 + +packages: + + /@0no-co/graphql.web@1.0.7(graphql@16.9.0): + resolution: {integrity: sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + graphql: + optional: true + dependencies: + graphql: 16.9.0 + dev: false + + /@0no-co/graphqlsp@1.12.10(graphql@16.9.0)(typescript@5.5.2): + resolution: {integrity: sha512-PrkGVc+XhSjU+7ALSjd4ANlyRZkKOdmOGqj7bqPcKI6C+opuN5MeXSBWKE9383EW27/+MkY+/U1LAaCoZKtkfQ==} + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + typescript: ^5.0.0 + dependencies: + '@gql.tada/internal': 1.0.2(graphql@16.9.0)(typescript@5.5.2) + graphql: 16.9.0 + typescript: 5.5.2 + dev: false + + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + dev: false + + /@babel/helper-string-parser@7.24.7: + resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/helper-validator-identifier@7.24.7: + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/parser@7.24.7: + resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.24.7 + dev: false + + /@babel/runtime@7.24.7: + resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + dev: false + + /@babel/types@7.24.7: + resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + dev: false + + /@emotion/hash@0.9.1: + resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} + dev: false + + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.11.0: + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.5 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@floating-ui/core@1.6.3: + resolution: {integrity: sha512-1ZpCvYf788/ZXOhRQGFxnYQOVgeU+pi0i+d0Ow34La7qjIXETi6RNswGVKkA6KcDO8/+Ysu2E/CeUmmeEBDvTg==} + dependencies: + '@floating-ui/utils': 0.2.3 + dev: false + + /@floating-ui/dom@1.6.6: + resolution: {integrity: sha512-qiTYajAnh3P+38kECeffMSQgbvXty2VB6rS+42iWR4FPIlZjLK84E9qtLnMTLIpPz2znD/TaFqaiavMUrS+Hcw==} + dependencies: + '@floating-ui/core': 1.6.3 + '@floating-ui/utils': 0.2.3 + dev: false + + /@floating-ui/react-dom@2.1.1(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': 1.6.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@floating-ui/utils@0.2.3: + resolution: {integrity: sha512-XGndio0l5/Gvd6CLIABvsav9HHezgDFFhDfHk1bvLfr9ni8dojqLSvBbotJEjmIwNHL7vK4QzBJTdBRoB+c1ww==} + dev: false + + /@gql.tada/cli-utils@1.4.0(@0no-co/graphqlsp@1.12.10)(graphql@16.9.0)(svelte@4.2.18)(typescript@5.5.2): + resolution: {integrity: sha512-8CeKMsUHQSj2MVTJqb6LRfanfhfDrPyfmiYuLY75/aKnRBk70Oe3m7YuBc6/QzatLjj6egxPezNdt25MTluSpg==} + peerDependencies: + '@0no-co/graphqlsp': ^1.12.9 + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + typescript: ^5.0.0 + dependencies: + '@0no-co/graphqlsp': 1.12.10(graphql@16.9.0)(typescript@5.5.2) + '@gql.tada/internal': 1.0.2(graphql@16.9.0)(typescript@5.5.2) + '@vue/compiler-dom': 3.4.31 + '@vue/language-core': 2.0.22(typescript@5.5.2) + graphql: 16.9.0 + svelte2tsx: 0.7.13(svelte@4.2.18)(typescript@5.5.2) + typescript: 5.5.2 + transitivePeerDependencies: + - svelte + dev: false + + /@gql.tada/internal@1.0.2(graphql@16.9.0)(typescript@5.5.2): + resolution: {integrity: sha512-5PH+l47yRpz97YCuKiBdIyLRRCM9fJ56J7yEnwMny1RIR8U4CV39eT0VokvHUjFY6x2Kxh4fH4KeJYezssiOXw==} + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + typescript: ^5.0.0 + dependencies: + '@0no-co/graphql.web': 1.0.7(graphql@16.9.0) + graphql: 16.9.0 + typescript: 5.5.2 + dev: false + + /@graphql-typed-document-node/core@3.2.0(graphql@16.9.0): + resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + graphql: 16.9.0 + dev: false + + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.5 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@2.0.3: + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + dev: true + + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + dev: false + + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: false + + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: false + + /@mysten/bcs@1.0.2: + resolution: {integrity: sha512-haHT0km/9yIIe8lwo8gDFxGLnoxfRF4WmEVCz4lDXbEVQRsZkF0zB97kukiwMjDuFBaGVUhrOMCLz6td8tSMaQ==} + dependencies: + bs58: 5.0.0 + dev: false + + /@mysten/dapp-kit@0.14.10(@tanstack/react-query@5.49.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(svelte@4.2.18)(typescript@5.5.2): + resolution: {integrity: sha512-IjCRND4pgr8nr2fLg9XLEACtyxTO1Y4/Fl8/5taxZyhb09kTfS7hcpHkRw3xPmJ/b83DOQW3X0/l/d213k4OVQ==} + peerDependencies: + '@tanstack/react-query': ^5.0.0 + react: '*' + dependencies: + '@mysten/sui': 1.2.0(svelte@4.2.18)(typescript@5.5.2) + '@mysten/wallet-standard': 0.12.10(svelte@4.2.18)(typescript@5.5.2) + '@mysten/zksend': 0.9.10(svelte@4.2.18)(typescript@5.5.2) + '@radix-ui/react-dialog': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-dropdown-menu': 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@tanstack/react-query': 5.49.0(react@18.3.1) + '@vanilla-extract/css': 1.15.3 + '@vanilla-extract/dynamic': 2.1.1 + '@vanilla-extract/recipes': 0.5.3(@vanilla-extract/css@1.15.3) + clsx: 2.1.1 + react: 18.3.1 + zustand: 4.5.4(@types/react@18.3.3)(react@18.3.1) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - babel-plugin-macros + - immer + - react-dom + - svelte + - typescript + dev: false + + /@mysten/sui@1.2.0(svelte@4.2.18)(typescript@5.5.2): + resolution: {integrity: sha512-USDOckZPGcwi2QAuKHEcieoVuW8Xgsm8vtKyXaRrhVLG2t2q3hCEigquiLXh7S3okBbD/P35xjvhR9PdUeqweA==} + engines: {node: '>=18'} + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + '@mysten/bcs': 1.0.2 + '@noble/curves': 1.4.0 + '@noble/hashes': 1.4.0 + '@scure/bip32': 1.4.0 + '@scure/bip39': 1.3.0 + '@suchipi/femver': 1.0.0 + bech32: 2.0.0 + gql.tada: 1.8.0(graphql@16.9.0)(svelte@4.2.18)(typescript@5.5.2) + graphql: 16.9.0 + tweetnacl: 1.0.3 + valibot: 0.25.0 + transitivePeerDependencies: + - svelte + - typescript + dev: false + + /@mysten/wallet-standard@0.12.10(svelte@4.2.18)(typescript@5.5.2): + resolution: {integrity: sha512-hwy9S63D/J9llrGHDRqmJTauUcAL2tKeiRut9NdePCe4BJphzowwZxTLZTsyam4fT2K2yvufyVZwp4Ij4FII6Q==} + dependencies: + '@mysten/sui': 1.2.0(svelte@4.2.18)(typescript@5.5.2) + '@wallet-standard/core': 1.0.3 + transitivePeerDependencies: + - svelte + - typescript + dev: false + + /@mysten/zksend@0.9.10(svelte@4.2.18)(typescript@5.5.2): + resolution: {integrity: sha512-ExKtKZT9bL3BKTQZww1zOv8gFDju/40rx2kqjO+qy2Ju+0Mc3jmtoR7NYpCdPK19DvvOl0eKGs6f2P+LN0+rlQ==} + dependencies: + '@mysten/sui': 1.2.0(svelte@4.2.18)(typescript@5.5.2) + '@mysten/wallet-standard': 0.12.10(svelte@4.2.18)(typescript@5.5.2) + mitt: 3.0.1 + nanostores: 0.9.5 + valibot: 0.25.0 + transitivePeerDependencies: + - svelte + - typescript + dev: false + + /@noble/curves@1.4.0: + resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==} + dependencies: + '@noble/hashes': 1.4.0 + dev: false + + /@noble/hashes@1.4.0: + resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} + engines: {node: '>= 16'} + dev: false + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + dev: true + + /@radix-ui/colors@3.0.0: + resolution: {integrity: sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==} + dev: false + + /@radix-ui/number@1.1.0: + resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==} + dev: false + + /@radix-ui/primitive@1.0.1: + resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} + dependencies: + '@babel/runtime': 7.24.7 + dev: false + + /@radix-ui/primitive@1.1.0: + resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==} + dev: false + + /@radix-ui/react-accessible-icon@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-i9Zg4NOSXlfUva0agzI2DjWrvFJm9uO4L6CMW7nmMa5CIOOX/Yin894W7WwjodFQWPwe5kmAJ4JF33R8slKI2g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-alert-dialog@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-wmCoJwj7byuVuiLKqDLlX7ClSUU0vd9sdCeM+2Ls+uf13+cpSJoMgwysHq1SGVVkJj5Xn0XWi1NoRCdkMpr6Mw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-dialog': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-aspect-ratio@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-dP87DM/Y7jFlPgUZTlhx6FF5CEzOiaxp2rBCKlaXlpH5Ip/9Fg5zZ9lDOQ5o/MOfUlf36eak14zoWYpgcgGoOg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-avatar@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-Q/PbuSMk/vyAd/UoIShVGZ7StHHeRFYU7wXmi5GV+8cLXflZAEpHL/F697H1klrzxKXNtZ97vWiC0q3RKUH8UA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-checkbox@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-0i/EKJ222Afa1FE0C6pNJxDq1itzcl3HChE9DwskA4th4KRse8ojx8a1nVcOjwJdbpDLcz7uol77yYnQNMHdKw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.7 + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-context-menu@2.2.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-wvMKKIeb3eOrkJ96s722vcidZ+2ZNfcYZWBPRHIB1VWrF+fiF851Io6LX0kmK5wTDQFKdulCCKJk2c3SBaQHvA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-menu': 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-context@1.0.1(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.7 + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-context@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-dialog@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + aria-hidden: 1.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.5.7(@types/react@18.3.3)(react@18.3.1) + dev: false + + /@radix-ui/react-direction@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-dropdown-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-y8E+x9fBq9qvteD2Zwa4397pUVhYsh9iq44b5RD5qu1GMJWBCBuVg1hMyItbc6+zH00TxGRqd9Iot4wzf3OoBQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-menu': 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-focus-guards@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-form@0.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-kgE+Z/haV6fxE5WqIXj05KkaXa3OkZASoTDy25yX2EIp/x0c54rOH/vFr5nOZTg7n7T1z8bSyXmiVIFP9bbhPQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.7 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-label': 2.0.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-hover-card@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-IwzAOP97hQpDADYVKrEEHUH/b2LA+9MgB0LgdmnbFO2u/3M5hmEofjjr2M6CyzUblaAqJdFm6B7oFtU72DPXrA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-icons@1.3.0(react@18.3.1): + resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==} + peerDependencies: + react: ^16.x || ^17.x || ^18.x + dependencies: + react: 18.3.1 + dev: false + + /@radix-ui/react-id@1.0.1(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.7 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-id@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-label@2.0.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-oa3mXRRVjHi6DZu/ghuzdylyjaMXLymx83irM7hTxutQbD+7IhPKdMdRHD26Rm+kHRrWcrUkkRPv5pd47a2xFQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + aria-hidden: 1.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.5.7(@types/react@18.3.3)(react@18.3.1) + dev: false + + /@radix-ui/react-popover@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-3y1A3isulwnWhvTTwmIreiB8CF4L+qRjZnK1wYLO7pplddzXKby/GnZ2M7OZY3qgnl6p9AodUIHRYGXNah8Y7g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + aria-hidden: 1.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.5.7(@types/react@18.3.3)(react@18.3.1) + dev: false + + /@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@floating-ui/react-dom': 2.1.1(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/rect': 1.1.0 + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-portal@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.7 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-radio-group@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-yv+oiLaicYMBpqgfpSPw6q+RyXlLdIpQWDHZbUKURxe+nEh53hFXPPlfhfQQtYkS5MMK/5IWIa76SksleQZSzw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-scroll-area@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-9ArIZ9HWhsrfqS765h+GZuLoxaRHD/j0ZWOWilsCvYTpYJp8XwCqNG7Dt9Nu/TItKOdgLGkOPCodQvDc+UMwYg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/number': 1.1.0 + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-select@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-8iRDfyLtzxlprOo9IicnzvpsO1wNCkuwzzCM+Z5Rb5tNOpCdMvcc2AkzX0Fz+Tz9v6NJ5B/7EEgyZveo4FBRfQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/number': 1.1.0 + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + aria-hidden: 1.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.5.7(@types/react@18.3.3)(react@18.3.1) + dev: false + + /@radix-ui/react-separator@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-slider@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-dAHCDA4/ySXROEPaRtaMV5WHL8+JB/DbtyTbJjYkY0RXmKMO2Ln8DFZhywG5/mVQ4WqHDBc8smc14yPXPqZHYA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/number': 1.1.0 + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-slot@1.0.2(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-slot@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-switch@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-OBzy5WAj641k0AOSpKQtreDMe+isX0MQJ1IVyF03ucdF3DunOnROVrjWs8zsXUxC3zfZ6JL9HFVCUlMghz9dJw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-tabs@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-bZgOKB/LtZIij75FSuPzyEti/XBhJH52ExgtdVqjCIh+Nx/FW+LhnbXtbCzIi34ccyMsyOja8T0thCzoHFXNKA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-tooltip@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-9XRsLwe6Yb9B/tlnYCPVUd/TFS4J7HuOZW345DCeC6vKIxQGMZdx21RK4VoZauPD5frgkXTYVS5y90L+3YBn4w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.7 + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-use-previous@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-use-rect@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/rect': 1.1.0 + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-use-size@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/rect@1.1.0: + resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} + dev: false + + /@radix-ui/themes@2.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-yaXQ8aWT2P1CQ0Xe6YCRD9HXsfMTvKkrIYkrc4aitCzhGTLS0sjtTqKmrxIWMVA+3DIbEuG9K/8aAMRJBhep8g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/colors': 3.0.0 + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-accessible-icon': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-alert-dialog': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-aspect-ratio': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-avatar': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-checkbox': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-context-menu': 2.2.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-dialog': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-dropdown-menu': 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-form': 0.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-hover-card': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-popover': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-radio-group': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-scroll-area': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-select': 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-separator': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slider': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-switch': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-tabs': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-tooltip': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + classnames: 2.5.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@scure/base@1.1.7: + resolution: {integrity: sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==} + dev: false + + /@scure/bip32@1.4.0: + resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} + dependencies: + '@noble/curves': 1.4.0 + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.7 + dev: false + + /@scure/bip39@1.3.0: + resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} + dependencies: + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.7 + dev: false + + /@suchipi/femver@1.0.0: + resolution: {integrity: sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==} + dev: false + + /@swc/core-darwin-arm64@1.6.6: + resolution: {integrity: sha512-5DA8NUGECcbcK1YLKJwNDKqdtTYDVnkfDU1WvQSXq/rU+bjYCLtn5gCe8/yzL7ISXA6rwqPU1RDejhbNt4ARLQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64@1.6.6: + resolution: {integrity: sha512-2nbh/RHpweNRsJiYDFk1KcX7UtaKgzzTNUjwtvK5cp0wWrpbXmPvdlWOx3yzwoiSASDFx78242JHHXCIOlEdsw==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm-gnueabihf@1.6.6: + resolution: {integrity: sha512-YgytuyUfR7b0z0SRHKV+ylr83HmgnROgeT7xryEkth6JGpAEHooCspQ4RrWTU8+WKJ7aXiZlGXPgybQ4TiS+TA==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-gnu@1.6.6: + resolution: {integrity: sha512-yGwx9fddzEE0iURqRVwKBQ4IwRHE6hNhl15WliHpi/PcYhzmYkUIpcbRXjr0dssubXAVPVnx6+jZVDSbutvnfg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl@1.6.6: + resolution: {integrity: sha512-a6fMbqzSAsS5KCxFJyg1mD5kwN3ZFO8qQLyJ75R/htZP/eCt05jrhmOI7h2n+1HjiG332jLnZ9S8lkVE5O8Nqw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-gnu@1.6.6: + resolution: {integrity: sha512-hRGsUKNzzZle28YF0dYIpN0bt9PceR9LaVBq7x8+l9TAaDLFbgksSxcnU/ubTtsy+WsYSYGn+A83w3xWC0O8CQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-musl@1.6.6: + resolution: {integrity: sha512-NokIUtFxJDVv3LzGeEtYMTV3j2dnGKLac59luTeq36DQLZdJQawQIdTbzzWl2jE7lxxTZme+dhsVOH9LxE3ceg==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-arm64-msvc@1.6.6: + resolution: {integrity: sha512-lzYdI4qb4k1dFG26yv+9Jaq/bUMAhgs/2JsrLncGjLof86+uj74wKYCQnbzKAsq2hDtS5DqnHnl+//J+miZfGA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-ia32-msvc@1.6.6: + resolution: {integrity: sha512-bvl7FMaXIJQ76WZU0ER4+RyfKIMGb6S2MgRkBhJOOp0i7VFx4WLOnrmMzaeoPJaJSkityVKAftfNh7NBzTIydQ==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-x64-msvc@1.6.6: + resolution: {integrity: sha512-WAP0JoCTfgeYKgOeYJoJV4ZS0sQUmU3OwvXa2dYYtMLF7zsNqOiW4niU7QlThBHgUv/qNZm2p6ITEgh3w1cltw==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core@1.6.6: + resolution: {integrity: sha512-sHfmIUPUXNrQTwFMVCY5V5Ena2GTOeaWjS2GFUpjLhAgVfP90OP67DWow7+cYrfFtqBdILHuWnjkTcd0+uPKlg==} + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.9 + optionalDependencies: + '@swc/core-darwin-arm64': 1.6.6 + '@swc/core-darwin-x64': 1.6.6 + '@swc/core-linux-arm-gnueabihf': 1.6.6 + '@swc/core-linux-arm64-gnu': 1.6.6 + '@swc/core-linux-arm64-musl': 1.6.6 + '@swc/core-linux-x64-gnu': 1.6.6 + '@swc/core-linux-x64-musl': 1.6.6 + '@swc/core-win32-arm64-msvc': 1.6.6 + '@swc/core-win32-ia32-msvc': 1.6.6 + '@swc/core-win32-x64-msvc': 1.6.6 + dev: true + + /@swc/counter@0.1.3: + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + dev: true + + /@swc/types@0.1.9: + resolution: {integrity: sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg==} + dependencies: + '@swc/counter': 0.1.3 + dev: true + + /@tanstack/query-core@5.49.0: + resolution: {integrity: sha512-xUTjCPHC8G+ZvIUzjoMOLnMpNXYPQI4HjhlizTVVBwtSp24iWo4/kaBzHAzsrCVyfbiaPIFFkUvicsY4r8kF8A==} + dev: false + + /@tanstack/react-query@5.49.0(react@18.3.1): + resolution: {integrity: sha512-3A0BDwGVk6UzWFdz+WTC9HHts9kI42XYLK78/DGmoj9fd6W/NsjEjI5S4lPPebgq9cWWPo9QNciaSWfH71RgNg==} + peerDependencies: + react: ^18.0.0 + dependencies: + '@tanstack/query-core': 5.49.0 + react: 18.3.1 + dev: false + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: false + + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true + + /@types/prop-types@15.7.12: + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + + /@types/react-dom@18.3.0: + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + dependencies: + '@types/react': 18.3.3 + + /@types/react@18.3.3: + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} + dependencies: + '@types/prop-types': 15.7.12 + csstype: 3.1.3 + + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + dev: true + + /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.5.2): + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.5 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@5.5.2) + typescript: 5.5.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.2): + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.2) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.5 + eslint: 8.57.0 + typescript: 5.5.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@6.21.0: + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + dev: true + + /@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.5.2): + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.2) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.5.2) + debug: 4.3.5 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.5.2) + typescript: 5.5.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@6.21.0: + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.5.2): + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.5 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@5.5.2) + typescript: 5.5.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.5.2): + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.2) + eslint: 8.57.0 + semver: 7.6.2 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@6.21.0: + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + + /@vanilla-extract/css@1.15.3: + resolution: {integrity: sha512-mxoskDAxdQAspbkmQRxBvolUi1u1jnyy9WZGm+GeH8V2wwhEvndzl1QoK7w8JfA0WFevTxbev5d+i+xACZlPhA==} + dependencies: + '@emotion/hash': 0.9.1 + '@vanilla-extract/private': 1.0.5 + css-what: 6.1.0 + cssesc: 3.0.0 + csstype: 3.1.3 + dedent: 1.5.3 + deep-object-diff: 1.1.9 + deepmerge: 4.3.1 + media-query-parser: 2.0.2 + modern-ahocorasick: 1.0.1 + picocolors: 1.0.1 + transitivePeerDependencies: + - babel-plugin-macros + dev: false + + /@vanilla-extract/dynamic@2.1.1: + resolution: {integrity: sha512-iqf736036ujEIKsIq28UsBEMaLC2vR2DhwKyrG3NDb/fRy9qL9FKl1TqTtBV4daU30Uh3saeik4vRzN8bzQMbw==} + dependencies: + '@vanilla-extract/private': 1.0.5 + dev: false + + /@vanilla-extract/private@1.0.5: + resolution: {integrity: sha512-6YXeOEKYTA3UV+RC8DeAjFk+/okoNz/h88R+McnzA2zpaVqTR/Ep+vszkWYlGBcMNO7vEkqbq5nT/JMMvhi+tw==} + dev: false + + /@vanilla-extract/recipes@0.5.3(@vanilla-extract/css@1.15.3): + resolution: {integrity: sha512-SPREq1NmaoKuvJeOV0pppOkwy3pWZUoDufsyQ6iHrbkHhAU7XQqG9o0iZSmg5JoVgDLIiOr9djQb0x9wuxig7A==} + peerDependencies: + '@vanilla-extract/css': ^1.0.0 + dependencies: + '@vanilla-extract/css': 1.15.3 + dev: false + + /@vitejs/plugin-react-swc@3.7.0(vite@4.5.3): + resolution: {integrity: sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==} + peerDependencies: + vite: ^4 || ^5 + dependencies: + '@swc/core': 1.6.6 + vite: 4.5.3 + transitivePeerDependencies: + - '@swc/helpers' + dev: true + + /@volar/language-core@2.3.4: + resolution: {integrity: sha512-wXBhY11qG6pCDAqDnbBRFIDSIwbqkWI7no+lj5+L7IlA7HRIjRP7YQLGzT0LF4lS6eHkMSsclXqy9DwYJasZTQ==} + dependencies: + '@volar/source-map': 2.3.4 + dev: false + + /@volar/source-map@2.3.4: + resolution: {integrity: sha512-C+t63nwcblqLIVTYXaVi/+gC8NukDaDIQI72J3R7aXGvtgaVB16c+J8Iz7/VfOy7kjYv7lf5GhBny6ACw9fTGQ==} + dev: false + + /@vue/compiler-core@3.4.31: + resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==} + dependencies: + '@babel/parser': 7.24.7 + '@vue/shared': 3.4.31 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + dev: false + + /@vue/compiler-dom@3.4.31: + resolution: {integrity: sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==} + dependencies: + '@vue/compiler-core': 3.4.31 + '@vue/shared': 3.4.31 + dev: false + + /@vue/language-core@2.0.22(typescript@5.5.2): + resolution: {integrity: sha512-dNTAAtEOuMiz7N1s5tKpypnVVCtawxVSF5BukD0ELcYSw+DSbrSlYYSw8GuwvurodCeYFSHsmslE+c2sYDNoiA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@volar/language-core': 2.3.4 + '@vue/compiler-dom': 3.4.31 + '@vue/shared': 3.4.31 + computeds: 0.0.1 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + typescript: 5.5.2 + vue-template-compiler: 2.7.16 + dev: false + + /@vue/shared@3.4.31: + resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==} + dev: false + + /@wallet-standard/app@1.0.1: + resolution: {integrity: sha512-LnLYq2Vy2guTZ8GQKKSXQK3+FRGPil75XEdkZqE6fiLixJhZJoJa5hT7lXxwe0ykVTt9LEThdTbOpT7KadS26Q==} + engines: {node: '>=16'} + dependencies: + '@wallet-standard/base': 1.0.1 + dev: false + + /@wallet-standard/base@1.0.1: + resolution: {integrity: sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w==} + engines: {node: '>=16'} + dev: false + + /@wallet-standard/core@1.0.3: + resolution: {integrity: sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==} + engines: {node: '>=16'} + dependencies: + '@wallet-standard/app': 1.0.1 + '@wallet-standard/base': 1.0.1 + '@wallet-standard/features': 1.0.3 + '@wallet-standard/wallet': 1.0.1 + dev: false + + /@wallet-standard/features@1.0.3: + resolution: {integrity: sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==} + engines: {node: '>=16'} + dependencies: + '@wallet-standard/base': 1.0.1 + dev: false + + /@wallet-standard/wallet@1.0.1: + resolution: {integrity: sha512-qkhJeuQU2afQTZ02yMZE5SFc91Fo3hyFjFkpQglHudENNyiSG0oUKcIjky8X32xVSaumgTZSQUAzpXnCTWHzKQ==} + engines: {node: '>=16'} + dependencies: + '@wallet-standard/base': 1.0.1 + dev: false + + /acorn-jsx@5.3.2(acorn@8.12.0): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.12.0 + dev: true + + /acorn@8.12.0: + resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + engines: {node: '>=0.4.0'} + hasBin: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /aria-hidden@1.2.4: + resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} + engines: {node: '>=10'} + dependencies: + tslib: 2.6.3 + dev: false + + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + dev: false + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /axobject-query@4.0.0: + resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} + dependencies: + dequal: 2.0.3 + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /base-x@4.0.0: + resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==} + dev: false + + /bech32@2.0.0: + resolution: {integrity: sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==} + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.1.1 + dev: true + + /bs58@5.0.0: + resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==} + dependencies: + base-x: 4.0.0 + dev: false + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + dev: false + + /clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + dev: false + + /code-red@1.0.4: + resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + '@types/estree': 1.0.5 + acorn: 8.12.0 + estree-walker: 3.0.3 + periscopic: 3.1.0 + dev: false + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + dev: false + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.0 + dev: false + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: false + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + /de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + dev: false + + /debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /dedent-js@1.0.1: + resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} + dev: false + + /dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + dev: false + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /deep-object-diff@1.1.9: + resolution: {integrity: sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==} + dev: false + + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: false + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + + /detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + dev: false + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: false + + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + dev: true + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): + resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.57.0 + dev: true + + /eslint-plugin-react-refresh@0.4.7(eslint@8.57.0): + resolution: {integrity: sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==} + peerDependencies: + eslint: '>=7' + dependencies: + eslint: 8.57.0 + dev: true + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.11.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.5 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.12.0 + acorn-jsx: 5.3.2(acorn@8.12.0) + eslint-visitor-keys: 3.4.3 + dev: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: false + + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.5 + dev: false + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.7 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + dependencies: + reusify: 1.0.4 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.2.0 + dev: true + + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + dev: true + + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + dev: false + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /gql.tada@1.8.0(graphql@16.9.0)(svelte@4.2.18)(typescript@5.5.2): + resolution: {integrity: sha512-BsdmtWPmCb3oorPnU6DidBNsIDTjbvRc7P5LUZ43ISMz9dNsl2vFvT7i1AEsbK2xV5AtdjgywPKAFHJd4dQr6Q==} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + dependencies: + '@0no-co/graphql.web': 1.0.7(graphql@16.9.0) + '@0no-co/graphqlsp': 1.12.10(graphql@16.9.0)(typescript@5.5.2) + '@gql.tada/cli-utils': 1.4.0(@0no-co/graphqlsp@1.12.10)(graphql@16.9.0)(svelte@4.2.18)(typescript@5.5.2) + '@gql.tada/internal': 1.0.2(graphql@16.9.0)(typescript@5.5.2) + typescript: 5.5.2 + transitivePeerDependencies: + - graphql + - svelte + dev: false + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + + /graphql@16.9.0: + resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + dev: false + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: false + + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + dependencies: + '@types/estree': 1.0.5 + dev: false + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: false + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + dev: false + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: false + + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.6.3 + dev: false + + /magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: false + + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: false + + /media-query-parser@2.0.2: + resolution: {integrity: sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==} + dependencies: + '@babel/runtime': 7.24.7 + dev: false + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: false + + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + dev: false + + /modern-ahocorasick@1.0.1: + resolution: {integrity: sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==} + dev: false + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + dev: false + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /nanostores@0.9.5: + resolution: {integrity: sha512-Z+p+g8E7yzaWwOe5gEUB2Ox0rCEeXWYIZWmYvw/ajNYX8DlXdMvMDj8DWfM/subqPAcsf8l8Td4iAwO1DeIIRQ==} + engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} + dev: false + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: 2.6.3 + dev: false + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.3 + dev: false + + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + dependencies: + '@types/estree': 1.0.5 + estree-walker: 3.0.3 + is-reference: 3.0.2 + dev: false + + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prettier@3.3.2: + resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /react-dom@18.3.1(react@18.3.1): + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + dev: false + + /react-remove-scroll-bar@2.3.6(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) + tslib: 2.6.3 + dev: false + + /react-remove-scroll@2.5.7(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + react-remove-scroll-bar: 2.3.6(@types/react@18.3.3)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) + tslib: 2.6.3 + use-callback-ref: 1.3.2(@types/react@18.3.3)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1) + dev: false + + /react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 18.3.1 + tslib: 2.6.3 + dev: false + + /react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + dev: false + + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + dev: false + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /svelte2tsx@0.7.13(svelte@4.2.18)(typescript@5.5.2): + resolution: {integrity: sha512-aObZ93/kGAiLXA/I/kP+x9FriZM+GboB/ReOIGmLNbVGEd2xC+aTCppm3mk1cc9I/z60VQf7b2QDxC3jOXu3yw==} + peerDependencies: + svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 + typescript: ^4.9.4 || ^5.0.0 + dependencies: + dedent-js: 1.0.1 + pascal-case: 3.1.2 + svelte: 4.2.18 + typescript: 5.5.2 + dev: false + + /svelte@4.2.18: + resolution: {integrity: sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==} + engines: {node: '>=16'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + '@types/estree': 1.0.5 + acorn: 8.12.0 + aria-query: 5.3.0 + axobject-query: 4.0.0 + code-red: 1.0.4 + css-tree: 2.3.1 + estree-walker: 3.0.3 + is-reference: 3.0.2 + locate-character: 3.0.0 + magic-string: 0.30.10 + periscopic: 3.1.0 + dev: false + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: false + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /ts-api-utils@1.3.0(typescript@5.5.2): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.5.2 + dev: true + + /tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + dev: false + + /tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + dev: false + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /typescript@5.5.2: + resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} + engines: {node: '>=14.17'} + hasBin: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + dev: true + + /use-callback-ref@1.3.2(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + tslib: 2.6.3 + dev: false + + /use-sidecar@1.1.2(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + detect-node-es: 1.1.0 + react: 18.3.1 + tslib: 2.6.3 + dev: false + + /use-sync-external-store@1.2.0(react@18.3.1): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.3.1 + dev: false + + /valibot@0.25.0: + resolution: {integrity: sha512-cmD0ca15oyAbT75iYLNW6uU6doAeIwYfOshpXka/E1Bx4frzbkrgb7gvkI7K0YK/DVOksei4FfxWfRoBP3NFTg==} + dev: false + + /vite@4.5.3: + resolution: {integrity: sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.18.20 + postcss: 8.4.38 + rollup: 3.29.4 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: false + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /zustand@4.5.4(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0.6' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + use-sync-external-store: 1.2.0(react@18.3.1) + dev: false diff --git a/mover/colin755/code/hello_dapp/prettier.config.cjs b/mover/colin755/code/hello_dapp/prettier.config.cjs new file mode 100644 index 000000000..c07541106 --- /dev/null +++ b/mover/colin755/code/hello_dapp/prettier.config.cjs @@ -0,0 +1,4 @@ +// eslint-disable-next-line no-undef +module.exports = { + proseWrap: "always", +}; diff --git a/mover/colin755/code/hello_dapp/src/App.tsx b/mover/colin755/code/hello_dapp/src/App.tsx new file mode 100644 index 000000000..dd5506c95 --- /dev/null +++ b/mover/colin755/code/hello_dapp/src/App.tsx @@ -0,0 +1,61 @@ +import { ConnectButton, useCurrentAccount } from "@mysten/dapp-kit"; +import { isValidSuiObjectId } from "@mysten/sui/utils"; +import { Box, Container, Flex, Heading } from "@radix-ui/themes"; +import { useState } from "react"; +import { Counter } from "./Counter"; +import { CreateCounter } from "./CreateCounter"; + +function App() { + const currentAccount = useCurrentAccount(); + const [counterId, setCounter] = useState(() => { + const hash = window.location.hash.slice(1); + return isValidSuiObjectId(hash) ? hash : null; + }); + + return ( + <> + + + dApp Starter Template + + + + + + + + + {currentAccount ? ( + counterId ? ( + + ) : ( + { + window.location.hash = id; + setCounter(id); + }} + /> + ) + ) : ( + Please connect your wallet + )} + + + + ); +} + +export default App; diff --git a/mover/colin755/code/hello_dapp/src/Counter.tsx b/mover/colin755/code/hello_dapp/src/Counter.tsx new file mode 100644 index 000000000..bbd54cfd2 --- /dev/null +++ b/mover/colin755/code/hello_dapp/src/Counter.tsx @@ -0,0 +1,87 @@ +import { + useCurrentAccount, + useSignAndExecuteTransaction, + useSuiClient, + useSuiClientQuery, +} from "@mysten/dapp-kit"; +import type { SuiObjectData } from "@mysten/sui/client"; +import { Transaction } from "@mysten/sui/transactions"; +import { Button, Flex, Heading, Text } from "@radix-ui/themes"; +import { useNetworkVariable } from "./networkConfig"; + +export function Counter({ id }: { id: string }) { + const client = useSuiClient(); + const currentAccount = useCurrentAccount(); + const counterPackageId = useNetworkVariable("counterPackageId"); + const { mutate: signAndExecute } = useSignAndExecuteTransaction(); + const { data, isPending, error, refetch } = useSuiClientQuery("getObject", { + id, + options: { + showContent: true, + showOwner: true, + }, + }); + + const executeMoveCall = (method: "increment" | "reset") => { + const tx = new Transaction(); + + if (method === "reset") { + tx.moveCall({ + arguments: [tx.object(id), tx.pure.u64(0)], + target: `${counterPackageId}::counter::set_value`, + }); + } else { + tx.moveCall({ + arguments: [tx.object(id)], + target: `${counterPackageId}::counter::increment`, + }); + } + + signAndExecute( + { + transaction: tx, + }, + { + onSuccess: (tx) => { + client.waitForTransaction({ digest: tx.digest }).then(() => { + refetch(); + }); + }, + }, + ); + }; + + if (isPending) return Loading...; + + if (error) return Error: {error.message}; + + if (!data.data) return Not found; + + const ownedByCurrentAccount = + getCounterFields(data.data)?.owner === currentAccount?.address; + + return ( + <> + Counter {id} + + + Count: {getCounterFields(data.data)?.value} + + + {ownedByCurrentAccount ? ( + + ) : null} + + + + ); +} +function getCounterFields(data: SuiObjectData) { + if (data.content?.dataType !== "moveObject") { + return null; + } + + return data.content.fields as { value: number; owner: string }; +} diff --git a/mover/colin755/code/hello_dapp/src/CreateCounter.tsx b/mover/colin755/code/hello_dapp/src/CreateCounter.tsx new file mode 100644 index 000000000..38dc3f93f --- /dev/null +++ b/mover/colin755/code/hello_dapp/src/CreateCounter.tsx @@ -0,0 +1,60 @@ +import { Transaction } from "@mysten/sui/transactions"; +import { Button, Container } from "@radix-ui/themes"; +import { useSignAndExecuteTransaction, useSuiClient } from "@mysten/dapp-kit"; +import { useNetworkVariable } from "./networkConfig"; + +export function CreateCounter({ + onCreated, +}: { + onCreated: (id: string) => void; +}) { + const client = useSuiClient(); + const counterPackageId = useNetworkVariable("counterPackageId"); + const { mutate: signAndExecute } = useSignAndExecuteTransaction(); + + return ( + + + + ); + + function create() { + const tx = new Transaction(); + + tx.moveCall({ + arguments: [], + target: `${counterPackageId}::counter::create`, + }); + + signAndExecute( + { + transaction: tx, + }, + { + onSuccess: ({ digest }) => { + client + .waitForTransaction({ + digest: digest, + options: { + showEffects: true, + }, + }) + .then((tx) => { + const objectId = tx.effects?.created?.[0]?.reference?.objectId; + + if (objectId) { + onCreated(objectId); + } + }); + }, + }, + ); + } +} diff --git a/mover/colin755/code/hello_dapp/src/constants.ts b/mover/colin755/code/hello_dapp/src/constants.ts new file mode 100644 index 000000000..a05b817c4 --- /dev/null +++ b/mover/colin755/code/hello_dapp/src/constants.ts @@ -0,0 +1,3 @@ +export const DEVNET_COUNTER_PACKAGE_ID = "0xTODO"; +export const TESTNET_COUNTER_PACKAGE_ID = "0xd84aa68711922334e2f79c130c329cff71417cf4cae063cf39feee225205570d"; +export const MAINNET_COUNTER_PACKAGE_ID = "0xTODO"; diff --git a/mover/colin755/code/hello_dapp/src/main.tsx b/mover/colin755/code/hello_dapp/src/main.tsx new file mode 100644 index 000000000..55f323a5d --- /dev/null +++ b/mover/colin755/code/hello_dapp/src/main.tsx @@ -0,0 +1,26 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "@mysten/dapp-kit/dist/index.css"; +import "@radix-ui/themes/styles.css"; + +import { SuiClientProvider, WalletProvider } from "@mysten/dapp-kit"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { Theme } from "@radix-ui/themes"; +import App from "./App.tsx"; +import { networkConfig } from "./networkConfig.ts"; + +const queryClient = new QueryClient(); + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + + + + + + + , +); diff --git a/mover/colin755/code/hello_dapp/src/networkConfig.ts b/mover/colin755/code/hello_dapp/src/networkConfig.ts new file mode 100644 index 000000000..7b6f8b73d --- /dev/null +++ b/mover/colin755/code/hello_dapp/src/networkConfig.ts @@ -0,0 +1,31 @@ +import { getFullnodeUrl } from "@mysten/sui/client"; +import { + DEVNET_COUNTER_PACKAGE_ID, + TESTNET_COUNTER_PACKAGE_ID, + MAINNET_COUNTER_PACKAGE_ID, +} from "./constants.ts"; +import { createNetworkConfig } from "@mysten/dapp-kit"; + +const { networkConfig, useNetworkVariable, useNetworkVariables } = + createNetworkConfig({ + devnet: { + url: getFullnodeUrl("devnet"), + variables: { + counterPackageId: DEVNET_COUNTER_PACKAGE_ID, + }, + }, + testnet: { + url: getFullnodeUrl("testnet"), + variables: { + counterPackageId: TESTNET_COUNTER_PACKAGE_ID, + }, + }, + mainnet: { + url: getFullnodeUrl("mainnet"), + variables: { + counterPackageId: MAINNET_COUNTER_PACKAGE_ID, + }, + }, + }); + +export { useNetworkVariable, useNetworkVariables, networkConfig }; diff --git a/mover/colin755/code/hello_dapp/src/vite-env.d.ts b/mover/colin755/code/hello_dapp/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/mover/colin755/code/hello_dapp/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mover/colin755/code/hello_dapp/tsconfig.json b/mover/colin755/code/hello_dapp/tsconfig.json new file mode 100644 index 000000000..a7fc6fbf2 --- /dev/null +++ b/mover/colin755/code/hello_dapp/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/colin755/code/hello_dapp/tsconfig.node.json b/mover/colin755/code/hello_dapp/tsconfig.node.json new file mode 100644 index 000000000..42872c59f --- /dev/null +++ b/mover/colin755/code/hello_dapp/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/colin755/code/hello_dapp/vite.config.ts b/mover/colin755/code/hello_dapp/vite.config.ts new file mode 100644 index 000000000..d366e8c8d --- /dev/null +++ b/mover/colin755/code/hello_dapp/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); diff --git a/mover/colin755/code/readme.md b/mover/colin755/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/colin755/images/img.png b/mover/colin755/images/img.png new file mode 100644 index 000000000..caf87d3d2 Binary files /dev/null and b/mover/colin755/images/img.png differ diff --git a/mover/colin755/images/img_1.png b/mover/colin755/images/img_1.png new file mode 100644 index 000000000..8bdb4f977 Binary files /dev/null and b/mover/colin755/images/img_1.png differ diff --git a/mover/colin755/notes/readme.md b/mover/colin755/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/colin755/readme.md b/mover/colin755/readme.md new file mode 100644 index 000000000..7e2219554 --- /dev/null +++ b/mover/colin755/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xbf59db5da82b380ff93a98a049eb7fbeb44ed1a4debad73041d9202730aa906e` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `colin755` + +## 个人简介 +- 工作经验: 8年 +- 技术栈: `React` `Nest` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `https://t.me/ToBeBetter755` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.27.2-homebrew +- [x] Sui钱包截图: ![Sui钱包截图](./images/img.png) +- [x] package id: 0x4e5d1aa8d51a7c056836e145caef831d4355555bec500361d91b3b73475d47de +- [x] package id 在 scan上的查看截图:![Scan截图](./images/img_1.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/collaralloc/code/readme.md b/mover/collaralloc/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/collaralloc/code/task1/Hello_World/Move.lock b/mover/collaralloc/code/task1/Hello_World/Move.lock new file mode 100644 index 000000000..f3ae01030 --- /dev/null +++ b/mover/collaralloc/code/task1/Hello_World/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2C1965465457E950E0069A58521B8C873BD87C3BF27B3DA534B1BAD4CE1268C5" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x267586e17f4d649a5b2d64dbcd550f08d9c047ffe2a88f661bad0eb107608eee" +latest-published-id = "0x267586e17f4d649a5b2d64dbcd550f08d9c047ffe2a88f661bad0eb107608eee" +published-version = "1" diff --git a/mover/collaralloc/code/task1/Hello_World/Move.toml b/mover/collaralloc/code/task1/Hello_World/Move.toml new file mode 100644 index 000000000..43d509542 --- /dev/null +++ b/mover/collaralloc/code/task1/Hello_World/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "Hello_World" +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] +hello_world = "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/collaralloc/code/task1/Hello_World/sources/hello_world.move b/mover/collaralloc/code/task1/Hello_World/sources/hello_world.move new file mode 100644 index 000000000..1d32b712a --- /dev/null +++ b/mover/collaralloc/code/task1/Hello_World/sources/hello_world.move @@ -0,0 +1,23 @@ +/// Module: hello_world +module hello_world::hello_world { + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct HelloWorldObject has key, store { + id: UID, + text: string::String + } + + #[lint_allow(self_transfer)] + public fun mint(ctx: &mut TxContext) { + let object = HelloWorldObject { + id: object::new(ctx), + text: string::utf8(b"collaralloc") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } + +} + diff --git a/mover/collaralloc/code/task1/Hello_World/tests/hello_world_tests.move b/mover/collaralloc/code/task1/Hello_World/tests/hello_world_tests.move new file mode 100644 index 000000000..8fdf06eec --- /dev/null +++ b/mover/collaralloc/code/task1/Hello_World/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_world::hello_world_tests { + // uncomment this line to import the module + // use hello_world::hello_world; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_world() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_world::hello_world_tests::ENotImplemented)] + fun test_hello_world_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/collaralloc/code/task3/collar_ntf/Move.lock b/mover/collaralloc/code/task3/collar_ntf/Move.lock new file mode 100644 index 000000000..38fa164ca --- /dev/null +++ b/mover/collaralloc/code/task3/collar_ntf/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "CC005C6F2469D33B44FFD8596D6B188376106FB207563D894436D1FE00C46569" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x316933ef9b27c341cfbb4f66f1943b1c1d75d25f571e617b521fb47fb647e53e" +latest-published-id = "0x316933ef9b27c341cfbb4f66f1943b1c1d75d25f571e617b521fb47fb647e53e" +published-version = "1" diff --git a/mover/collaralloc/code/task3/collar_ntf/Move.toml b/mover/collaralloc/code/task3/collar_ntf/Move.toml new file mode 100644 index 000000000..f58486d59 --- /dev/null +++ b/mover/collaralloc/code/task3/collar_ntf/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "collar_ntf" +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] +collar_ntf = "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/collaralloc/code/task3/collar_ntf/sources/collar_ntf.move b/mover/collaralloc/code/task3/collar_ntf/sources/collar_ntf.move new file mode 100644 index 000000000..9064a556f --- /dev/null +++ b/mover/collaralloc/code/task3/collar_ntf/sources/collar_ntf.move @@ -0,0 +1,45 @@ +/// Module: collar_ntf +module collar_ntf::collar_ntf { + use sui::display; + use sui::package; + use sui::transfer; + use sui::transfer::public_transfer; + use sui::tx_context::{Self, TxContext}; + use sui::object::{Self, UID}; + use std::string::{utf8, String}; + + public struct COLLAR_NTF has drop {} + + public struct COLLARNTF has key,store { + id: UID, + name: String, + } + + fun init(otw: COLLAR_NTF, ctx: &mut sui::tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://avatars.githubusercontent.com/u/49566393"), + ]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values,ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + public entry fun mint_and_transfer(name: String, recipient: address,ctx: &mut TxContext) { + let nft = COLLARNTF{ + id: object::new(ctx), + name, + }; + public_transfer(nft, recipient) + } +} diff --git a/mover/collaralloc/code/task3/collar_ntf/tests/collar_ntf_tests.move b/mover/collaralloc/code/task3/collar_ntf/tests/collar_ntf_tests.move new file mode 100644 index 000000000..924f0ed6a --- /dev/null +++ b/mover/collaralloc/code/task3/collar_ntf/tests/collar_ntf_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module collar_ntf::collar_ntf_tests { + // uncomment this line to import the module + // use collar_ntf::collar_ntf; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_collar_ntf() { + // pass + } + + #[test, expected_failure(abort_code = ::collar_ntf::collar_ntf_tests::ENotImplemented)] + fun test_collar_ntf_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/collaralloc/images/cmd1.png b/mover/collaralloc/images/cmd1.png new file mode 100644 index 000000000..88287922e Binary files /dev/null and b/mover/collaralloc/images/cmd1.png differ diff --git a/mover/collaralloc/images/my.png b/mover/collaralloc/images/my.png new file mode 100644 index 000000000..a28bf1ca5 Binary files /dev/null and b/mover/collaralloc/images/my.png differ diff --git a/mover/collaralloc/images/package.png b/mover/collaralloc/images/package.png new file mode 100644 index 000000000..9d52d1e47 Binary files /dev/null and b/mover/collaralloc/images/package.png differ diff --git a/mover/collaralloc/images/sui.png b/mover/collaralloc/images/sui.png new file mode 100644 index 000000000..b6c9d294a Binary files /dev/null and b/mover/collaralloc/images/sui.png differ diff --git a/mover/collaralloc/notes/readme.md b/mover/collaralloc/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/collaralloc/notes/task7/task7.png b/mover/collaralloc/notes/task7/task7.png new file mode 100644 index 000000000..750b982bf Binary files /dev/null and b/mover/collaralloc/notes/task7/task7.png differ diff --git a/mover/collaralloc/notes/task8/task8.png b/mover/collaralloc/notes/task8/task8.png new file mode 100644 index 000000000..5ffe43eff Binary files /dev/null and b/mover/collaralloc/notes/task8/task8.png differ diff --git a/mover/collaralloc/readme.md b/mover/collaralloc/readme.md new file mode 100644 index 000000000..1e4b3edb3 --- /dev/null +++ b/mover/collaralloc/readme.md @@ -0,0 +1,52 @@ +## 基本信息 +- Sui钱包地址: `0x33d3d6b49592d3747c3a5c5835b0ddb66dc62ab445d415b3464ec3df96d123bb` +- github: `collaralloc` + +## 个人简介 +- 工作经验: 3年 +- 技术栈: `C/C++`, `Qt`, `Qml`, `C#`, `Python`, `JavaScript` +- 多年游戏引擎全栈开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: email: `collar@126.com` + +## 任务 + +## 01 hello move +- [x] Sui cli version: +- [x] Sui钱包截图: ![Sui钱包截图](./images/sui.png) +- [x] package id: 0x267586e17f4d649a5b2d64dbcd550f08d9c047ffe2a88f661bad0eb107608eee +- [x] package id 在 scan上的查看截图:![Scan截图](./images/package.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [x] nft package id : 0x316933ef9b27c341cfbb4f66f1943b1c1d75d25f571e617b521fb47fb647e53e +- [x] nft object id : 0x3bc521e10ebc916c745275a400d6a572e8fccb8c1335c546619bbe8513964177 +- [x] 转账 nft hash: HMoKhBQhJnLK8doBSpt6dPpgCar4VZdTsY5CpKmfTJsk +- [x] scan上的NFT截图:![Scan截图](./images/my.png) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./notes/task7/task7.png) +- [x] flag hash : 7bZV4isUAjBBmfZXZ9qao5Y7PAP1dA9rn1hkhaC9pm2f + +## 08 Move CTF Lets Move +- [x] proof : dacd7fa4a7c4faf2 +- [x] flag hash : 5AAeXVCQcuSijvcHJz3Qj9VWYQ5RRzbrMUtx7d7ryZkv diff --git a/mover/croal99/code/readme.md b/mover/croal99/code/readme.md index e69de29bb..c397fe2a6 100644 --- a/mover/croal99/code/readme.md +++ b/mover/croal99/code/readme.md @@ -0,0 +1,158 @@ +# 0x01 clock的使用 + +对前述入口函数的调用采用以下形式,将 **0x6** 作为 **Clock** 参数的地址传递: + +```move +sui client call --package --module 'clock' --function 'access' --args '0x6' --gas-budget +``` + +```move +module sui::clock { + #[test_only] + public fun create_for_testing(ctx: &mut TxContext); + + #[test_only] + public fun share_for_testing(clock: Clock); + + #[test_only] + public fun increment_for_testing(clock: &mut Clock, tick: u64); + + #[test_only] + public fun set_for_testing(clock: &mut Clock, timestamp_ms: u64); + + #[test_only] + public fun destroy_for_testing(clock: Clock); +} +``` +The next example presents a simple test that creates a Clock, increments it, and then checks its value: + +```move +module example::clock_tests { + use sui::clock::{Self, Clock}; + use sui::tx_context; + + #[test] + fun creating_a_clock_and_incrementing_it() { + let ctx = tx_context::dummy(); + let clock = clock::create_for_testing(&mut ctx); + + clock.increment_for_testing(42); + assert!(clock.timestamp_ms() == 42, 1); + + clock.set_for_testing(50); + assert!(clock.timestamp_ms() == 50, 1); + + clock.destroy_for_testing(); + } +} +``` + +# 0x02 调用其它目录下module + +faucetcoin模块的Move.toml +```toml +[package] +name = "faucetcoin" +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)"] +published-at = "0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069" + +[addresses] +faucetcoin = "0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069" +``` + +game模块的Move.toml +```toml +[addresses] +blue_game = "0x0" +faucetcoin = "0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069" + +``` + +# ref + +* mover/JonathanSimon123/code/task4 +* mover/yemachine/code/game + +# swap + +```move +module sample::test01 { + + public struct Object has key, store { + id: UID, + scarcity: u8, + style: u8, + } + + public fun new(scarcity: u8, style: u8, ctx: &mut TxContext): Object { + Object { + id: object::new(ctx), + scarcity, + style + } + } + + // === Tests === + #[test_only] use sui::test_scenario as ts; + + #[test] + fun test_new() { + let mut ts = ts::begin(@0x0); + let alice = @0xA; + let bob = @0xB; + let custodian = @0xC; + + let i1 = { + ts::next_tx(&mut ts, alice); + let o1 = new(1, 0, ts::ctx(&mut ts)); + }; + + ts::end(ts); + // pass + } + +} +``` + + +# 范型 (Generics) + +## Generic Syntax +To define a generic type or function, a type signature needs to have a list of generic parameters enclosed in angle brackets (< and >). The generic parameters are separated by commas. +```move +/// Container for any type `T`. +public struct Container has drop { + value: T, +} + +/// Function that creates a new `Container` with a generic value `T`. +public fun new(value: T): Container { + Container { value } +} + +/// Function that creates a new `Container` with a generic value `T`. +public fun new2(): Container { + Container { value: 0 } +} +``` + +调用方法 +```move +#[test] +fun test_container() { + // these three lines are equivalent + let container: Container = new(10); // type inference + let container = new(10); // create a new `Container` with a `u8` value + let container = new2(); // create a new `Container` with `u8` type and void param! + let container = new(10u8); + + assert!(container.value == 10, 0x0); + + // Value can be ignored only if it has the `drop` ability. + let Container { value: _ } = container; + +} + +``` \ No newline at end of file diff --git a/mover/croal99/code/task_01/Move.toml b/mover/croal99/code/task_01/Move.toml index 201de1731..3b695a45d 100644 --- a/mover/croal99/code/task_01/Move.toml +++ b/mover/croal99/code/task_01/Move.toml @@ -20,6 +20,7 @@ Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-fram [addresses] hello_world = "0x0" +myaddress = "0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" # Named addresses will be accessible in Move as `@name`. They're also exported: # for example, `std = "0x1"` is exported by the Standard Library. diff --git a/mover/croal99/code/task_01/sources/hello_world.move b/mover/croal99/code/task_01/sources/hello_world.move index 15e90c696..85c495dab 100644 --- a/mover/croal99/code/task_01/sources/hello_world.move +++ b/mover/croal99/code/task_01/sources/hello_world.move @@ -1,6 +1,8 @@ +#[allow(duplicate_alias)] /// Module: hello_world module hello_world::hello_world { use std::string; + use std::debug; use sui::object::{Self, UID}; use sui::transfer; use sui::tx_context::{Self, TxContext}; @@ -14,10 +16,13 @@ module hello_world::hello_world { #[lint_allow(self_transfer)] public fun mint(ctx: &mut TxContext) { + let h1 = @myaddress; let object = HelloWorldObject { id: object::new(ctx), text: string::utf8(b"croal99") }; + debug::print(&h1); + debug::print(&object); transfer::public_transfer(object, tx_context::sender(ctx)); } } diff --git a/mover/croal99/code/task_01/tests/hello_world_tests.move b/mover/croal99/code/task_01/tests/hello_world_tests.move index 8fdf06eec..e8c0ca5fa 100644 --- a/mover/croal99/code/task_01/tests/hello_world_tests.move +++ b/mover/croal99/code/task_01/tests/hello_world_tests.move @@ -1,14 +1,28 @@ -/* #[test_only] +#[allow(unused_use)] module hello_world::hello_world_tests { // uncomment this line to import the module - // use hello_world::hello_world; + use hello_world::hello_world; + use std::debug; + use std::ascii::{String, string}; const ENotImplemented: u64 = 0; #[test] fun test_hello_world() { - // pass + let mut _ctx = tx_context::dummy(); + let h1 = @myaddress; + let s1 = string(b"hello world"); + hello_world::mint(&mut _ctx); + debug::print(&5); + debug::print(&5u16); + debug::print(&5_4u16); + debug::print(&0xA); + debug::print(&0x0A0b); + debug::print(&h1); + debug::print(&s1); + debug::print(&string(b"hello world2")); + debug::print(&@hello_world); } #[test, expected_failure(abort_code = ::hello_world::hello_world_tests::ENotImplemented)] @@ -16,4 +30,3 @@ module hello_world::hello_world_tests { abort ENotImplemented } } -*/ diff --git a/mover/croal99/code/task_02/faucetcoin/Move.lock b/mover/croal99/code/task_02/faucetcoin/Move.lock new file mode 100644 index 000000000..e93becc23 --- /dev/null +++ b/mover/croal99/code/task_02/faucetcoin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "36AAF1CDEC036D88764BAC3DCDE58C0D7D361D80DBC1ED0F543FFC7DC8AA1BA6" +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.25.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069" +latest-published-id = "0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e" +latest-published-id = "0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e" +published-version = "1" diff --git a/mover/croal99/code/task_02/faucetcoin/Move.toml b/mover/croal99/code/task_02/faucetcoin/Move.toml new file mode 100644 index 000000000..b2b528a93 --- /dev/null +++ b/mover/croal99/code/task_02/faucetcoin/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "faucetcoin" +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)"] +#published-at = "0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069" # testnet +published-at = "0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e" # mainnet + +[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] +#faucetcoin = "0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069" # testnet +faucetcoin = "0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e" # mainnet + +# 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/croal99/code/task_02/faucetcoin/log4mainnet.txt b/mover/croal99/code/task_02/faucetcoin/log4mainnet.txt new file mode 100644 index 000000000..992f9ddce --- /dev/null +++ b/mover/croal99/code/task_02/faucetcoin/log4mainnet.txt @@ -0,0 +1,157 @@ +Transaction Digest: 2MYDnZr7iRKjTkMJZHpMioX7LsQQthrcgYxjrHirjDEM +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Owner: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Budget: 20000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Version: 171662165 │ +│ │ Digest: EwjYArSDkhrjbxq55FWmK1cV2Ncee7We3WVXk8uwJHo3 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 9ay3QMWMCSCB7l9M70OuL0ag2hkLuNSHHCS8dmAbZrSElIr/THxOV7V1w7o50cDTIFto193VpsrU2JOw976pCQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 2MYDnZr7iRKjTkMJZHpMioX7LsQQthrcgYxjrHirjDEM │ +│ Status: Success │ +│ Executed Epoch: 410 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: FAuyooFjrSkMbyDrLa7EnZy9RLxdSvgg3QvDM8tNVici │ +│ └── │ +│ ┌── │ +│ │ ID: 0x1034a40b9cc60e947910dea55e8c3a68421460d105bec425328a9f64859238e0 │ +│ │ Owner: Shared │ +│ │ Version: 171662166 │ +│ │ Digest: FD7XtXdALxmWKPsKEUZgkNQaFreCBPrLT2burnTPkKCz │ +│ └── │ +│ ┌── │ +│ │ ID: 0x3426fc79ee6b43faa65e5b051bee3a5508ca4c9ee0c3ab77fafff80083753596 │ +│ │ Owner: Immutable │ +│ │ Version: 171662166 │ +│ │ Digest: ACXcaAmGjxwwiW3i1N9xPe8GsF1eyt2uPm1mE6ZvDvA │ +│ └── │ +│ ┌── │ +│ │ ID: 0x703e1314904a2730e1ae8774cbda95185e69ea58a4612a9eb63e20eb80a1ad9d │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 171662166 │ +│ │ Digest: 3Bh94wasEZgVMdDKkMSTwS2Q1Sdq7TnKshNz5sNUmwMq │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 171662166 │ +│ │ Digest: CFak3GxMWsmrS44L8NFG4F3g9sLxUN9ux9951kEDP8Ve │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 171662166 │ +│ │ Digest: CFak3GxMWsmrS44L8NFG4F3g9sLxUN9ux9951kEDP8Ve │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 15694000 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 46jXAYoWuivcpffHtTFVMCdLgUKwrSWy4dedQaDK6mjE │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x1034a40b9cc60e947910dea55e8c3a68421460d105bec425328a9f64859238e0 │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Shared │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x5f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e::faucet_coin::FAUCET_COIN> │ +│ │ Version: 171662166 │ +│ │ Digest: FD7XtXdALxmWKPsKEUZgkNQaFreCBPrLT2burnTPkKCz │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x3426fc79ee6b43faa65e5b051bee3a5508ca4c9ee0c3ab77fafff80083753596 │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x5f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e::faucet_coin::FAUCET_COIN> │ +│ │ Version: 171662166 │ +│ │ Digest: ACXcaAmGjxwwiW3i1N9xPe8GsF1eyt2uPm1mE6ZvDvA │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x703e1314904a2730e1ae8774cbda95185e69ea58a4612a9eb63e20eb80a1ad9d │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 171662166 │ +│ │ Digest: 3Bh94wasEZgVMdDKkMSTwS2Q1Sdq7TnKshNz5sNUmwMq │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 171662166 │ +│ │ Digest: CFak3GxMWsmrS44L8NFG4F3g9sLxUN9ux9951kEDP8Ve │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e │ +│ │ Version: 1 │ +│ │ Digest: FAuyooFjrSkMbyDrLa7EnZy9RLxdSvgg3QvDM8tNVici │ +│ │ Modules: faucet_coin │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -15465880 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/croal99/code/task_02/faucetcoin/log4testnet.txt b/mover/croal99/code/task_02/faucetcoin/log4testnet.txt new file mode 100644 index 000000000..1c34c86af --- /dev/null +++ b/mover/croal99/code/task_02/faucetcoin/log4testnet.txt @@ -0,0 +1,156 @@ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Owner: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Budget: 20000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Version: 608201 │ +│ │ Digest: 3FbVatV4UtRhhDpNgmSDid7vJdoqhEBmAcnwbNc3ujq1 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ UfeD1S6gTlRyUExNXCOEiQ4HZsRtlPOYppAHUTZ0Oj06qkkY0Ifl0ePODJB4zinaAnWseOOz7/H5sY3IJxPiAw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 5HQU3uGkBPZsyjQPsuBt868cbTMLCPqAey97GoaZrogj │ +│ Status: Success │ +│ Executed Epoch: 382 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: ASQTgj8XnDh75cFVKGyqbmLV2Zee9QTuThPS45fWog4X │ +│ └── │ +│ ┌── │ +│ │ ID: 0xa5d7afc0a2ce714382cc42ccd4ab7720b8af7970b479888478b4ac3d57033add │ +│ │ Owner: Shared │ +│ │ Version: 608202 │ +│ │ Digest: 5CExHSq1iMsodrFyZgJhPVfg8ocxFpnakSzv1Ne8XCBV │ +│ └── │ +│ ┌── │ +│ │ ID: 0xc6ca77cde44166d5dfc3f489536ce88cf52b0c52406552c6c9d7128a9eb34883 │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 608202 │ +│ │ Digest: AR5op8kSV7SE7ofFF9jEwGkxJ1ff3hWa1x83HxGM1ZsU │ +│ └── │ +│ ┌── │ +│ │ ID: 0xdf9d41620091e8ef936d8d7de8c78a113eba3c245e0e821709ce2e5bdce049ad │ +│ │ Owner: Immutable │ +│ │ Version: 608202 │ +│ │ Digest: BSN8pFjtNFt1rEePrySfjKBXUramnSXEUVWbbWFUEnKt │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 608202 │ +│ │ Digest: HSdQTzPfddwRE5TbmmtT2eAGezUMJn6XDVVqd5jbr7CU │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 608202 │ +│ │ Digest: HSdQTzPfddwRE5TbmmtT2eAGezUMJn6XDVVqd5jbr7CU │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 15694000 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 4wgVygTs9NqDibRmBAwUyT5miQqSfSgxijTBYbEbnkeo │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xa5d7afc0a2ce714382cc42ccd4ab7720b8af7970b479888478b4ac3d57033add │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Shared │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x6f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069::faucet_coin::FAUCET_COIN> │ +│ │ Version: 608202 │ +│ │ Digest: 5CExHSq1iMsodrFyZgJhPVfg8ocxFpnakSzv1Ne8XCBV │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xc6ca77cde44166d5dfc3f489536ce88cf52b0c52406552c6c9d7128a9eb34883 │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 608202 │ +│ │ Digest: AR5op8kSV7SE7ofFF9jEwGkxJ1ff3hWa1x83HxGM1ZsU │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xdf9d41620091e8ef936d8d7de8c78a113eba3c245e0e821709ce2e5bdce049ad │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x6f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069::faucet_coin::FAUCET_COIN> │ +│ │ Version: 608202 │ +│ │ Digest: BSN8pFjtNFt1rEePrySfjKBXUramnSXEUVWbbWFUEnKt │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 608202 │ +│ │ Digest: HSdQTzPfddwRE5TbmmtT2eAGezUMJn6XDVVqd5jbr7CU │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069 │ +│ │ Version: 1 │ +│ │ Digest: ASQTgj8XnDh75cFVKGyqbmLV2Zee9QTuThPS45fWog4X │ +│ │ Modules: faucet_coin │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -15715880 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/croal99/code/task_02/faucetcoin/run4mainnet.sh b/mover/croal99/code/task_02/faucetcoin/run4mainnet.sh new file mode 100644 index 000000000..d4f2e53f8 --- /dev/null +++ b/mover/croal99/code/task_02/faucetcoin/run4mainnet.sh @@ -0,0 +1,24 @@ +sui client switch --env mainnet +sui client envs + +sui client switch --address 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b +sui client addresses + +sui client call \ +--package 0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e \ +--module faucet_coin \ +--function mint \ +--args 0x1034a40b9cc60e947910dea55e8c3a68421460d105bec425328a9f64859238e0 10000000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +sui client switch --address 0x7295d0fbf1edee2d8b617a5b0d306a1e8aca84e0e94d15c912a052cf7569ff9d +sui client addresses + +sui client call \ +--package 0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e \ +--module faucet_coin \ +--function mint \ +--args 0x1034a40b9cc60e947910dea55e8c3a68421460d105bec425328a9f64859238e0 10000000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +sui client switch --address 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b +sui client addresses + diff --git a/mover/croal99/code/task_02/faucetcoin/run4testnet.sh b/mover/croal99/code/task_02/faucetcoin/run4testnet.sh new file mode 100644 index 000000000..b061f386d --- /dev/null +++ b/mover/croal99/code/task_02/faucetcoin/run4testnet.sh @@ -0,0 +1,23 @@ +sui client switch --env testnet +sui client envs + +sui client switch --address 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b +sui client addresses + +sui client call \ +--package 0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069 \ +--module faucet_coin \ +--function mint \ +--args 0xa5d7afc0a2ce714382cc42ccd4ab7720b8af7970b479888478b4ac3d57033add 10000000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +sui client switch --address 0x7295d0fbf1edee2d8b617a5b0d306a1e8aca84e0e94d15c912a052cf7569ff9d +sui client addresses + +sui client call \ +--package 0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069 \ +--module faucet_coin \ +--function mint \ +--args 0xa5d7afc0a2ce714382cc42ccd4ab7720b8af7970b479888478b4ac3d57033add 10000000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +sui client switch --address 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b +sui client addresses diff --git a/mover/croal99/code/task_02/faucetcoin/sources/faucetcoin.move b/mover/croal99/code/task_02/faucetcoin/sources/faucetcoin.move new file mode 100644 index 000000000..9d898a7ac --- /dev/null +++ b/mover/croal99/code/task_02/faucetcoin/sources/faucetcoin.move @@ -0,0 +1,127 @@ +#[allow(duplicate_alias, unused_use)] +/// Module: faucetcoin +module faucetcoin::faucet_coin { + use std::debug; + use std::ascii::string; + use std::option; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::new_unsafe; + + public struct FAUCET_COIN has drop {} + + #[lint_allow(self_transfer)] + #[allow(lint(share_owned))] + fun init( + witness: FAUCET_COIN, + ctx: &mut TxContext + ) { + debug::print(&string(b"init FAUCET_COIN")); + let url_obj = new_unsafe(std::ascii::string(b"https://avatars.githubusercontent.com/u/36093027?v=4")); + let (treasury, metadata) = coin::create_currency( + witness, + 8, // decimals + b"SuiFaucetRMB", // symbol + b"Sui Faucet RMB", // name + b"My faucet coin", // description + option::some(url_obj), // icon url + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury); + } + + #[lint_allow(self_transfer)] + #[allow(unused_variable)] + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + debug::print(&string(b"faucet mint")); + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } + + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + debug::print(&string(b"burn")); + coin::burn(treasury_cap, coin); + } + + + // === Tests === + #[test_only] + use sui::test_scenario as ts; + + #[test] + fun test_faucet_coin() { + let admin = @0xA; + let user1 = @0xB; + let mut scenario = ts::begin(admin); + + // init + ts::next_tx(&mut scenario, admin); + { + init(FAUCET_COIN {}, scenario.ctx()); + }; + + // admin mint 100 coin + ts::next_tx(&mut scenario, admin); + { + let mut treasurycap = ts::take_shared>(&scenario); + mint(&mut treasurycap, 100, admin, scenario.ctx()); + ts::return_shared>(treasurycap); + }; + + // query [admin] coin + ts::next_tx(&mut scenario, admin); + { + let coin = ts::take_from_sender>(&scenario); + debug::print(&coin::value(&coin)); + ts::return_to_sender>(&scenario, coin); + }; + + // user1 mint 200 coin。注意,这里和独享所有权不同,不会报错,可以mint! + ts::next_tx(&mut scenario, user1); + { + let mut treasurycap = ts::take_shared>(&scenario); + mint(&mut treasurycap, 200, user1, scenario.ctx()); + ts::return_shared>(treasurycap); + }; + + // query [user1] coin + ts::next_tx(&mut scenario, user1); + { + let coin = ts::take_from_sender>(&scenario); + debug::print(&coin::value(&coin)); + ts::return_to_sender>(&scenario, coin); + }; + + // burn [admin] coin,共享所有权,可以分别对自己的coin操作! + ts::next_tx(&mut scenario, admin); + { + let coin = ts::take_from_sender>(&scenario); + let mut treasurycap = ts::take_shared>(&scenario); + burn(&mut treasurycap, coin); + ts::return_shared>(treasurycap); + }; + + // burn [user1] coin,共享所有权,可以分别对自己的coin操作! + ts::next_tx(&mut scenario, user1); + { + let coin = ts::take_from_sender>(&scenario); + let mut treasurycap = ts::take_shared>(&scenario); + burn(&mut treasurycap, coin); + ts::return_shared>(treasurycap); + }; + + ts::end(scenario); + // pass + } +} diff --git a/mover/croal99/code/task_02/faucetcoin/tests/faucetcoin_tests.move b/mover/croal99/code/task_02/faucetcoin/tests/faucetcoin_tests.move new file mode 100644 index 000000000..bbcfeb0af --- /dev/null +++ b/mover/croal99/code/task_02/faucetcoin/tests/faucetcoin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module faucetcoin::faucetcoin_tests { + // uncomment this line to import the module + use faucetcoin::faucet_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_faucetcoin() { + // pass + } + + #[test, expected_failure(abort_code = ::faucetcoin::faucetcoin_tests::ENotImplemented)] + fun test_faucetcoin_fail() { + abort ENotImplemented + } +} +*/ \ No newline at end of file diff --git a/mover/croal99/code/task_02/my coin/Move.lock b/mover/croal99/code/task_02/my coin/Move.lock new file mode 100644 index 000000000..bbc352e91 --- /dev/null +++ b/mover/croal99/code/task_02/my coin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "4EB5C964D6DC7B67A5DFEB9DB75EBF6DFACDA0D5856A18C1FD5FEC74CC4DC9C5" +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.25.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x3bb84b8e7a1876d8cc102cec9e3bea7e49d13f3998ae5d3e982b83e007971fec" +latest-published-id = "0x3bb84b8e7a1876d8cc102cec9e3bea7e49d13f3998ae5d3e982b83e007971fec" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xacedf7dd91fada351eb9128ea0fe6410df141657b335555370c7491365715321" +latest-published-id = "0xacedf7dd91fada351eb9128ea0fe6410df141657b335555370c7491365715321" +published-version = "1" diff --git a/mover/croal99/code/task_02/my coin/Move.toml b/mover/croal99/code/task_02/my coin/Move.toml new file mode 100644 index 000000000..d4248e1b0 --- /dev/null +++ b/mover/croal99/code/task_02/my coin/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "task_02" +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] +task_02 = "0x0" +myaddress = "0x6f25929f026483a440f5f16e03661087eb41604528050b989f48624b049c4b78" + +# 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/croal99/code/task_02/my coin/log4mainnet.txt b/mover/croal99/code/task_02/my coin/log4mainnet.txt new file mode 100644 index 000000000..296876ef0 --- /dev/null +++ b/mover/croal99/code/task_02/my coin/log4mainnet.txt @@ -0,0 +1,156 @@ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Owner: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Budget: 20000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Version: 171662159 │ +│ │ Digest: HHMvcr8rhsCRYbz5NJvntvdBRrMRZHTbemnmvjNSyGzi │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ Bn3nhHivyR7dtYLk/6I0s7zWkw9fbGcS17mAmcvQro+Xz1iWo9c4QR5CkQnOK+eLlvtjMB/TzQlPK67DQ8O9DQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: JBNjX1eUKbP2rPbPzzgt7T5UWq13dGEr6Kna4RoaSJwg │ +│ Status: Success │ +│ Executed Epoch: 410 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x2f651db42c1dae7fd49573c2f78ab1d9d587dd75e87d19327510564b2d7c46cc │ +│ │ Owner: Immutable │ +│ │ Version: 171662160 │ +│ │ Digest: 6tbEVGb3K8q2SYXp8P9FR54wUhYHTgyNqh294qa4qMuZ │ +│ └── │ +│ ┌── │ +│ │ ID: 0x43d391832e3c53fa1d7faac902ec876885f54dcad6fd5e9c8346b7e2c58e8a2b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 171662160 │ +│ │ Digest: BG8f5WUqNgvVECGS8kKBLybJUQMVjoWnvjYcoYQzawCm │ +│ └── │ +│ ┌── │ +│ │ ID: 0xacedf7dd91fada351eb9128ea0fe6410df141657b335555370c7491365715321 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: HtymgVKhxTdsHJYbeBc72Q1go8JssSXDPFc6FHJC83e4 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xb9e23639b708f03e0a928c362436406dca9cf4ccc28af29f4388bc3894bcb3cd │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 171662160 │ +│ │ Digest: 2q8jqLdigMbpwBZJcPvcXzD7KvczkvQTNbwNgZUSxg1E │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 171662160 │ +│ │ Digest: 8gqQDEMMst17D9DVnRUPNvxjCdm2jQV6mMwdYh9NHMxr │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 171662160 │ +│ │ Digest: 8gqQDEMMst17D9DVnRUPNvxjCdm2jQV6mMwdYh9NHMxr │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 15572400 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +│ HyKA5K5EmnctXNRUwzvcnaQmxT672kyphPWHsy9zrDNA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x2f651db42c1dae7fd49573c2f78ab1d9d587dd75e87d19327510564b2d7c46cc │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xacedf7dd91fada351eb9128ea0fe6410df141657b335555370c7491365715321::rmb_coin::RMB_COIN> │ +│ │ Version: 171662160 │ +│ │ Digest: 6tbEVGb3K8q2SYXp8P9FR54wUhYHTgyNqh294qa4qMuZ │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x43d391832e3c53fa1d7faac902ec876885f54dcad6fd5e9c8346b7e2c58e8a2b │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 171662160 │ +│ │ Digest: BG8f5WUqNgvVECGS8kKBLybJUQMVjoWnvjYcoYQzawCm │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xb9e23639b708f03e0a928c362436406dca9cf4ccc28af29f4388bc3894bcb3cd │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xacedf7dd91fada351eb9128ea0fe6410df141657b335555370c7491365715321::rmb_coin::RMB_COIN> │ +│ │ Version: 171662160 │ +│ │ Digest: 2q8jqLdigMbpwBZJcPvcXzD7KvczkvQTNbwNgZUSxg1E │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 171662160 │ +│ │ Digest: 8gqQDEMMst17D9DVnRUPNvxjCdm2jQV6mMwdYh9NHMxr │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xacedf7dd91fada351eb9128ea0fe6410df141657b335555370c7491365715321 │ +│ │ Version: 1 │ +│ │ Digest: HtymgVKhxTdsHJYbeBc72Q1go8JssSXDPFc6FHJC83e4 │ +│ │ Modules: rmb_coin │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -15344280 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/croal99/code/task_02/my coin/log4testnet.txt b/mover/croal99/code/task_02/my coin/log4testnet.txt new file mode 100644 index 000000000..16c722e9b --- /dev/null +++ b/mover/croal99/code/task_02/my coin/log4testnet.txt @@ -0,0 +1,156 @@ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Owner: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Budget: 20000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Version: 608196 │ +│ │ Digest: 5dNfunWr8p23fGpsZCizBJK8e7T86GhacbePFyWXpiu5 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ RaqIOQZ/EjY9t+fbit3bsTRg35Vy2lcmSaZ6p29aMW7rs75IWdVa9BKLIuaMfipJwj84oAZfN+d5kBNaMsnACQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 4YSpCfCwABbD622gBj9rfx8h2LeXc76dM9wGjUCX93RR │ +│ Status: Success │ +│ Executed Epoch: 382 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x02ca0459057bbf3d6cf8795bc624bba2f04bedc58883c31e2ad24c7c36240b59 │ +│ │ Owner: Immutable │ +│ │ Version: 608197 │ +│ │ Digest: 8gBtAMLiaqwsisBYgM4yzs77gm7x97S3fiv448LRzpa9 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x3bb84b8e7a1876d8cc102cec9e3bea7e49d13f3998ae5d3e982b83e007971fec │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 5dpaALCPDCCWuCNdBN9pCX1tjwUYq5DNjzBaf3BJzbTZ │ +│ └── │ +│ ┌── │ +│ │ ID: 0x990cbf80916813d66c3f8411d974b9632968bf584a4b1de268ec779a41bf6d16 │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 608197 │ +│ │ Digest: DaipJ82FP1Gmw3FYM7xdJ1CSJhCJZGFW4eLfTZ49it8b │ +│ └── │ +│ ┌── │ +│ │ ID: 0xbce77faf6074f2e0f92a1353619be1c3d58b94b854de997ecf909ebfd7d1613d │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 608197 │ +│ │ Digest: EJLFzZ11dLsWjZNS3qmKk8h4yjgeJP9ei7Tq4riy2xf9 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 608197 │ +│ │ Digest: 2mqK5bqUGRzwjA7GXaAxTG2nrCTZs8hs3JUyGRkVKqub │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 608197 │ +│ │ Digest: 2mqK5bqUGRzwjA7GXaAxTG2nrCTZs8hs3JUyGRkVKqub │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 15572400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ 8o8jrwAKcVSR2F8hXsqSzaQBaUyF7ieLnA4r8ANTB4QY │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x02ca0459057bbf3d6cf8795bc624bba2f04bedc58883c31e2ad24c7c36240b59 │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x3bb84b8e7a1876d8cc102cec9e3bea7e49d13f3998ae5d3e982b83e007971fec::rmb_coin::RMB_COIN> │ +│ │ Version: 608197 │ +│ │ Digest: 8gBtAMLiaqwsisBYgM4yzs77gm7x97S3fiv448LRzpa9 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x990cbf80916813d66c3f8411d974b9632968bf584a4b1de268ec779a41bf6d16 │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 608197 │ +│ │ Digest: DaipJ82FP1Gmw3FYM7xdJ1CSJhCJZGFW4eLfTZ49it8b │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xbce77faf6074f2e0f92a1353619be1c3d58b94b854de997ecf909ebfd7d1613d │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x3bb84b8e7a1876d8cc102cec9e3bea7e49d13f3998ae5d3e982b83e007971fec::rmb_coin::RMB_COIN> │ +│ │ Version: 608197 │ +│ │ Digest: EJLFzZ11dLsWjZNS3qmKk8h4yjgeJP9ei7Tq4riy2xf9 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 608197 │ +│ │ Digest: 2mqK5bqUGRzwjA7GXaAxTG2nrCTZs8hs3JUyGRkVKqub │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x3bb84b8e7a1876d8cc102cec9e3bea7e49d13f3998ae5d3e982b83e007971fec │ +│ │ Version: 1 │ +│ │ Digest: 5dpaALCPDCCWuCNdBN9pCX1tjwUYq5DNjzBaf3BJzbTZ │ +│ │ Modules: rmb_coin │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -15594280 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/croal99/code/task_02/my coin/run4mainnet.sh b/mover/croal99/code/task_02/my coin/run4mainnet.sh new file mode 100644 index 000000000..383ecd084 --- /dev/null +++ b/mover/croal99/code/task_02/my coin/run4mainnet.sh @@ -0,0 +1,12 @@ +sui client switch --env mainnet +sui client envs + +sui client switch --address 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b +sui client addresses + +sui client call \ +--package 0xacedf7dd91fada351eb9128ea0fe6410df141657b335555370c7491365715321 \ +--module rmb_coin \ +--function mint \ +--args 0xb9e23639b708f03e0a928c362436406dca9cf4ccc28af29f4388bc3894bcb3cd 10000000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + diff --git a/mover/croal99/code/task_02/my coin/run4testnet.sh b/mover/croal99/code/task_02/my coin/run4testnet.sh new file mode 100644 index 000000000..812b9614b --- /dev/null +++ b/mover/croal99/code/task_02/my coin/run4testnet.sh @@ -0,0 +1,12 @@ +sui client switch --env testnet +sui client envs + +sui client switch --address 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b +sui client addresses + +sui client call \ +--package 0x3bb84b8e7a1876d8cc102cec9e3bea7e49d13f3998ae5d3e982b83e007971fec \ +--module rmb_coin \ +--function mint \ +--args 0xbce77faf6074f2e0f92a1353619be1c3d58b94b854de997ecf909ebfd7d1613d 10000000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + diff --git a/mover/croal99/code/task_02/my coin/sources/my_coin.move b/mover/croal99/code/task_02/my coin/sources/my_coin.move new file mode 100644 index 000000000..15c6702bb --- /dev/null +++ b/mover/croal99/code/task_02/my coin/sources/my_coin.move @@ -0,0 +1,141 @@ +#[allow(duplicate_alias)] +/// Module: task_02 +module task_02::rmb_coin { + use std::debug; + use std::ascii::string; + use std::option; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::new_unsafe; + + public struct RMB_COIN has drop {} + + #[lint_allow(self_transfer)] + fun init( + witness: RMB_COIN, + ctx: &mut TxContext + ) { + debug::print(&string(b"init RMB_COIN")); + let url_obj = new_unsafe(std::ascii::string(b"https://avatars.githubusercontent.com/u/36093027?v=4")); + let (treasury, metadata) = coin::create_currency( + witness, + 8, // decimals + b"SuiRMB", // symbol + b"Sui RMB", // name + b"My first coin", // description + option::some(url_obj), // icon url + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + #[lint_allow(self_transfer)] + #[allow(unused_variable)] + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + debug::print(&string(b"mint")); + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } + + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + debug::print(&string(b"burn")); + coin::burn(treasury_cap, coin); + } + + + // === Tests === + #[test_only] + use sui::test_scenario as ts; + + #[test] + fun test_self_mint() { + let admin = @0xA; + let mut scenario = ts::begin(admin); + + // init + ts::next_tx(&mut scenario, admin); + { + init(RMB_COIN {}, scenario.ctx()); + }; + + // mint 100 coin => admin + ts::next_tx(&mut scenario, admin); + { + let mut treasurycap = ts::take_from_sender>(&scenario); + mint(&mut treasurycap, 100, admin, scenario.ctx()); + // ts::return_to_address>(admin, treasurycap); + ts::return_to_sender>(&scenario, treasurycap); + }; + + // query [admin] coin + ts::next_tx(&mut scenario, admin); + { + let coin = ts::take_from_sender>(&scenario); + debug::print(&coin::value(&coin)); + ts::return_to_sender>(&scenario, coin); + }; + + // burn + ts::next_tx(&mut scenario, admin); + { + let coin = ts::take_from_sender>(&scenario); + let mut treasurycap = ts::take_from_sender>(&scenario); + + burn(&mut treasurycap, coin); + ts::return_to_address>(admin, treasurycap); + }; + + ts::end(scenario); + // pass + } + + #[test] + fun test_another_mint() { + let admin = @0xA; + let user1 = @0xB; + let mut scenario = ts::begin(admin); + + // init,注意这里使用admin初始化,因为独享所有权,所以后面的操作都必须切换回admin + ts::next_tx(&mut scenario, admin); + { + init(RMB_COIN {}, scenario.ctx()); + }; + + // mint 100 coin => user1 + ts::next_tx(&mut scenario, admin); // if change to user1, failed! + { + let mut treasurycap = ts::take_from_sender>(&scenario); + mint(&mut treasurycap, 100, user1, scenario.ctx()); + ts::return_to_sender>(&scenario, treasurycap); + }; + + // burn [user1] coin + { + // switch to user1 + ts::next_tx(&mut scenario, user1); + let coin = ts::take_from_sender>(&scenario); + debug::print(&coin::value(&coin)); + + // switch to admin 独享所有权! + ts::next_tx(&mut scenario, admin); + let mut treasurycap = ts::take_from_sender>(&scenario); + burn(&mut treasurycap, coin); + ts::return_to_address>(admin, treasurycap); + // ts::return_to_sender>(&scenario, treasurycap); + }; + + ts::end(scenario); + // pass + } +} diff --git a/mover/croal99/code/task_02/my coin/tests/task_02_tests.move b/mover/croal99/code/task_02/my coin/tests/task_02_tests.move new file mode 100644 index 000000000..1ed977455 --- /dev/null +++ b/mover/croal99/code/task_02/my coin/tests/task_02_tests.move @@ -0,0 +1,24 @@ +/* +#[test_only] +#[allow(unused_use, duplicate_alias)] +module task_02::task_02_tests { + // uncomment this line to import the module + use std::debug; + use sui::tx_context::TxContext; + use task_02::rmb_coin; + use sui::coin; + use sui::coin::TreasuryCap; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_coin_mint() { + // pass + } + + #[test, expected_failure(abort_code = ::task_02::task_02_tests::ENotImplemented)] + fun test_task_02_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/croal99/code/task_02/readme.md b/mover/croal99/code/task_02/readme.md new file mode 100644 index 000000000..5cde0c5b2 --- /dev/null +++ b/mover/croal99/code/task_02/readme.md @@ -0,0 +1,360 @@ +# Sui Move智能合约的单元测试(Unit Test) +通过这几天对Sui Move智能合约的学习,对其提供的测试模块sui::test_scenario有了更进一步的理解。 通过这个模块,我们可以模拟大部分的用户操作,从而避免要把代码部署上网后才能发现错误和漏洞。 + +# 一、独享所有权的测试 +我们用一个经典的创建代币的代码来说明sui::test_scenario的使用。 + +```move +#[allow(duplicate_alias)] +/// Module: examples +module examples::mycoin { + use std::debug; + use std::ascii::string; + use std::option; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::new_unsafe; + + public struct MYCOIN has drop {} + + #[lint_allow(self_transfer)] + fun init( + witness: MYCOIN, + ctx: &mut TxContext + ) { + debug::print(&string(b"init MYCOIN")); + let url_obj = new_unsafe(std::ascii::string(b"https://avatars.githubusercontent.com/u/36093027?v=4")); + let (treasury, metadata) = coin::create_currency( + witness, + 8, // decimals + b"MYCOIN", // symbol + b"My COIN", // name + b"My first coin", // description + option::some(url_obj), // icon url + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + #[lint_allow(self_transfer)] + #[allow(unused_variable)] + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + debug::print(&string(b"mint")); + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } + + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + debug::print(&string(b"burn")); + coin::burn(treasury_cap, coin); + } +} +``` + +在这段代码里,我们创建了一个代币MYCOIN。这个代币拥有独享所有权,只有创建这个代币的所有者才能进行mint和burn。但是我们怎么才能在没有部署之前 +就检查我们的代码的正确性呢?下面我们就用sui::test_scenario来模拟这个操作。 + +## 模拟用户admin对代币MYCOIN进行mint和burn + +### 0x01 引入测试模块 +```move + #[test_only] + use sui::test_scenario as ts; +``` +### 0x02 测试init接口 +```move + #[test] + fun test_self_mint() { + let admin = @0xA; + let mut scenario = ts::begin(admin); + + // init + ts::next_tx(&mut scenario, admin); + { + init(MYCOIN {}, scenario.ctx()); + }; + + ts::end(scenario); + // pass + } +``` + +注意: +* 因为`init`是Sui Move在发布合约时调用的,所以在测试单元必须单独调用。 +* `ts::begin()` 和 `ts::end()`必须要成对出现,否则编译器会提示错误。 + +### 0x03 模拟admin用户调用mint接口,给自己铸造100个MYCOIN +```move + // mint 100 coin => admin + ts::next_tx(&mut scenario, admin); + { + let mut treasurycap = ts::take_from_sender>(&scenario); + mint(&mut treasurycap, 100, admin, scenario.ctx()); + // ts::return_to_address>(admin, treasurycap); + ts::return_to_sender>(&scenario, treasurycap); + }; +``` +注意: +* 在Sui Move中,对象必须要有所有者。因此从test_scenario获取的对象要么销毁,要么退还给test_scenario! + +### 0x04 查询admin用户现在拥有的coin数量 +```move + // query [admin] coin + ts::next_tx(&mut scenario, admin); + { + let coin = ts::take_from_sender>(&scenario); + debug::print(&coin::value(&coin)); + ts::return_to_sender>(&scenario, coin); + }; +``` + +### 0x05 将coin销毁 +```move + // burn + ts::next_tx(&mut scenario, admin); + { + let coin = ts::take_from_sender>(&scenario); + let mut treasurycap = ts::take_from_sender>(&scenario); + burn(&mut treasurycap, coin); + ts::return_to_address>(admin, treasurycap); + }; +``` + +通过以上步骤,我们已经能够很清晰的看到Sui Move中对代币MYCOIN的处理。但是我们如何测试这个代币MYCOIN是拥有独享所有权的呢?下面我们通过test_scenario来模拟两个用户的操作: + +## 模拟用户admin和user1对代币MYCOIN进行mint和burn + +### 0x01 定义两个用户admin和user1 +```move + #[test] + fun test_another_mint() { + let admin = @0xA; + let user1 = @0xB; + let mut scenario = ts::begin(admin); + + // init,注意这里使用admin初始化,因为独享所有权,所以后面的操作都必须切换回admin + ts::next_tx(&mut scenario, admin); + { + init(MYCOIN {}, scenario.ctx()); + }; + + ts::end(scenario); + // pass +``` +注意: +* 用户地址可以随便选择,只要你方便区别就可以。 +* 因为在初始化的时候用的是admin,所以后面的操作都必须要切换回admin,否则测试都会失败! + +### 0x02 模拟admin用户调用mint接口,给user1铸造100个MYCOIN +```move + // mint 100 coin => user1 + ts::next_tx(&mut scenario, admin); // if change to user1, failed! + { + let mut treasurycap = ts::take_from_sender>(&scenario); + mint(&mut treasurycap, 100, user1, scenario.ctx()); + ts::return_to_sender>(&scenario, treasurycap); + }; +``` +注意: +* 因为MYCOIN的所有者是admin,所以只要是admin来操作,就能既给admin铸币也可以给user1铸币。 + +### 0x03 查询user1用户现在拥有的coin数量 +```move + // query [user1] coin + ts::next_tx(&mut scenario, user1); + { + let coin = ts::take_from_sender>(&scenario); + debug::print(&coin::value(&coin)); + ts::return_to_sender>(&scenario, coin); + }; +``` +注意: +* 因为刚刚我们是铸造了100个MYCOIN给user1,因此查询时必须切换到用户user1。如果继续用admin进行查询,测试就会失败。 + +### 0x04 将coin销毁 +```move + // burn [user1] coin + { + // switch to user1 + ts::next_tx(&mut scenario, user1); + let coin = ts::take_from_sender>(&scenario); + + // switch to admin 独享所有权! + ts::next_tx(&mut scenario, admin); + let mut treasurycap = ts::take_from_sender>(&scenario); + burn(&mut treasurycap, coin); + ts::return_to_address>(admin, treasurycap); + // ts::return_to_sender>(&scenario, treasurycap); + }; +``` +注意: +* 因为刚刚生成的100个coin的是user1,因此需要从用户user1获取这些代币。 +* 因为合约的所有者是admin,因此调用burn销毁时需要切换到用户admin。 + +到此为止,我们通过sui::test_scenario模块已经充分测试了具有独享所有权的代币MYCOIN的所有功能,可以直接发布上网了! + +# 二、共享所有权的测试 + +我们还是用一个经典的Faucet Coin代码来说明sui::test_scenario的使用。 +```move +#[allow(duplicate_alias)] +/// Module: faucetcoin +module examples::faucet_coin { + use std::debug; + use std::ascii::string; + use std::option; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::new_unsafe; + + public struct FAUCET_COIN has drop {} + + #[lint_allow(self_transfer)] + #[allow(lint(share_owned))] + fun init( + witness: FAUCET_COIN, + ctx: &mut TxContext + ) { + debug::print(&string(b"init FAUCET_COIN")); + let url_obj = new_unsafe(std::ascii::string(b"https://avatars.githubusercontent.com/u/36093027?v=4")); + let (treasury, metadata) = coin::create_currency( + witness, + 8, // decimals + b"SuiFaucetRMB", // symbol + b"Sui Faucet RMB", // name + b"My faucet coin", // description + option::some(url_obj), // icon url + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury); + } + + #[lint_allow(self_transfer)] + #[allow(unused_variable)] + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + debug::print(&string(b"faucet mint")); + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } + + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + debug::print(&string(b"burn")); + coin::burn(treasury_cap, coin); + } +} +``` +在这段代码里,我们创建了一个代币FAUCET_COIN。这个代币拥有共享所有权,任意人都可以对这个代币能进行mint和burn。我们怎么用sui::test_scenario来模拟这个操作呢。 +### 0x01 定义两个用户admin和user1 +```move + // === Tests === + #[test_only] + use sui::test_scenario as ts; + + #[test] + fun test_faucet_coin() { + let admin = @0xA; + let user1 = @0xB; + let mut scenario = ts::begin(admin); + + // init + ts::next_tx(&mut scenario, admin); + { + init(FAUCET_COIN {}, scenario.ctx()); + }; + + ts::end(scenario); + // pass +``` +注意: +* 因为共享所有权,所以在初始化的时候可以随便用admin或者user1。 + +### 0x02 模拟admin用户调用mint接口,给admin铸造100个FAUCET_COIN +```move + // admin mint 100 coin + ts::next_tx(&mut scenario, admin); + { + let mut treasurycap = ts::take_shared>(&scenario); + mint(&mut treasurycap, 100, admin, scenario.ctx()); + ts::return_shared>(treasurycap); + }; + + // query [admin] coin + ts::next_tx(&mut scenario, admin); + { + let coin = ts::take_from_sender>(&scenario); + debug::print(&coin::value(&coin)); + ts::return_to_sender>(&scenario, coin); + }; +``` +注意: +* 在Sui Move中,对象必须要有所有者。因为我们是给用户admin完成100个铸币的mint,所以在查询coin的时候需要用admin身份! +* 因为是共享所有权,所以sui::test_scenario是用take_shared方法返回对象。同理,将对象退给test_scenario的时候也必须用return_shared! + +### 0x03 模拟user1用户调用mint接口,给user1铸造200个FAUCET_COIN +```move + // user1 mint 200 coin。注意,这里和独享所有权不同,不会报错,可以mint! + ts::next_tx(&mut scenario, user1); + { + let mut treasurycap = ts::take_shared>(&scenario); + mint(&mut treasurycap, 200, user1, scenario.ctx()); + ts::return_shared>(treasurycap); + }; + + // query [user1] coin + ts::next_tx(&mut scenario, user1); + { + let coin = ts::take_from_sender>(&scenario); + debug::print(&coin::value(&coin)); + ts::return_to_sender>(&scenario, coin); + }; +``` +注意: +* 因为FAUCET_COIN是共享所有权,所以切换用户user1后依然可以调用mint,这里就能清楚的看到共享所有权和独享所有权的区别! +* 铸币接收的对象不同,必须切换到接收对象才能正确查询到该用户的coin数量 + +### 0x04 将coin销毁 +```move + // burn [admin] coin,共享所有权,分别对自己的coin操作! + ts::next_tx(&mut scenario, admin); + { + let coin = ts::take_from_sender>(&scenario); + let mut treasurycap = ts::take_shared>(&scenario); + burn(&mut treasurycap, coin); + ts::return_shared>(treasurycap); + }; + + // burn [user1] coin,共享所有权,分别对自己的coin操作! + ts::next_tx(&mut scenario, user1); + { + let coin = ts::take_from_sender>(&scenario); + let mut treasurycap = ts::take_shared>(&scenario); + burn(&mut treasurycap, coin); + ts::return_shared>(treasurycap); + }; +``` +注意: +* 因为FAUCET_COIN的所有权是不同用户,因此销毁的时候要切换用户分别销毁自己的coin。 + +到此为止,我们通过sui::test_scenario模块已经充分测试了具有共享所有权的代币FAUCET_COIN的所有功能,也从测试代码中发现了共享所有权和独享所有权的区别! diff --git a/mover/croal99/code/task_03/blue_ntf/Move.lock b/mover/croal99/code/task_03/blue_ntf/Move.lock new file mode 100644 index 000000000..cfcf0d782 --- /dev/null +++ b/mover/croal99/code/task_03/blue_ntf/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "494E405FDABFFF485E1F3CC96E545F6113C6875156A3D46639AA333A225DEC57" +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.25.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xb135979efe7f8dddbe30d31167bc151f69934985169f433c691a27eec70d75b4" +latest-published-id = "0xb135979efe7f8dddbe30d31167bc151f69934985169f433c691a27eec70d75b4" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x355a186a5f9905a8cee04bb15219b6a2c077cfa5f7a42a80c3cc8218c8dc86d4" +latest-published-id = "0x355a186a5f9905a8cee04bb15219b6a2c077cfa5f7a42a80c3cc8218c8dc86d4" +published-version = "1" diff --git a/mover/croal99/code/task_03/blue_ntf/Move.toml b/mover/croal99/code/task_03/blue_ntf/Move.toml new file mode 100644 index 000000000..bad26b45b --- /dev/null +++ b/mover/croal99/code/task_03/blue_ntf/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "blue_ntf" +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] +blue_ntf = "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/croal99/code/task_03/blue_ntf/log4mainnet.txt b/mover/croal99/code/task_03/blue_ntf/log4mainnet.txt new file mode 100644 index 000000000..c4798bbce --- /dev/null +++ b/mover/croal99/code/task_03/blue_ntf/log4mainnet.txt @@ -0,0 +1,128 @@ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Owner: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Budget: 20000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Version: 171662167 │ +│ │ Digest: DzjhGoXc67rb513dHXyiRc7JAeGdkhq5K71EXLbfRpgh │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ BTebqT+Om3Ub2UGADoBdr+iU+Hu41ki9PPPOthDr300hpCSeMN4j3tBx7DVqPgW7GtHnvJUcy6dZP2AFiOmLDQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: FW84TDqf4Zgi2JQsP2sMuNeLhbg3mUy6NRG474d9sZwg │ +│ Status: Success │ +│ Executed Epoch: 411 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x1c051196d02f2b319a39489eea71a1a1048b66a2bf1209237cf47487a48233c0 │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 171662168 │ +│ │ Digest: FxAuvGozYUUtUzoUuYmF9BdzG9PW1dJboNbNnw9wkhpQ │ +│ └── │ +│ ┌── │ +│ │ ID: 0x355a186a5f9905a8cee04bb15219b6a2c077cfa5f7a42a80c3cc8218c8dc86d4 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: FH6QY45TvzRbfPRAhPBER8ZroD6qsELbe5xRHrJd28Wo │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 171662168 │ +│ │ Digest: 5fYSVdPdhAb7Trx8zJaQdBazjFKKPd3s6zWZqBPREQd │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 171662168 │ +│ │ Digest: 5fYSVdPdhAb7Trx8zJaQdBazjFKKPd3s6zWZqBPREQd │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 13239200 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 44hPLC6XcGpwKCiZcZ1FjmX7oq2MgWT3fd5JSVYrGJRn │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x1c051196d02f2b319a39489eea71a1a1048b66a2bf1209237cf47487a48233c0 │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 171662168 │ +│ │ Digest: FxAuvGozYUUtUzoUuYmF9BdzG9PW1dJboNbNnw9wkhpQ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 171662168 │ +│ │ Digest: 5fYSVdPdhAb7Trx8zJaQdBazjFKKPd3s6zWZqBPREQd │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x355a186a5f9905a8cee04bb15219b6a2c077cfa5f7a42a80c3cc8218c8dc86d4 │ +│ │ Version: 1 │ +│ │ Digest: FH6QY45TvzRbfPRAhPBER8ZroD6qsELbe5xRHrJd28Wo │ +│ │ Modules: blue_ntf │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -13011080 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/croal99/code/task_03/blue_ntf/log4testnet.txt b/mover/croal99/code/task_03/blue_ntf/log4testnet.txt new file mode 100644 index 000000000..e1713671c --- /dev/null +++ b/mover/croal99/code/task_03/blue_ntf/log4testnet.txt @@ -0,0 +1,129 @@ +Transaction Digest: EnfRYY4BVfdUdTEVzPxY2JybjvJUBWpEVJ9wz6G8pQwq +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Owner: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Budget: 20000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Version: 608204 │ +│ │ Digest: CpsD19oMDCTBQqw7AGHnuMXKTDXEX7C9ZmkVTYQuuNR6 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ d4szd5X+uaJvpsPIZ5s++8x/Hjk27BGdfyKDKld0XzwoOE2TJtMwmSfBfXt4MLJ7BYS4JrNhl7KQO8XvTDnTBA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: EnfRYY4BVfdUdTEVzPxY2JybjvJUBWpEVJ9wz6G8pQwq │ +│ Status: Success │ +│ Executed Epoch: 383 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xb390ce061f71e745247bd759aee1fa89a5fb0485b767d45293c2475c50faf576 │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 608205 │ +│ │ Digest: 3az8k5wiNXB1LNeJVhV6aMvErpqgkn9gVbcZezBoVJDQ │ +│ └── │ +│ ┌── │ +│ │ ID: 0xef091db29a6e95bca784d8897758313b76940b75eec6d4460c41c26d7162304d │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: AegaaZqorn1GpJN2hJ73ey5LsCwt9Z5xRd7faWF7SD2Y │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 608205 │ +│ │ Digest: 9EC5uXTtsKvvUMhrbB47eFMZNgoVH1Caxg6LyU5wjeWi │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 608205 │ +│ │ Digest: 9EC5uXTtsKvvUMhrbB47eFMZNgoVH1Caxg6LyU5wjeWi │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 12365200 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ HTTLaUoawYK6c4FoRQWQcuGshimUvPUvqYPkcf1smtDg │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xb390ce061f71e745247bd759aee1fa89a5fb0485b767d45293c2475c50faf576 │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 608205 │ +│ │ Digest: 3az8k5wiNXB1LNeJVhV6aMvErpqgkn9gVbcZezBoVJDQ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 608205 │ +│ │ Digest: 9EC5uXTtsKvvUMhrbB47eFMZNgoVH1Caxg6LyU5wjeWi │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xef091db29a6e95bca784d8897758313b76940b75eec6d4460c41c26d7162304d │ +│ │ Version: 1 │ +│ │ Digest: AegaaZqorn1GpJN2hJ73ey5LsCwt9Z5xRd7faWF7SD2Y │ +│ │ Modules: blue_ntf │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -12387080 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/croal99/code/task_03/blue_ntf/run4mainnet.sh b/mover/croal99/code/task_03/blue_ntf/run4mainnet.sh new file mode 100644 index 000000000..f7dd439ae --- /dev/null +++ b/mover/croal99/code/task_03/blue_ntf/run4mainnet.sh @@ -0,0 +1,20 @@ +sui client switch --env mainnet +sui client envs + +sui client switch --address 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b +sui client addresses + +# 创建一个属于0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b的NTF +sui client call \ +--package 0x355a186a5f9905a8cee04bb15219b6a2c077cfa5f7a42a80c3cc8218c8dc86d4 \ +--module blue_ntf \ +--function mint_ntf + +# 将0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b的NTF +# 转移给0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 +sui client call \ +--package 0x355a186a5f9905a8cee04bb15219b6a2c077cfa5f7a42a80c3cc8218c8dc86d4 \ +--module blue_ntf \ +--function transfer \ +--args 0x2b44b1293e575b831954effa7fb85ac10fd7be22ab4ea29fef71ad6b4e4c17e2 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + diff --git a/mover/croal99/code/task_03/blue_ntf/run4testnet.sh b/mover/croal99/code/task_03/blue_ntf/run4testnet.sh new file mode 100644 index 000000000..bf30f0b4a --- /dev/null +++ b/mover/croal99/code/task_03/blue_ntf/run4testnet.sh @@ -0,0 +1,39 @@ +sui client switch --env testnet +sui client envs + +sui client switch --address 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b +sui client addresses + +# 创建一个属于0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b的NTF +sui client call \ +--package 0xc1d3378f795e5a693ff4e3fc727127e80b76a6e70b61dc8335d59731ea1254b8 \ +--module blue_ntf \ +--function mint_ntf + +sui client switch --address 0x7295d0fbf1edee2d8b617a5b0d306a1e8aca84e0e94d15c912a052cf7569ff9d +sui client addresses + +# 创建一个属于0x7295d0fbf1edee2d8b617a5b0d306a1e8aca84e0e94d15c912a052cf7569ff9d的NTF +sui client call \ +--package 0xc1d3378f795e5a693ff4e3fc727127e80b76a6e70b61dc8335d59731ea1254b8 \ +--module blue_ntf \ +--function mint_ntf + +# 删除刚刚创建的NTF +sui client call \ +--package 0xc1d3378f795e5a693ff4e3fc727127e80b76a6e70b61dc8335d59731ea1254b8 \ +--module blue_ntf \ +--function burn \ +--args 0x7de1456862456d4da484be96ff7a57e3a2d5472ed96fdf6ee154a5865feef8c4 + +sui client switch --address 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b +sui client addresses + +# 将0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b的NTF +# 转移给0x7295d0fbf1edee2d8b617a5b0d306a1e8aca84e0e94d15c912a052cf7569ff9d +sui client call \ +--package 0xc1d3378f795e5a693ff4e3fc727127e80b76a6e70b61dc8335d59731ea1254b8 \ +--module blue_ntf \ +--function transfer \ +--args 0x4ef180bb61d8e3a7ca2df5f73f1b7f04d0e4bc70ffd87b40bc2e1160cd19660d 0x7295d0fbf1edee2d8b617a5b0d306a1e8aca84e0e94d15c912a052cf7569ff9d + diff --git a/mover/croal99/code/task_03/blue_ntf/sources/blue_ntf.move b/mover/croal99/code/task_03/blue_ntf/sources/blue_ntf.move new file mode 100644 index 000000000..28ed4639b --- /dev/null +++ b/mover/croal99/code/task_03/blue_ntf/sources/blue_ntf.move @@ -0,0 +1,126 @@ +#[allow(duplicate_alias)] +/// Module: blue_ntf +module blue_ntf::blue_ntf { + use std::debug; + use std::ascii::string; + use sui::url::{Self, Url}; + use std::string; + use sui::object::{Self, ID, UID}; + use sui::event; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + /// An NFT that can be minted by anybody + public struct BlueNetNFT has key, store { + id: UID, + /// Name for the token 代币(NFT)名 + name: string::String, + /// Description of the token 代币(NFT)描述 + description: string::String, + /// URL for the token 代币(NFT)链接 + url: Url, + /// Custom attributes + ex_param: string::String, + } + + // ===== Events ===== + + public struct NFTMinted has copy, drop { + // The Object ID of the NFT + object_id: ID, + // The creator of the NFT + creator: address, + // The name of the NFT + name: string::String, + } + + // ===== Public view functions ===== + + /// Get the NFT's `name` + public fun name(nft: &BlueNetNFT): &string::String { + &nft.name + } + + /// Get the NFT's `description` + public fun description(nft: &BlueNetNFT): &string::String { + &nft.description + } + + /// Get the NFT's `url` + public fun url(nft: &BlueNetNFT): &Url { + &nft.url + } + + // ===== Entrypoints ===== 入口函数 + #[allow(unused_variable)] + public entry fun mint_ntf(ctx: &mut TxContext) + { + debug::print(&string(b"mint ntf")); + let sender = tx_context::sender(ctx); + + let nft = BlueNetNFT { + id: object::new(ctx), + name: string::utf8(b"Blue NTF"), + description: string::utf8(b"This is the description of Blue NTF"), + url: url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/36093027?v=4"), + ex_param: string::utf8(b"ex param"), + }; + + event::emit(NFTMinted { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + + } + + /// Create a new devnet_nft + public entry fun mint_to_sender( + name: vector, + description: vector, + url: vector, + exparam: vector, + ctx: &mut TxContext + ) { + let sender = tx_context::sender(ctx); + let nft = BlueNetNFT { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + url: url::new_unsafe_from_bytes(url), + ex_param: string::utf8(exparam), + }; + + event::emit(NFTMinted { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + /// Transfer `nft` to `recipient` + public entry fun transfer( + nft: BlueNetNFT, recipient: address, _: &mut TxContext + ) { + transfer::public_transfer(nft, recipient) + } + + /// Update the `description` of `nft` to `new_description` + public entry fun update_description( + nft: &mut BlueNetNFT, + new_description: vector, + _: &mut TxContext + ) { + nft.description = string::utf8(new_description) + } + + /// Permanently delete `nft` + public entry fun burn(nft: BlueNetNFT, _: &mut TxContext) { + let BlueNetNFT { id, name: _, description: _, url: _, ex_param: _ } = nft; + object::delete(id) + } +} diff --git a/mover/croal99/code/task_03/blue_ntf/tests/blue_ntf_tests.move b/mover/croal99/code/task_03/blue_ntf/tests/blue_ntf_tests.move new file mode 100644 index 000000000..6293dc2fb --- /dev/null +++ b/mover/croal99/code/task_03/blue_ntf/tests/blue_ntf_tests.move @@ -0,0 +1,24 @@ +#[test_only] +#[allow(unused_use, duplicate_alias)] +module blue_ntf::blue_ntf_tests { + // uncomment this line to import the module + use std::string; + use sui::kiosk::list; + use sui::object::id; + use sui::tx_context; + use blue_ntf::blue_ntf; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_blue_ntf() { + let mut ctx = tx_context::dummy(); + blue_ntf::mint_ntf(&mut ctx); + // pass + } + + #[test, expected_failure(abort_code = ::blue_ntf::blue_ntf_tests::ENotImplemented)] + fun test_blue_ntf_fail() { + abort ENotImplemented + } +} diff --git a/mover/croal99/code/task_04/blue_game/Move.lock b/mover/croal99/code/task_04/blue_game/Move.lock new file mode 100644 index 000000000..52fe685d5 --- /dev/null +++ b/mover/croal99/code/task_04/blue_game/Move.lock @@ -0,0 +1,49 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "F1BCDA93BBBA738E5451CEBA2F4A3AD4816065BE4D389433C2AF57F0E40A348E" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "faucetcoin" }, +] + +[[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.package]] +name = "faucetcoin" +source = { local = "../../task_02/faucetcoin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.25.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x1d7fdf7312004e3e2480a7c2e02a2b24cec7c489ecac07341b6c969ddcb1d041" +latest-published-id = "0x1d7fdf7312004e3e2480a7c2e02a2b24cec7c489ecac07341b6c969ddcb1d041" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x898f87e55e4cb51758f6bec2df4c59f5ae2b12b345c764799e62809ea12351fc" +latest-published-id = "0x898f87e55e4cb51758f6bec2df4c59f5ae2b12b345c764799e62809ea12351fc" +published-version = "1" diff --git a/mover/croal99/code/task_04/blue_game/Move.toml b/mover/croal99/code/task_04/blue_game/Move.toml new file mode 100644 index 000000000..9212dce44 --- /dev/null +++ b/mover/croal99/code/task_04/blue_game/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "blue_game" +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 } +faucetcoin = { local = "../../task_02/faucetcoin"} + +[addresses] +blue_game = "0x0" +#faucetcoin = "0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069" # testnet +faucetcoin = "0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e" # mainnet +# 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/croal99/code/task_04/blue_game/log4mainnet.txt b/mover/croal99/code/task_04/blue_game/log4mainnet.txt new file mode 100644 index 000000000..3765aae09 --- /dev/null +++ b/mover/croal99/code/task_04/blue_game/log4mainnet.txt @@ -0,0 +1,130 @@ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Owner: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Budget: 20000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Version: 171662170 │ +│ │ Digest: FthrJYsEswF4gE5y3i4SLU41LiaSR8DSCvnAtdLW1V9q │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ │ 0x05f461a5c2285387449600b09c5dda42d514f1a9608ea4a9555bf564789a451e │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ sibh3nQernp52oPQVP18PBoslGCOzM0i81u0lbXa50cwrfyU8dcdQNT51cLXOdhk0WQzvBKTDyLtUBVVwSpHBg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 8ndZXZvTAK84Nv7Nr4hLDvpT2Y7F4dd9H9XF75DzwSFm │ +│ Status: Success │ +│ Executed Epoch: 412 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x0e496e3831e078293ff89325097b15d393b3cf5fe511bc291b867ef52a313e80 │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 171662171 │ +│ │ Digest: CUjRQmxnH4z4Uw4B5ND4TsBM9t6MW9QEPZXCsDfVJCaD │ +│ └── │ +│ ┌── │ +│ │ ID: 0x898f87e55e4cb51758f6bec2df4c59f5ae2b12b345c764799e62809ea12351fc │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: JD4iV8y4D34tbqZWkv7XmYL8HregfeSNWGZLjDUCwziy │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 171662171 │ +│ │ Digest: 4Rm3BPf8QUWKJWXrcDaCZGEih22BrqowSeppbF4ViXuC │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 171662171 │ +│ │ Digest: 4Rm3BPf8QUWKJWXrcDaCZGEih22BrqowSeppbF4ViXuC │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 16370400 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 2MYDnZr7iRKjTkMJZHpMioX7LsQQthrcgYxjrHirjDEM │ +│ Em6snzHSZFqoAnhi1LQASWjiBuudLA6WKr9NnpYk5YEt │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0e496e3831e078293ff89325097b15d393b3cf5fe511bc291b867ef52a313e80 │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 171662171 │ +│ │ Digest: CUjRQmxnH4z4Uw4B5ND4TsBM9t6MW9QEPZXCsDfVJCaD │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x5a9dc5d926e250721d585bc1b650a4b4d5ab764b259e7d4deeba7f43a6fe181a │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 171662171 │ +│ │ Digest: 4Rm3BPf8QUWKJWXrcDaCZGEih22BrqowSeppbF4ViXuC │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x898f87e55e4cb51758f6bec2df4c59f5ae2b12b345c764799e62809ea12351fc │ +│ │ Version: 1 │ +│ │ Digest: JD4iV8y4D34tbqZWkv7XmYL8HregfeSNWGZLjDUCwziy │ +│ │ Modules: blue_game │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -16142280 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/croal99/code/task_04/blue_game/log4testnet.txt b/mover/croal99/code/task_04/blue_game/log4testnet.txt new file mode 100644 index 000000000..2da16fa83 --- /dev/null +++ b/mover/croal99/code/task_04/blue_game/log4testnet.txt @@ -0,0 +1,131 @@ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Owner: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Budget: 20000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Version: 608210 │ +│ │ Digest: 8JHswz46KEHAuCWyH8N79MBrqT35wtzjYgehdp6M3QWt │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ │ 0x06f08f31cb1e000334e03cd0214380d5ab9df2d1c206de675b392f587ce95069 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ A5TrO0jIWZXj+yzETy8sCozctAe9dyT7nyqVRk4Ql8LAwhXqEahlHgTx9aejd7Q+yDPv80fiH1L0FkO4Y8VuDA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: DWCfU7gxnEfDMuPw8mRKdiM69VivpFHhDVqXw6x8WtQH │ +│ Status: Success │ +│ Executed Epoch: 385 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x31cb86c26d7bce3ca7cab576ab7017455d9010256bf517c40cc73c071459868a │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: BhHmSA2JhGPMpyULHiKdGjHrfqDWErqEdSPw2b6U3obr │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd3f9303c238bcd7ff8a31b0baf87a0df787e4c5592eebfa8235229b91902bc76 │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 608211 │ +│ │ Digest: 5EgZUDx2ZCWfokP1Zii2F2u3Vrv1s6gh7aN8VaZpv3Dy │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 608211 │ +│ │ Digest: 8Ao8TnqChqtN9hNZRdF183Vi8XtuePEcAuHt2NTHHS8e │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 608211 │ +│ │ Digest: 8Ao8TnqChqtN9hNZRdF183Vi8XtuePEcAuHt2NTHHS8e │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 16461600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 2g2aSzYuryP4KeoHcsXRRsm6pWW2aX9VRYSXAVNBYDXE │ +│ 5HQU3uGkBPZsyjQPsuBt868cbTMLCPqAey97GoaZrogj │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ 9au69QfQwHHNVKsoW4QinXXmXxzSZMzJHepyoJPdsr9o │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xd3f9303c238bcd7ff8a31b0baf87a0df787e4c5592eebfa8235229b91902bc76 │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 608211 │ +│ │ Digest: 5EgZUDx2ZCWfokP1Zii2F2u3Vrv1s6gh7aN8VaZpv3Dy │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 608211 │ +│ │ Digest: 8Ao8TnqChqtN9hNZRdF183Vi8XtuePEcAuHt2NTHHS8e │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x31cb86c26d7bce3ca7cab576ab7017455d9010256bf517c40cc73c071459868a │ +│ │ Version: 1 │ +│ │ Digest: BhHmSA2JhGPMpyULHiKdGjHrfqDWErqEdSPw2b6U3obr │ +│ │ Modules: blue_game │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -16483480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/croal99/code/task_04/blue_game/run4mainnet.sh b/mover/croal99/code/task_04/blue_game/run4mainnet.sh new file mode 100644 index 000000000..137edc780 --- /dev/null +++ b/mover/croal99/code/task_04/blue_game/run4mainnet.sh @@ -0,0 +1,19 @@ +sui client switch --env mainnet +sui client envs + +sui client switch --address 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b +sui client addresses + +# step1: 转入游戏资金池 +sui client call \ +--package 0x898f87e55e4cb51758f6bec2df4c59f5ae2b12b345c764799e62809ea12351fc \ +--module blue_game \ +--function init_pool \ +--args 0x6def8c501e443a8d0ad9cf4bdeb7fdf88d1652750a7f31e96f44a55eb1635a7e + +# step2: 玩游戏 +sui client call \ +--package 0x898f87e55e4cb51758f6bec2df4c59f5ae2b12b345c764799e62809ea12351fc \ +--module blue_game \ +--function play \ +--args 1 0x6 0xdc78fb5114def8e7d0d01f1af4ced2061e3c5b68aa17d70492ab0d6fcfcaec09 diff --git a/mover/croal99/code/task_04/blue_game/run4testnet.sh b/mover/croal99/code/task_04/blue_game/run4testnet.sh new file mode 100644 index 000000000..8960bd11c --- /dev/null +++ b/mover/croal99/code/task_04/blue_game/run4testnet.sh @@ -0,0 +1,19 @@ +sui client switch --env testnet +sui client envs + +sui client switch --address 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b +sui client addresses + +# step1: 转入游戏资金池 +sui client call \ +--package 0x1d7fdf7312004e3e2480a7c2e02a2b24cec7c489ecac07341b6c969ddcb1d041 \ +--module blue_game \ +--function init_pool \ +--args 0x062d05bb5c620bef4d6dd38d75cd2ffc45240690e66ee722d4b6f8d1ae2d6346 + +# step2: 玩游戏 +sui client call \ +--package 0x1d7fdf7312004e3e2480a7c2e02a2b24cec7c489ecac07341b6c969ddcb1d041 \ +--module blue_game \ +--function play \ +--args 2 0x6 0xed7f63c367ccfbf195cd64fae894d5d060d54bc0d09af4d99cadac50c0765e8c diff --git a/mover/croal99/code/task_04/blue_game/sources/blue_game.move b/mover/croal99/code/task_04/blue_game/sources/blue_game.move new file mode 100644 index 000000000..5d1817dc0 --- /dev/null +++ b/mover/croal99/code/task_04/blue_game/sources/blue_game.move @@ -0,0 +1,110 @@ +#[allow(duplicate_alias, unused_use)] +/// Module: blue_game +module blue_game::blue_game { + use std::ascii::string; + use std::debug; + use std::string::{Self, String}; + use sui::clock::{Self, Clock}; + use sui::event; + use sui::tx_context::{TxContext, sender}; + use faucetcoin::faucet_coin::FAUCET_COIN; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin}; + use sui::object; + use sui::object::UID; + use sui::transfer; + use sui::transfer::transfer; + use sui::tx_context; + + const EInvalidNumber: u64 = 1; + const PLAYER_WON_STATE: u8 = 1; + + public struct GamingResultEvent has copy, drop { + is_win: bool, + your_choice: String, + croal99_choice: String, + result: String, + } + + public struct RewardPool has key { + id: UID, + balance: Balance, + } + + fun get_random_choice(clock: &Clock) : u8 { + ((clock::timestamp_ms(clock) % 3) as u8) + } + + fun map_choice_to_string(choice: u8) : String { + if (choice == 0) { + string::utf8(b"rock") + } else if (choice == 1) { + string::utf8(b"paper") + } else if (choice == 2) { + string::utf8(b"scissors") + } else { + string::utf8(b"Invalid") + } + } + + #[allow(lint(self_transfer))] + public fun play( + choice: u8, + clock: &Clock, + pool: &mut RewardPool, + ctx: &mut TxContext, + ) { + debug::print(&string(b"play")); + assert!(choice < 3, EInvalidNumber); + debug::print(&choice); + + // let clock = clock + let computer_choice = get_random_choice(clock); + debug::print(&computer_choice); + let (result, is_win) = if ( + (choice == 0 && computer_choice == 1) + || (choice == 1 && computer_choice == 2) + || (choice == 2 && computer_choice == 0) + ) { + (string::utf8(b"You win"), true) + } else if (choice == computer_choice) { + (string::utf8(b"Draw"), false) + } else { + (string::utf8(b"You Lose"), false) + }; + + debug::print(&result); + + if (is_win) { + // Calculate the fee and transfer it to the house. + // let stake_amount = balance::value(&pool.balance); + // let fee_amount = balance::value(&pool.balance); + let fee_amount = 1; + let fees = balance::split(&mut pool.balance, fee_amount); + // balance::join(hd::borrow_fees_mut(house_data), fees); + transfer::public_transfer(coin::from_balance(fees, ctx), tx_context::sender(ctx)); + PLAYER_WON_STATE; + }; + + event::emit(GamingResultEvent { + result, + is_win, + your_choice: map_choice_to_string(choice), + croal99_choice: map_choice_to_string(computer_choice), + }); + } + + public entry fun init_pool( + coin: Coin, + ctx: &mut TxContext, + ) { + debug::print(&string(b"reward")); + let pool = RewardPool { + id: object::new(ctx), + balance: coin::into_balance(coin) + }; + + // 初始化pool并分享 + transfer::share_object(pool); + } +} diff --git a/mover/croal99/code/task_04/blue_game/tests/blue_game_tests.move b/mover/croal99/code/task_04/blue_game/tests/blue_game_tests.move new file mode 100644 index 000000000..11d3349ab --- /dev/null +++ b/mover/croal99/code/task_04/blue_game/tests/blue_game_tests.move @@ -0,0 +1,30 @@ +#[test_only] +#[allow(duplicate_alias, unused_use)] +module blue_game::blue_game_tests { + // uncomment this line to import the module + use std::debug; + use sui::clock::{Self, Clock}; + use sui::tx_context; + use blue_game::blue_game; + use sui::coin::{Self, Coin}; + use faucetcoin::faucet_coin::FAUCET_COIN; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_blue_game() { + let mut ctx = tx_context::dummy(); + let clock = clock::create_for_testing(&mut ctx); + // blue_game::play(1, &clock); + clock.destroy_for_testing(); + + // let coin = coin::mint_for_testing(100, &mut ctx); + // pass + } + + #[test, expected_failure(abort_code = ::blue_game::blue_game_tests::ENotImplemented)] + fun test_blue_game_fail() { + abort ENotImplemented + } +} + diff --git a/mover/croal99/code/task_05/coin/Move.lock b/mover/croal99/code/task_05/coin/Move.lock new file mode 100644 index 000000000..31cc0eb5a --- /dev/null +++ b/mover/croal99/code/task_05/coin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "DBDBAF29BC320041FA3AFC8A6E74C0CDDE832C4287D166B7E572792006DDEF36" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36" +latest-published-id = "0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xa9beea5098039e2ce4a227f343b0d6d516a1e8ccf4fb4a2d14618ea9645cdcc5" +latest-published-id = "0xa9beea5098039e2ce4a227f343b0d6d516a1e8ccf4fb4a2d14618ea9645cdcc5" +published-version = "1" diff --git a/mover/croal99/code/task_05/coin/Move.toml b/mover/croal99/code/task_05/coin/Move.toml new file mode 100644 index 000000000..067e250c0 --- /dev/null +++ b/mover/croal99/code/task_05/coin/Move.toml @@ -0,0 +1,41 @@ +[package] +name = "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)"] +published-at = "0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36" # testnet +#published-at = "0xa9beea5098039e2ce4a227f343b0d6d516a1e8ccf4fb4a2d14618ea9645cdcc5" # mainnet + +[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] +#coin = "0x0" +coin = "0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36" # testnet +#coin = "0xa9beea5098039e2ce4a227f343b0d6d516a1e8ccf4fb4a2d14618ea9645cdcc5" # mainnet + +# 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/croal99/code/task_05/coin/log4testnet.txt b/mover/croal99/code/task_05/coin/log4testnet.txt new file mode 100644 index 000000000..4b398ccd5 --- /dev/null +++ b/mover/croal99/code/task_05/coin/log4testnet.txt @@ -0,0 +1,185 @@ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Owner: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Budget: 30089600 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Version: 42662085 │ +│ │ Digest: Ay5C7LrYmb3KrwwGyJj71Eu5uAAAfFy2JRAMkA649WNL │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 3a70Q0IzZfTUxL+UYQsm2OyOH4CILs0SMmkOFWMDt6tfYNr2or9RugXTxoFCrPOrN7PJxBCHpXKzDoWWrQQoDw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: AQVkC9NJHMoLh46yXF5BwaW5v8Zofwnskprr134X1Lum │ +│ Status: Success │ +│ Executed Epoch: 393 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x14b315a214e11bbd49f3d56a33d14a8f4a91373161c644632179a2637480f2ec │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 42662086 │ +│ │ Digest: HVwCBKfCGhCXwRusrLUuDq3dweYTMmq3mpV1HGXeWXBp │ +│ └── │ +│ ┌── │ +│ │ ID: 0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 6nF2mMYHJdshw5TzzRtiyPiAwPxVm9YJemdrBYXQxAoL │ +│ └── │ +│ ┌── │ +│ │ ID: 0x9ccda250e3685232798e54e0950fa8194f06c8517e3b999305692c373904452e │ +│ │ Owner: Shared( 42662086 ) │ +│ │ Version: 42662086 │ +│ │ Digest: DvvCKPDfbPQxm5QRCTABqdjy9pLQjRmYaohQhE8JafUm │ +│ └── │ +│ ┌── │ +│ │ ID: 0x9ebf98caefb16d134e9f7eb26781a2823814b38e675384bb83b15d71b3899f21 │ +│ │ Owner: Immutable │ +│ │ Version: 42662086 │ +│ │ Digest: 37qjpPbJXzgaAjRnP4tvB6ksDmFMjeUjBHpALAL8HA2b │ +│ └── │ +│ ┌── │ +│ │ ID: 0xac93107ed5bb212b863b7860b8858f41041f65cd60b3312dc2d1a730b0031cb0 │ +│ │ Owner: Immutable │ +│ │ Version: 42662086 │ +│ │ Digest: GUE5YxL2WPjoTi4AbWUNrWDcQb4Pxq43Rqqj3JZjdAU6 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd3260f23c584021e7422ce0127589febac288e32efe7a0cd5d1f1ab2cbc3811d │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 42662086 │ +│ │ Digest: 6D5JDpT5rhMDB34w6HTEGMvBWqS6qNoktpWwjE62xtjk │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 42662086 │ +│ │ Digest: 2LkKgAF8q7R6pidUsYRrAsnCNdQzMpQH9TYS7oXiZ7ge │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 42662086 │ +│ │ Digest: 2LkKgAF8q7R6pidUsYRrAsnCNdQzMpQH9TYS7oXiZ7ge │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 28089600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ 9au69QfQwHHNVKsoW4QinXXmXxzSZMzJHepyoJPdsr9o │ +│ ASeWXh49AEzNvy38ZBZnZpPt1ecytyLUZeixpV7DAtmV │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x14b315a214e11bbd49f3d56a33d14a8f4a91373161c644632179a2637480f2ec │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36::my_coin::MY_COIN> │ +│ │ Version: 42662086 │ +│ │ Digest: HVwCBKfCGhCXwRusrLUuDq3dweYTMmq3mpV1HGXeWXBp │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x9ccda250e3685232798e54e0950fa8194f06c8517e3b999305692c373904452e │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Shared( 42662086 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36::faucet_coin::FAUCET_COIN> │ +│ │ Version: 42662086 │ +│ │ Digest: DvvCKPDfbPQxm5QRCTABqdjy9pLQjRmYaohQhE8JafUm │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x9ebf98caefb16d134e9f7eb26781a2823814b38e675384bb83b15d71b3899f21 │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36::faucet_coin::FAUCET_COIN> │ +│ │ Version: 42662086 │ +│ │ Digest: 37qjpPbJXzgaAjRnP4tvB6ksDmFMjeUjBHpALAL8HA2b │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xac93107ed5bb212b863b7860b8858f41041f65cd60b3312dc2d1a730b0031cb0 │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36::my_coin::MY_COIN> │ +│ │ Version: 42662086 │ +│ │ Digest: GUE5YxL2WPjoTi4AbWUNrWDcQb4Pxq43Rqqj3JZjdAU6 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xd3260f23c584021e7422ce0127589febac288e32efe7a0cd5d1f1ab2cbc3811d │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 42662086 │ +│ │ Digest: 6D5JDpT5rhMDB34w6HTEGMvBWqS6qNoktpWwjE62xtjk │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 42662086 │ +│ │ Digest: 2LkKgAF8q7R6pidUsYRrAsnCNdQzMpQH9TYS7oXiZ7ge │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36 │ +│ │ Version: 1 │ +│ │ Digest: 6nF2mMYHJdshw5TzzRtiyPiAwPxVm9YJemdrBYXQxAoL │ +│ │ Modules: faucet_coin, my_coin │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -28111480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/croal99/code/task_05/coin/run4mainnet.sh b/mover/croal99/code/task_05/coin/run4mainnet.sh new file mode 100644 index 000000000..6fa7721a8 --- /dev/null +++ b/mover/croal99/code/task_05/coin/run4mainnet.sh @@ -0,0 +1,38 @@ +CLIENT_ADDRESS="0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" +PACKAGE_ID="0xa9beea5098039e2ce4a227f343b0d6d516a1e8ccf4fb4a2d14618ea9645cdcc5" +MY_COIN="0x7e6ad23279aceb35f5d3639d636d3ed2b496a608a4c7077d344f0bf2a38ed1e0" +FAUCET_COIN="0xc066b877bb245a77565bb82e86d53faceb5ef3ca8b60d5f62334e0e891374e68" + +sui client switch --env mainnet +sui client envs + +sui client switch --address ${CLIENT_ADDRESS} +sui client addresses + +# mint 2000000 MY_COIN for swap pool +sui client call \ +--package ${PACKAGE_ID} \ +--module my_coin \ +--function mint \ +--args ${MY_COIN} 2000000 ${CLIENT_ADDRESS} + +# mint 2000000 FAUCET_COIN for swap pool +sui client call \ +--package ${PACKAGE_ID} \ +--module faucet_coin \ +--function mint \ +--args ${FAUCET_COIN} 2000000 ${CLIENT_ADDRESS} + +# mint 10 MY_COIN for swap +sui client call \ +--package 0xa9beea5098039e2ce4a227f343b0d6d516a1e8ccf4fb4a2d14618ea9645cdcc5 \ +--module my_coin \ +--function mint \ +--args ${MY_COIN} 10 ${CLIENT_ADDRESS} + +# mint 10 FAUCET_COIN for swap +sui client call \ +--package 0xa9beea5098039e2ce4a227f343b0d6d516a1e8ccf4fb4a2d14618ea9645cdcc5 \ +--module faucet_coin \ +--function mint \ +--args ${FAUCET_COIN} 10 ${CLIENT_ADDRESS} diff --git a/mover/croal99/code/task_05/coin/run4testnet.sh b/mover/croal99/code/task_05/coin/run4testnet.sh new file mode 100644 index 000000000..c5c19751d --- /dev/null +++ b/mover/croal99/code/task_05/coin/run4testnet.sh @@ -0,0 +1,32 @@ +CLIENT_ADDRESS="0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" +PACKAGE_ID="0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36" +MY_COIN="0x14b315a214e11bbd49f3d56a33d14a8f4a91373161c644632179a2637480f2ec" +FAUCET_COIN="0x9ccda250e3685232798e54e0950fa8194f06c8517e3b999305692c373904452e" + +sui client switch --env testnet +sui client envs + +sui client switch --address ${CLIENT_ADDRESS} +sui client addresses + +# mint 2000000 MY_COIN +sui client call \ +--package ${PACKAGE_ID} \ +--module my_coin \ +--function mint \ +--args ${MY_COIN} 2000000 ${CLIENT_ADDRESS} + +# mint 2000000 FAUCET_COIN +sui client call \ +--package ${PACKAGE_ID} \ +--module faucet_coin \ +--function mint \ +--args ${FAUCET_COIN} 2000000 ${CLIENT_ADDRESS} + +# burn FAUCET_COIN +#sui client call \ +#--package 0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36 \ +#--module my_coin \ +#--function burn \ +#--args 0x14b315a214e11bbd49f3d56a33d14a8f4a91373161c644632179a2637480f2ec 0xed1337b48852e0afb84e437b535c3297e00125883bac6cbe9ccbdb5978b57b74 + diff --git a/mover/croal99/code/task_05/coin/sources/faucetcoin.move b/mover/croal99/code/task_05/coin/sources/faucetcoin.move new file mode 100644 index 000000000..4b45af8b4 --- /dev/null +++ b/mover/croal99/code/task_05/coin/sources/faucetcoin.move @@ -0,0 +1,68 @@ +#[allow(duplicate_alias, unused_use)] +/// Module: faucetcoin +module coin::faucet_coin { + use std::debug; + use std::ascii::string; + use std::option; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::new_unsafe; + + public struct FAUCET_COIN has drop {} + + #[lint_allow(self_transfer)] + #[allow(lint(share_owned))] + fun init( + witness: FAUCET_COIN, + ctx: &mut TxContext + ) { + debug::print(&string(b"init FAUCET_COIN")); + let url_obj = new_unsafe(std::ascii::string(b"https://avatars.githubusercontent.com/u/36093027?v=4")); + let (treasury, metadata) = coin::create_currency( + witness, + 8, // decimals + b"FaucetCoin", // symbol + b"Faucet Coin", // name + b"My faucet coin", // description + option::some(url_obj), // icon url + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury); + } + + #[lint_allow(self_transfer)] + #[allow(unused_variable)] + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + debug::print(&string(b"faucet mint")); + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } + + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + debug::print(&string(b"burn")); + coin::burn(treasury_cap, coin); + } + + + // === Tests === + #[test_only] + use sui::test_scenario as ts; + + #[test_only] + public fun test_for_init( + ctx: &mut TxContext + ) { + init(FAUCET_COIN {}, ctx); + } +} diff --git a/mover/croal99/code/task_05/coin/sources/mycoin.move b/mover/croal99/code/task_05/coin/sources/mycoin.move new file mode 100644 index 000000000..323b3f763 --- /dev/null +++ b/mover/croal99/code/task_05/coin/sources/mycoin.move @@ -0,0 +1,64 @@ +#[allow(duplicate_alias)] +/// Module: coin +module coin::my_coin { + use std::debug; + use std::ascii::string; + use std::option; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::new_unsafe; + + public struct MY_COIN has drop {} + + #[lint_allow(self_transfer)] + fun init( + witness: MY_COIN, + ctx: &mut TxContext + ) { + debug::print(&string(b"init MY_COIN")); + let url_obj = new_unsafe(std::ascii::string(b"https://avatars.githubusercontent.com/u/36093027?v=4")); + let (treasury, metadata) = coin::create_currency( + witness, + 8, // decimals + b"MyCoin", // symbol + b"My Coin", // name + b"My coin", // description + option::some(url_obj), // icon url + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + #[lint_allow(self_transfer)] + #[allow(unused_variable)] + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + debug::print(&string(b"mint")); + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } + + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + debug::print(&string(b"burn")); + coin::burn(treasury_cap, coin); + } + + // === Tests === + #[test_only] + public fun test_for_init( + ctx: &mut TxContext + ) { + init(MY_COIN {}, ctx); + } + +} diff --git a/mover/croal99/code/task_05/coin/tests/coin_tests.move b/mover/croal99/code/task_05/coin/tests/coin_tests.move new file mode 100644 index 000000000..1b3fb388d --- /dev/null +++ b/mover/croal99/code/task_05/coin/tests/coin_tests.move @@ -0,0 +1,116 @@ +#[test_only] +module coin::coin_tests { + // uncomment this line to import the module + use std::debug; + use coin::faucet_coin::{Self, FAUCET_COIN}; + use coin::my_coin::{Self, MY_COIN}; + use sui::test_scenario as ts; + use sui::coin::{Self, Coin, TreasuryCap}; + + #[test] + fun test_my_coin() { + let admin = @0xA; + let mut scenario = ts::begin(admin); + + // init + ts::next_tx(&mut scenario, admin); + { + my_coin::test_for_init(scenario.ctx()); + }; + + // mint 100 coin => admin + ts::next_tx(&mut scenario, admin); + { + let mut treasurycap = ts::take_from_sender>(&scenario); + my_coin::mint(&mut treasurycap, 100, admin, scenario.ctx()); + // ts::return_to_address>(admin, treasurycap); + ts::return_to_sender>(&scenario, treasurycap); + }; + + // query [admin] coin + ts::next_tx(&mut scenario, admin); + { + let coin = ts::take_from_sender>(&scenario); + debug::print(&coin::value(&coin)); + ts::return_to_sender>(&scenario, coin); + }; + + // burn + ts::next_tx(&mut scenario, admin); + { + let coin = ts::take_from_sender>(&scenario); + let mut treasurycap = ts::take_from_sender>(&scenario); + my_coin::burn(&mut treasurycap, coin); + ts::return_to_address>(admin, treasurycap); + }; + + ts::end(scenario); + // pass + } + + #[test] + fun test_faucet_coin() { + let admin = @0xA; + let user1 = @0xB; + let mut scenario = ts::begin(admin); + + // init + ts::next_tx(&mut scenario, admin); + { + faucet_coin::test_for_init(scenario.ctx()); + }; + + // admin mint 100 coin + ts::next_tx(&mut scenario, admin); + { + let mut treasurycap = ts::take_shared>(&scenario); + faucet_coin::mint(&mut treasurycap, 100, admin, scenario.ctx()); + ts::return_shared>(treasurycap); + }; + + // query [admin] coin + ts::next_tx(&mut scenario, admin); + { + let coin = ts::take_from_sender>(&scenario); + debug::print(&coin::value(&coin)); + ts::return_to_sender>(&scenario, coin); + }; + + // user1 mint 200 coin。注意,这里和独享所有权不同,不会报错,可以mint! + ts::next_tx(&mut scenario, user1); + { + let mut treasurycap = ts::take_shared>(&scenario); + faucet_coin::mint(&mut treasurycap, 200, user1, scenario.ctx()); + ts::return_shared>(treasurycap); + }; + + // query [user1] coin + ts::next_tx(&mut scenario, user1); + { + let coin = ts::take_from_sender>(&scenario); + debug::print(&coin::value(&coin)); + ts::return_to_sender>(&scenario, coin); + }; + + // burn [admin] coin,共享所有权,可以分别对自己的coin操作! + ts::next_tx(&mut scenario, admin); + { + let coin = ts::take_from_sender>(&scenario); + let mut treasurycap = ts::take_shared>(&scenario); + faucet_coin::burn(&mut treasurycap, coin); + ts::return_shared>(treasurycap); + }; + + // burn [user1] coin,共享所有权,可以分别对自己的coin操作! + ts::next_tx(&mut scenario, user1); + { + let coin = ts::take_from_sender>(&scenario); + let mut treasurycap = ts::take_shared>(&scenario); + faucet_coin::burn(&mut treasurycap, coin); + ts::return_shared>(treasurycap); + }; + + ts::end(scenario); + // pass + } +} diff --git a/mover/croal99/code/task_05/liquidity/Move.toml b/mover/croal99/code/task_05/liquidity/Move.toml new file mode 100644 index 000000000..2b650b454 --- /dev/null +++ b/mover/croal99/code/task_05/liquidity/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "liquidity" +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] +liquidity = "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/croal99/code/task_05/liquidity/sources/liquidity.move b/mover/croal99/code/task_05/liquidity/sources/liquidity.move new file mode 100644 index 000000000..b979f1afd --- /dev/null +++ b/mover/croal99/code/task_05/liquidity/sources/liquidity.move @@ -0,0 +1,273 @@ +/// Module: liquidity +module liquidity::liquidity { + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply, Balance}; + use sui::object::{Self, UID, ID}; + use sui::transfer; + use sui::tx_context::{TxContext, sender}; + use sui::table::{Self, Table}; + use sui::pay; + + use std::vector; + + ///When Coin is zero + const ErrZeroAmount: u64 = 1001; + ///Insufficient Coin X in pool + const ErrNotEnoughXInPool: u64 = 1002; + ///Insufficient Coin Y in pool + const ErrNotEnoughYInPool: u64 = 1003; + ///When vector length is not 2 + const ErrInvalidVecotrType: u64 = 1004; + ///When balance in LP doesn't match summary in vector + const ErrBalanceNotMatch: u64 = 1005; + ///When balance in LP is not sufficient to withdraw + const ErrNotEnoughBalanceLP: u64 = 1006; + ///When withdraw failed + const ErrRemoveFailed: u64 = 1011; + ///When Liquidity provider vector is empty + const ErrEmptyLPVector: u64 = 1012; + + ///Liquidity provider, parameter 'X' and 'Y' + ///are coins held in the pool. + struct LP has drop {} + + /// Pool with exchange + struct Pool has key { + id: UID, + coin_x: Balance, + coin_y: Balance, + lp_supply: Supply> + } + + ///pocket to keep the Liquidity provider + ///and balance of Coin X/Y + struct Pocket has key, store { + id: UID, + table: Table> + } + + ///create a new pool + public fun new_pool(ctx: &mut TxContext) { + let new_pool = Pool { + id: object::new(ctx), + coin_x: balance::zero(), + coin_y: balance::zero(), + lp_supply: balance::create_supply>(LP {}) + }; + transfer::share_object(new_pool); + } + + ///Add liquidity into pool, exchange rate is 1 between X and Y + public fun add_liquidity(pool: &mut Pool, + coin_x: Coin, + coin_y: Coin, + ctx: &mut TxContext): (Coin>, vector) { + let coin_x_value = coin::value(&coin_x); + let coin_y_value = coin::value(&coin_y); + assert!(coin_x_value > 0 && coin_y_value > 0, ErrZeroAmount); + coin::put(&mut pool.coin_x, coin_x); + coin::put(&mut pool.coin_y, coin_y); + let lp_bal = balance::increase_supply(&mut pool.lp_supply, coin_x_value + coin_y_value); + let vec_value = vector::empty(); + vector::push_back(&mut vec_value, coin_x_value); + vector::push_back(&mut vec_value, coin_y_value); + (coin::from_balance(lp_bal, ctx), vec_value) + } + + ///Remove the liquidity and balance from pool + public fun remove_liquidity(pool: &mut Pool, + lp: Coin>, + vec: vector, + ctx: &mut TxContext): (Coin, Coin) { + assert!(vector::length(&vec) == 2, ErrInvalidVecotrType); + let lp_balance_value = coin::value(&lp); + let coin_x_out = *vector::borrow(&mut vec, 0); + let coin_y_out = *vector::borrow(&mut vec, 1); + assert!(lp_balance_value == coin_x_out + coin_y_out, ErrBalanceNotMatch); + assert!(balance::value(&mut pool.coin_x) > coin_x_out, ErrNotEnoughXInPool); + assert!(balance::value(&mut pool.coin_y) > coin_y_out, ErrNotEnoughYInPool); + balance::decrease_supply(&mut pool.lp_supply, coin::into_balance(lp)); + ( + coin::take(&mut pool.coin_x, coin_x_out, ctx), + coin::take(&mut pool.coin_y, coin_y_out, ctx) + ) + } + + ///withdraw coin from balance + public fun withdraw(pool: &mut Pool, + lp: &mut Coin>, + vec: &mut vector, + coin_x_out: u64, + coin_y_out: u64, + ctx: &mut TxContext): (Coin, Coin) { + assert!(balance::value(&mut pool.coin_x) > coin_x_out, ErrNotEnoughXInPool); + assert!(balance::value(&mut pool.coin_y) > coin_y_out, ErrNotEnoughYInPool); + assert!(coin::value(lp) >= coin_x_out + coin_y_out, ErrNotEnoughBalanceLP); + let coin_x_balance = vector::borrow_mut(vec, 0); + *coin_x_balance = *coin_x_balance - coin_x_out; + let coin_y_balance = vector::borrow_mut(vec, 1); + *coin_y_balance = *coin_y_balance - coin_y_out; + let lp_split = coin::split(lp, coin_x_out + coin_y_out, ctx); + balance::decrease_supply(&mut pool.lp_supply, coin::into_balance(lp_split)); + ( + coin::take(&mut pool.coin_x, coin_x_out, ctx), + coin::take(&mut pool.coin_y, coin_y_out, ctx) + ) + } + + ///swap Coin X to Y, return Coin Y + public fun swap_x_outto_y(pool: &mut Pool, + paid_in: Coin, + ctx: &mut TxContext): Coin { + let paid_value = coin::value(&paid_in); + coin::put(&mut pool.coin_x, paid_in); + assert!(paid_value < balance::value(&mut pool.coin_y), ErrNotEnoughYInPool); + coin::take(&mut pool.coin_y, paid_value, ctx) + } + + ///swap Coin Y to X, return Coin X + public fun swap_y_into_x(pool: &mut Pool, + paid_in: Coin, + ctx: &mut TxContext): Coin { + let paid_value = coin::value(&paid_in); + coin::put(&mut pool.coin_y, paid_in); + assert!(paid_value < balance::value(&mut pool.coin_x), ErrNotEnoughXInPool); + coin::take(&mut pool.coin_x, paid_value, ctx) + } + + ///entry function to create new pocket + public entry fun create_pocket(ctx: &mut TxContext) { + let pocket = Pocket { + id: object::new(ctx), + table: table::new>(ctx) + }; + transfer::public_transfer(pocket, sender(ctx)); + } + + ///entry function to generate new pool + public entry fun generate_pool(ctx: &mut TxContext) { + new_pool(ctx); + } + + ///entry function to deposit total Coin X and Y to pool + public entry fun deposit_totally(pool: &mut Pool, + coin_x: Coin, + coin_y: Coin, + pocket: &mut Pocket, + ctx: &mut TxContext) { + let (lp, vec) = add_liquidity(pool, coin_x, coin_y, ctx); + let lp_id = object::id(&lp); + table::add(&mut pocket.table, lp_id, vec); + transfer::public_transfer(lp, sender(ctx)); + } + + ///entry function to deposit part of Coin X and Y to pool + public entry fun deposit_partly(pool: &mut Pool, + coin_x_vec: vector>, + coin_y_vec: vector>, + coin_x_amt: u64, + coin_y_amt: u64, + pocket: &mut Pocket, + ctx: &mut TxContext) { + let coin_x_new = coin::zero(ctx); + let coin_y_new = coin::zero(ctx); + pay::join_vec(&mut coin_x_new, coin_x_vec); + pay::join_vec(&mut coin_y_new, coin_y_vec); + let coin_x_in = coin::split(&mut coin_x_new, coin_x_amt, ctx); + let coin_y_in = coin::split(&mut coin_y_new, coin_y_amt, ctx); + let (lp, vec) = add_liquidity(pool, coin_x_in, coin_y_in, ctx); + let lp_id = object::id(&lp); + table::add(&mut pocket.table, lp_id, vec); + transfer::public_transfer(lp, sender(ctx)); + let sender_address = sender(ctx); + transfer::public_transfer(coin_x_new, sender_address); + transfer::public_transfer(coin_y_new, sender_address); + } + + ///entry function Withdraw all balance in Liquidity provider from pool + public entry fun remove_liquidity_totally(pool: &mut Pool, + lp: Coin>, + pocket: &mut Pocket, + ctx: &mut TxContext) { + let lp_id = object::id(&lp); + let vec = *table::borrow(&mut pocket.table, lp_id); + let (coin_x_out, coin_y_out) = remove_liquidity(pool, lp, vec, ctx); + assert!(coin::value(&coin_x_out) > 0 && coin::value(&coin_y_out) > 0, ErrRemoveFailed); + let vec_out = table::remove(&mut pocket.table, lp_id); + vector::remove(&mut vec_out, 0); + vector::remove(&mut vec_out, 0); + let sender_address = sender(ctx); + transfer::public_transfer(coin_x_out, sender_address); + transfer::public_transfer(coin_y_out, sender_address); + } + + ///combine multiple liquidity providers + public fun join_lp_vec(lp_vec: vector>>, + pocket: &mut Pocket, + ctx: &mut TxContext): (Coin>, vector) { + let idx = 0; + let vec_length = vector::length(&lp_vec); + assert!(vec_length > 0, ErrEmptyLPVector); + let (combined_lp, combined_vec, combined_x_amt, combined_y_amt) = + (coin::zero>(ctx), vector::empty(), (0 as u64), (0 as u64)); + while (idx < vec_length) { + let lp_out = vector::pop_back(&mut lp_vec); + let lp_id = object::id(&lp_out); + let vec_out = table::remove(&mut pocket.table, lp_id); + combined_y_amt = combined_y_amt + vector::pop_back(&mut vec_out); + combined_x_amt = combined_x_amt + vector::pop_back(&mut vec_out); + vector::destroy_empty(vec_out); + pay::join(&mut combined_lp, lp_out); + idx = idx + 1; + }; + vector::destroy_empty(lp_vec); + vector::push_back(&mut combined_vec, combined_x_amt); + vector::push_back(&mut combined_vec, combined_y_amt); + (combined_lp, combined_vec) + } + + ///Withdraw part of balance in liquidity provider from pool + public entry fun withdraw_out(pool: &mut Pool, + lp_vec: vector>>, + coin_x_amt: u64, + coin_y_amt: u64, + pocket: &mut Pocket, + ctx: &mut TxContext) { + let (combined_lp, combined_vec) = join_lp_vec(lp_vec, pocket, ctx); + let (withdraw_coin_x, withdraw_coin_y) = + withdraw(pool, &mut combined_lp, &mut combined_vec, coin_x_amt, coin_y_amt, ctx); + let combined_lp_id = object::id(&combined_lp); + table::add(&mut pocket.table, combined_lp_id, combined_vec); + let sender_address = sender(ctx); + transfer::public_transfer(withdraw_coin_x, sender_address); + transfer::public_transfer(withdraw_coin_y, sender_address); + transfer::public_transfer(combined_lp, sender_address); + } + + public entry fun swap_x_to_y(pool: &mut Pool, + coin_x_vec: vector>, + amount: u64, + ctx: &mut TxContext) { + let coin_x = coin::zero(ctx); + pay::join_vec(&mut coin_x, coin_x_vec); + let coin_x_in = coin::split(&mut coin_x, amount, ctx); + let coin_y_out = swap_x_outto_y(pool, coin_x_in, ctx); + let sender_addres = sender(ctx); + transfer::public_transfer(coin_x, sender_addres); + transfer::public_transfer(coin_y_out, sender_addres); + } + + public entry fun swap_y_to_x(pool: &mut Pool, + coin_y_vec: vector>, + amount: u64, + ctx: &mut TxContext) { + let coin_y = coin::zero(ctx); + pay::join_vec(&mut coin_y, coin_y_vec); + let coin_y_in = coin::split(&mut coin_y, amount, ctx); + let coin_x_out = swap_y_into_x(pool, coin_y_in, ctx); + let sender_addres = sender(ctx); + transfer::public_transfer(coin_x_out, sender_addres); + transfer::public_transfer(coin_y, sender_addres); + } + +} diff --git a/mover/croal99/code/task_05/liquidity/tests/liquidity_tests.move b/mover/croal99/code/task_05/liquidity/tests/liquidity_tests.move new file mode 100644 index 000000000..96568bc49 --- /dev/null +++ b/mover/croal99/code/task_05/liquidity/tests/liquidity_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module liquidity::liquidity_tests { + // uncomment this line to import the module + // use liquidity::liquidity; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_liquidity() { + // pass + } + + #[test, expected_failure(abort_code = ::liquidity::liquidity_tests::ENotImplemented)] + fun test_liquidity_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/croal99/code/task_05/readme.md b/mover/croal99/code/task_05/readme.md new file mode 100644 index 000000000..1ec6aea90 --- /dev/null +++ b/mover/croal99/code/task_05/readme.md @@ -0,0 +1,167 @@ +# swap合约 + +## 0x01 引用 `MY_COIN` 和 `FAUCET_COIN` + +在Move.toml文件中增加对coin的地址引用 +```move +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } +coin = { local = "../coin"} +``` + +## 0x02 定义流动性提供者`LSP`和资金池`Pool` +```move + ///liquidity share provider(流动性提供者), parameter 'X' and 'Y' + ///are coins held in the pool. + public struct LSP has drop {} + + /// Pool with exchange + public struct Pool has key { + id: UID, + coin_x: Balance, + coin_y: Balance, + lsp_supply: Supply>, + fee_percent: u64 + } +``` +注意: +* 定义`LSP`的目的是为了在定义`Supply`时能确定`swap`的对象 + +## 初始化资金池 +```move + public fun new_pool( + ctx: &mut TxContext + ) { + debug::print(&string(b"init MY_COIN <==> FAUCET_COIN pool")); + let new_pool = Pool { + id: object::new(ctx), + coin_x: balance::zero(), + coin_y: balance::zero(), + lsp_supply: balance::create_supply>(LSP {}), // 初始化供应量 (这里仅仅规范了X,Y,源代码:Supply { value: 0 }) + fee_percent: (FEE_PERCENT as u64), + }; + transfer::share_object(new_pool); // share object + } +``` +注意: +* lsp_supply: balance::create_supply>(LSP {}), // 这里仅仅规范了X,Y +* 因为是公开调用,所有需要共享资金池 transfer::share_object(new_pool); + +## 测试代码 +```move +#[test_only] +#[allow(unused_use)] +module swap::swap_tests { + use std::ascii::string; + use std::debug; + use coin::my_coin::MY_COIN; + use coin::faucet_coin::FAUCET_COIN; + use sui::coin::{Self, Coin}; + use sui::test_scenario as ts; + use swap::swap::{Self, Pool}; + + + #[test] + public fun test_swap() { + let admin = @0xA; + let tom = @0xB; + let john = @0xC; + let mut scenario = ts::begin(admin); + + // init MY_COIN <==> FAUCET_COIN pool + ts::next_tx(&mut scenario, admin); + { + swap::new_pool(scenario.ctx()); + }; + + // add 200 MY_COIN and 100 FAUCET_COIN into liquidity pool + ts::next_tx(&mut scenario, admin); + { + let mut pool = ts::take_shared>(&scenario); + let coin_a_1 = coin::mint_for_testing(200, scenario.ctx()); + // let coin_b_1 = coin::zero(scenario.ctx()); + let coin_b_1 = coin::mint_for_testing(100, scenario.ctx()); + // debug::print(&pool); + debug::print(&string(b"add 200 MY_COIN and 100 FAUCET_COIN into liquidity pool")); + swap::add_liquidity(&mut pool, coin_a_1, coin_b_1, scenario.ctx()); + // debug::print(&pool); + ts::return_shared>(pool); + }; + + // swap 10 MY_COIN to FAUCET_COIN + ts::next_tx(&mut scenario, tom); + { + let mut pool = ts::take_shared>(&scenario); + let coinA = coin::mint_for_testing(10, scenario.ctx()); + debug::print(&string(b"swap 10 MY_COIN to FAUCET_COIN")); + swap::sellA(&mut pool, coinA, scenario.ctx()); + debug::print(&pool); + ts::return_shared>(pool); + }; + + // swap 10 FAUCET_COIN to MY_COIN + ts::next_tx(&mut scenario, john); + { + let mut pool = ts::take_shared>(&scenario); + let coinB = coin::mint_for_testing(10, scenario.ctx()); + debug::print(&string(b"swap 10 FAUCET_COIN to MY_COIN")); + swap::sellB(&mut pool, coinB, scenario.ctx()); + debug::print(&pool); + ts::return_shared>(pool); + }; + + // query tom's coin + ts::next_tx(&mut scenario, tom); + { + let coin = ts::take_from_sender>(&scenario); + debug::print(&string(b"query tom's coin")); + debug::print(&coin::value(&coin)); + ts::return_to_sender>(&scenario, coin); + }; + + // query john's coin + ts::next_tx(&mut scenario, john); + { + let coin = ts::take_from_sender>(&scenario); + debug::print(&string(b"query john's coin")); + debug::print(&coin::value(&coin)); + ts::return_to_sender>(&scenario, coin); + }; + + // coin::burn_for_testing(coin_a_1); + // coin::burn_for_testing(coin_b_1); + + ts::end(scenario); + // pass + } + + #[test] + public fun test_add_liquidity() { + let admin = @0xA; + let mut scenario = ts::begin(admin); + + // init MY_COIN <==> FAUCET_COIN pool + ts::next_tx(&mut scenario, admin); + { + swap::new_pool(scenario.ctx()); + }; + + // add 200 MY_COIN and 100 FAUCET_COIN into liquidity pool + ts::next_tx(&mut scenario, admin); + { + let mut pool = ts::take_shared>(&scenario); + let coin_a_1 = coin::mint_for_testing(200, scenario.ctx()); + let coin_b_1 = coin::mint_for_testing(100, scenario.ctx()); + debug::print(&string(b"add 200 MY_COIN and 100 FAUCET_COIN into liquidity pool")); + swap::add_liquidity(&mut pool, coin_a_1, coin_b_1, scenario.ctx()); + // debug::print(&pool); + ts::return_shared>(pool); + }; + + ts::end(scenario); + // pass + } +} +``` + +这里暂时不增加测试,否则需要在发布时将coin代码包含到package中 \ No newline at end of file diff --git a/mover/croal99/code/task_05/swap/Move.lock b/mover/croal99/code/task_05/swap/Move.lock new file mode 100644 index 000000000..ec60dd087 --- /dev/null +++ b/mover/croal99/code/task_05/swap/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "A4233B9CDB0593D5B24D4E20F8F905A278E423CF5031B2EFEE9BC3826E70FC82" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x3ea8d7d76136a421c6eca07a1337d7aad4d7b9d9729cb84b7e97409f52a2fe0a" +latest-published-id = "0x3ea8d7d76136a421c6eca07a1337d7aad4d7b9d9729cb84b7e97409f52a2fe0a" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x0c828cead5f0c1a7d88d1304fb91b77e5c72fe738643cfa585b0b069c7e6ad68" +latest-published-id = "0x0c828cead5f0c1a7d88d1304fb91b77e5c72fe738643cfa585b0b069c7e6ad68" +published-version = "1" diff --git a/mover/croal99/code/task_05/swap/Move.toml b/mover/croal99/code/task_05/swap/Move.toml new file mode 100644 index 000000000..1cbd6bfa3 --- /dev/null +++ b/mover/croal99/code/task_05/swap/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "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 (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 } +#coin = { local = "../coin"} + +[addresses] +swap = "0x0" +#coin = "0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36" # testnet +#coin = "0xa9beea5098039e2ce4a227f343b0d6d516a1e8ccf4fb4a2d14618ea9645cdcc5" # mainnet + +# 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/croal99/code/task_05/swap/log4mainnet.txt b/mover/croal99/code/task_05/swap/log4mainnet.txt new file mode 100644 index 000000000..ec81a7d89 --- /dev/null +++ b/mover/croal99/code/task_05/swap/log4mainnet.txt @@ -0,0 +1,129 @@ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Owner: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Budget: 19405600 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x8209f18a5d001cf088b4d2a5ffc26beeb25fb7313cd56fb7045621f5ff59ede2 │ +│ │ Version: 179270475 │ +│ │ Digest: 5ZDqHcd9yjVqExMfAYptJLmYsZ51qJY31vyaD7oF57Gw │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ ExmwCgKV74xATRPu0mt+8VDTPcjP5888XpmVXo0OVuVHICDNx7Vf9L9QTsI8CE7ANlZWL6yJfBajJtQvEMadDA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: BwSrouBhh5etDmsoSp98Wg6E4mC4bJCQPnVCat3auBAF │ +│ Status: Success │ +│ Executed Epoch: 424 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x0c828cead5f0c1a7d88d1304fb91b77e5c72fe738643cfa585b0b069c7e6ad68 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: EP1bLGkBj4xcQGp7wz3Qc7PN7CJLMNVWLbgjhpiCUPq7 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xe8fc4cccd073073443ddb6ea42fd7680ecf8bd6f4931521071d8e9cdcf4c5476 │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 179270476 │ +│ │ Digest: J2ZXPVvaivUTWVkYkzm8kJdgUP3drpHDTgdYe5XA9Hwd │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x8209f18a5d001cf088b4d2a5ffc26beeb25fb7313cd56fb7045621f5ff59ede2 │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 179270476 │ +│ │ Digest: EaCR8Nv8irSPmL7h3f43BpQWC5Gp82ssC5p2i7yCgWQH │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x8209f18a5d001cf088b4d2a5ffc26beeb25fb7313cd56fb7045621f5ff59ede2 │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 179270476 │ +│ │ Digest: EaCR8Nv8irSPmL7h3f43BpQWC5Gp82ssC5p2i7yCgWQH │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 17905600 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3qH9WL2DnvFDdYMxHq4T1unBopdFVR4acxfvi7Q8RVkX │ +│ 7pErdhMwEgDDuWFxQ1eydBZQubnuhFRjCR1EVXTDjqn3 │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xe8fc4cccd073073443ddb6ea42fd7680ecf8bd6f4931521071d8e9cdcf4c5476 │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 179270476 │ +│ │ Digest: J2ZXPVvaivUTWVkYkzm8kJdgUP3drpHDTgdYe5XA9Hwd │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x8209f18a5d001cf088b4d2a5ffc26beeb25fb7313cd56fb7045621f5ff59ede2 │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 179270476 │ +│ │ Digest: EaCR8Nv8irSPmL7h3f43BpQWC5Gp82ssC5p2i7yCgWQH │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x0c828cead5f0c1a7d88d1304fb91b77e5c72fe738643cfa585b0b069c7e6ad68 │ +│ │ Version: 1 │ +│ │ Digest: EP1bLGkBj4xcQGp7wz3Qc7PN7CJLMNVWLbgjhpiCUPq7 │ +│ │ Modules: swap │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -17677480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/croal99/code/task_05/swap/log4testnet.txt b/mover/croal99/code/task_05/swap/log4testnet.txt new file mode 100644 index 000000000..d50f9b0fa --- /dev/null +++ b/mover/croal99/code/task_05/swap/log4testnet.txt @@ -0,0 +1,130 @@ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Owner: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ Gas Budget: 19860000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Version: 42662086 │ +│ │ Digest: 2LkKgAF8q7R6pidUsYRrAsnCNdQzMpQH9TYS7oXiZ7ge │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ │ 0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ T1QCAP/7iEZwLsFR4dVVKwT3+tUVfjOcuRNC+wloANj1jUrw/pH2OgSi3QQHnLW3V+kTtKezOWj/mtJIUl2lCA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 5YqUhMbwZTQPnQivAqY2XtpFDgqc3uBAbyrvCiytkGuw │ +│ Status: Success │ +│ Executed Epoch: 393 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x8c5d919796fdaf008f0280b0c09dbaf9eae62f63a65c3a27c24f8d1e06819a4d │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 42662087 │ +│ │ Digest: Gky8aXzbJEGyxhDDQBo2y9zebR8rhc2HhDr9vZGjZxgG │ +│ └── │ +│ ┌── │ +│ │ ID: 0xfe306f47b7f2053c4156b2a9eb3b0d0672f4db32dad7adc62e0a2a1af795e63b │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: D8ohiGV6E4HCb8YdPHFCvJ565fM4RUvyGm3QehpxMUBj │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 42662087 │ +│ │ Digest: E3ZFZM3XER5r2EwLErdEZK1aaBxCxw3yAJgQejPvovv6 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ Version: 42662087 │ +│ │ Digest: E3ZFZM3XER5r2EwLErdEZK1aaBxCxw3yAJgQejPvovv6 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 17860000 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ 9au69QfQwHHNVKsoW4QinXXmXxzSZMzJHepyoJPdsr9o │ +│ AQVkC9NJHMoLh46yXF5BwaW5v8Zofwnskprr134X1Lum │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x8c5d919796fdaf008f0280b0c09dbaf9eae62f63a65c3a27c24f8d1e06819a4d │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 42662087 │ +│ │ Digest: Gky8aXzbJEGyxhDDQBo2y9zebR8rhc2HhDr9vZGjZxgG │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x56f8cccf648a6b11d6f49f2e4fc31ac1b17bdfdc401f4eeb4a3de141fa54652e │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 42662087 │ +│ │ Digest: E3ZFZM3XER5r2EwLErdEZK1aaBxCxw3yAJgQejPvovv6 │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xfe306f47b7f2053c4156b2a9eb3b0d0672f4db32dad7adc62e0a2a1af795e63b │ +│ │ Version: 1 │ +│ │ Digest: D8ohiGV6E4HCb8YdPHFCvJ565fM4RUvyGm3QehpxMUBj │ +│ │ Modules: swap │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -17881880 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/croal99/code/task_05/swap/run4mainnet.sh b/mover/croal99/code/task_05/swap/run4mainnet.sh new file mode 100644 index 000000000..2171c2726 --- /dev/null +++ b/mover/croal99/code/task_05/swap/run4mainnet.sh @@ -0,0 +1,38 @@ +CLIENT_ADDRESS="0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" +PACKAGE_ID="0x0c828cead5f0c1a7d88d1304fb91b77e5c72fe738643cfa585b0b069c7e6ad68" +MY_COIN="0xa9beea5098039e2ce4a227f343b0d6d516a1e8ccf4fb4a2d14618ea9645cdcc5::my_coin::MY_COIN" +FAUCET_COIN="0xa9beea5098039e2ce4a227f343b0d6d516a1e8ccf4fb4a2d14618ea9645cdcc5::faucet_coin::FAUCET_COIN" +POOL_ID="0x5c7d99c1ef1a16e45affb231e30794638ad3b6966b401bee5e3d42088ce9dbb9" + +sui client switch --env mainnet +sui client envs + +sui client switch --address ${CLIENT_ADDRESS} +sui client addresses + +#sui client call \ +#--package ${PACKAGE_ID} \ +#--module swap \ +#--function new_pool \ +#--type-args ${MY_COIN} ${FAUCET_COIN} + +#sui client call \ +#--package ${PACKAGE_ID} \ +#--module swap \ +#--function add_liquidity \ +#--type-args ${MY_COIN} ${FAUCET_COIN} \ +#--args ${POOL_ID} 0x4918af62da6f4ec21fa571f602fc8ae160f1cb97f51e114d3cc9f349089502ab 0xa67f3f485dfd2046a27358789fd8626eb250853a8e9d3f1a191847348d0561c5 + +#sui client call \ +#--package ${PACKAGE_ID} \ +#--module swap \ +#--function sellA \ +#--type-args ${MY_COIN} ${FAUCET_COIN} \ +#--args ${POOL_ID} 0xd0a4576a608e8b0d0b948515fcfd2945a99f672648ad0997b5a2a1e8220fb8ae + +sui client call \ +--package ${PACKAGE_ID} \ +--module swap \ +--function sellB \ +--type-args ${MY_COIN} ${FAUCET_COIN} \ +--args ${POOL_ID} 0xcd42e749d0410c803fbf335a9d6eab5e36a300f7c1ade3d1101f96ea036de955 diff --git a/mover/croal99/code/task_05/swap/run4testnet.sh b/mover/croal99/code/task_05/swap/run4testnet.sh new file mode 100644 index 000000000..12a964cb7 --- /dev/null +++ b/mover/croal99/code/task_05/swap/run4testnet.sh @@ -0,0 +1,25 @@ +sui client switch --env testnet +sui client envs + +sui client switch --address 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b +sui client addresses + +#sui client call \ +#--package 0xfe306f47b7f2053c4156b2a9eb3b0d0672f4db32dad7adc62e0a2a1af795e63b \ +#--module swap \ +#--function new_pool \ +#--type-args "0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36::my_coin::MY_COIN" "0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36::faucet_coin::FAUCET_COIN" + +#sui client call \ +#--package 0xfe306f47b7f2053c4156b2a9eb3b0d0672f4db32dad7adc62e0a2a1af795e63b \ +#--module swap \ +#--function add_liquidity \ +#--type-args "0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36::my_coin::MY_COIN" "0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36::faucet_coin::FAUCET_COIN" \ +#--args 0x22864db931d9b192dd5170888c675abd20703cb209cbf6309789dcde322bdb1e 0xa3e1cdca7e0c2b544672ca6ca1242e85dbd8754725a5ceaf36e44ecef648e812 0x1a4c676bc3d6168f5abad37a3f353287949db04d35d67dba4d0405461f4a6e24 + +sui client call \ +--package 0xfe306f47b7f2053c4156b2a9eb3b0d0672f4db32dad7adc62e0a2a1af795e63b \ +--module swap \ +--function sellA \ +--type-args "0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36::my_coin::MY_COIN" "0x445cee99e9abbdb62bf1f6067834e834f36ea6c1723b2bc2977244d0a3c62e36::faucet_coin::FAUCET_COIN" \ +--args 0x22864db931d9b192dd5170888c675abd20703cb209cbf6309789dcde322bdb1e 0x957ee02133448ed3eea212f2017693e0e7b6ff27ed546ba003df88c69a342bca diff --git a/mover/croal99/code/task_05/swap/sources/swap.move b/mover/croal99/code/task_05/swap/sources/swap.move new file mode 100644 index 000000000..3640236f0 --- /dev/null +++ b/mover/croal99/code/task_05/swap/sources/swap.move @@ -0,0 +1,203 @@ +#[allow(unused_use, duplicate_alias, unused_variable, unused_field, unused_const)] +/// Module: swap +module swap::swap { + use std::ascii::string; + use std::debug; + use sui::balance; + use sui::balance::{Balance, Supply}; + use sui::object::{Self, UID}; + use sui::tx_context::{TxContext, sender}; + use sui::coin::{Self, Coin, balance}; + use sui::sui::SUI; + use sui::transfer; + use sui::tx_context; + + ///liquidity share provider(流动性提供者), parameter 'X' and 'Y' + ///are coins held in the pool. + public struct LSP has drop {} + + /// Pool with exchange + public struct Pool has key { + id: UID, + coin_x: Balance, + coin_y: Balance, + lsp_supply: Supply>, + fee_percent: u64 + } + + // === Errors === + + /// Fee is too low for the service + const EFeeTooLow: u64 = 0; + + /// The two swap requests are not compatible + const EBadSwap: u64 = 1; + + ///When Coin is zero + const ErrZeroAmount: u64 = 1001; + ///Insufficient Coin A in pool + const ErrNotEnoughAInPool: u64 = 1002; + ///Insufficient Coin B in pool + const ErrNotEnoughBInPool: u64 = 1003; + ///When vector length is not 2 + const ErrInvalidVecotrType: u64 = 1004; + ///When balance in LP doesn't match summary in vector + const ErrBalanceNotMatch: u64 = 1005; + ///When balance in LP is not sufficient to withdraw + const ErrNotEnoughBalanceLP: u64 = 1006; + ///When withdraw failed + const ErrRemoveFailed: u64 = 1011; + ///When Liquidity provider vector is empty + const ErrEmptyLPVector: u64 = 1012; + + /// 汇率(coinA:coinB=2:1) + /// TODO: 暂时不清楚如何动态修改汇率(应该考虑只有指定人员能够设置汇率) + const EXCHANGE_RATE: u64 = 2; + + /// 交换收取的费率.(x/1000) + const FEE_PERCENT: u128 = 30; + + // === Public Functions === + // fun init(ctx: &mut TxContext) { + // new_pool(ctx); + // } + + /// create a new pool + public fun new_pool( + ctx: &mut TxContext + ) { + debug::print(&string(b"init pool")); + let new_pool = Pool { + id: object::new(ctx), + coin_x: balance::zero(), + coin_y: balance::zero(), + lsp_supply: balance::create_supply>(LSP {}), + fee_percent: (FEE_PERCENT as u64), + }; + transfer::share_object(new_pool); // share object + } + + ///Add liquidity into pool + /// 这里按照固定汇率增加lsp的balance余额,返回新的供应量 + public entry fun add_liquidity(pool: &mut Pool, + coin_x: Coin, + coin_y: Coin, + ctx: &mut TxContext + ) { + let coin_x_value = coin::value(&coin_x); + let coin_y_value = coin::value(&coin_y); + assert!(coin_x_value >= 0 && coin_y_value >= 0, ErrZeroAmount); + + // 增加coin + // 方法y一:balance::join + let b_balance = coin::into_balance(coin_y); + balance::join(&mut pool.coin_y, b_balance); + debug::print(&string(b"coinB")); + debug::print(&balance::value(&pool.coin_y)); + + // 方法二:coin::put (源代码中就是实现上面的流程) + coin::put(&mut pool.coin_x, coin_x); + debug::print(&string(b"coinA")); + debug::print(&balance::value(&pool.coin_x)); + + // 根据汇率增加LSP的供应量(如果不考虑手续费,LSP可以不定义) + let add_supple = coin_x_value * EXCHANGE_RATE + coin_y_value; + let lsp_balance = balance::increase_supply(&mut pool.lsp_supply, add_supple); + + // 新的流动性供应 + transfer::public_transfer(coin::from_balance(lsp_balance, ctx), sender(ctx)); + } + + ///卖出coinA,添加到pool;从pool中获得相应的coinB + /// 暂时不考虑手续费,所以供应量LSP的总量应该是不变的 + public entry fun sellA( + pool: &mut Pool, + coinA: Coin, + ctx: &mut TxContext, + ) { + // coinA合法性检查 + let coin_value = coin::value(&coinA); + assert!(coin_value > 0, ErrZeroAmount); + + // 根据汇率计算coinB的数量 + let output_coin_value = coin_value / EXCHANGE_RATE; + + // 检查是否超过coinB的供应量 + let coin_supuly = balance::value(&pool.coin_y); + debug::print(&string(b"coinB supuly")); + debug::print(&output_coin_value); + debug::print(&coin_supuly); + assert!(coin_supuly > output_coin_value, ErrNotEnoughBInPool); + + // 增加现金池的coinA + balance::join(&mut pool.coin_x, coin::into_balance(coinA)); + + // 减少现金池的coinB, 注意,take中使用的split函数,返回的是被减去的coin + let coinB = coin::take(&mut pool.coin_y, output_coin_value, ctx); + + transfer::public_transfer(coinB, sender(ctx)); + } + + ///卖出coinB,添加到pool;从pool中获得相应的coinA + /// 暂时不考虑手续费,所以供应量LSP的总量应该是不变的 + public entry fun sellB( + pool: &mut Pool, + coinB: Coin, + ctx: &mut TxContext, + ) { + // coin合法性检查 + let coin_value = coin::value(&coinB); + assert!(coin_value > 0, ErrZeroAmount); + + // 根据汇率计算coinB的数量 + let output_coin_value = coin_value * EXCHANGE_RATE; + + // 检查是否超过coinA的供应量 + let coin_supuly = balance::value(&pool.coin_x); + debug::print(&string(b"coinA supuly")); + debug::print(&output_coin_value); + debug::print(&coin_supuly); + assert!(coin_supuly > output_coin_value, ErrNotEnoughBInPool); + + // 增加现金池的coinA + balance::join(&mut pool.coin_y, coin::into_balance(coinB)); + + // 减少现金池的coinA, 注意,take中使用的split函数,返回的是被减去的coin + let coinA = coin::take(&mut pool.coin_x, output_coin_value, ctx); + + transfer::public_transfer(coinA, sender(ctx)); + } + + /// calc_output_amount + /// 计算卖出coinA(dx)后应该增加的coinB(dy)数量 + /// 核心思想是交易前后 coinA * coinB = k (池中资产的总价值保持不变) + /// dy = k / (x - dx) - y + public fun calc_output_amount( + coinA_value: u64, + coinB_value: u64, + sell_coinA_value: u64, + ): u64 { + let ( + x, + y, + dx, + ) = ( + (coinA_value as u128), + (coinB_value as u128), + (sell_coinA_value as u128), + ); + + // 计算流动性池的K + let k = x * y; + + // 根据公式计算 dy = k / (x - dx) - y + let dy = k / (x - dx) - y; + (dy as u64) + } + + #[test] + fun test_init() + { + debug::print(&string(b"init")); + } +} diff --git a/mover/croal99/code/task_05/swap/tests/swap_tests.move b/mover/croal99/code/task_05/swap/tests/swap_tests.move new file mode 100644 index 000000000..384d1a5de --- /dev/null +++ b/mover/croal99/code/task_05/swap/tests/swap_tests.move @@ -0,0 +1,113 @@ +// #[test_only] +// #[allow(unused_use)] +// module swap::swap_tests { +// use std::ascii::string; +// use std::debug; +// use coin::my_coin::MY_COIN; +// use coin::faucet_coin::FAUCET_COIN; +// use sui::coin::{Self, Coin}; +// use sui::test_scenario as ts; +// use swap::swap::{Self, Pool}; +// +// +// #[test] +// public fun test_swap() { +// let admin = @0xA; +// let tom = @0xB; +// let john = @0xC; +// let mut scenario = ts::begin(admin); +// +// // init MY_COIN <==> FAUCET_COIN pool +// ts::next_tx(&mut scenario, admin); +// { +// swap::new_pool(scenario.ctx()); +// }; +// +// // add 200 MY_COIN and 100 FAUCET_COIN into liquidity pool +// ts::next_tx(&mut scenario, admin); +// { +// let mut pool = ts::take_shared>(&scenario); +// let coin_a_1 = coin::mint_for_testing(200, scenario.ctx()); +// // let coin_b_1 = coin::zero(scenario.ctx()); +// let coin_b_1 = coin::mint_for_testing(100, scenario.ctx()); +// // debug::print(&pool); +// debug::print(&string(b"add 200 MY_COIN and 100 FAUCET_COIN into liquidity pool")); +// swap::add_liquidity(&mut pool, coin_a_1, coin_b_1, scenario.ctx()); +// // debug::print(&pool); +// ts::return_shared>(pool); +// }; +// +// // swap 10 MY_COIN to FAUCET_COIN +// ts::next_tx(&mut scenario, tom); +// { +// let mut pool = ts::take_shared>(&scenario); +// let coinA = coin::mint_for_testing(10, scenario.ctx()); +// debug::print(&string(b"swap 10 MY_COIN to FAUCET_COIN")); +// swap::sellA(&mut pool, coinA, scenario.ctx()); +// debug::print(&pool); +// ts::return_shared>(pool); +// }; +// +// // swap 10 FAUCET_COIN to MY_COIN +// ts::next_tx(&mut scenario, john); +// { +// let mut pool = ts::take_shared>(&scenario); +// let coinB = coin::mint_for_testing(10, scenario.ctx()); +// debug::print(&string(b"swap 10 FAUCET_COIN to MY_COIN")); +// swap::sellB(&mut pool, coinB, scenario.ctx()); +// debug::print(&pool); +// ts::return_shared>(pool); +// }; +// +// // query tom's coin +// ts::next_tx(&mut scenario, tom); +// { +// let coin = ts::take_from_sender>(&scenario); +// debug::print(&string(b"query tom's coin")); +// debug::print(&coin::value(&coin)); +// ts::return_to_sender>(&scenario, coin); +// }; +// +// // query john's coin +// ts::next_tx(&mut scenario, john); +// { +// let coin = ts::take_from_sender>(&scenario); +// debug::print(&string(b"query john's coin")); +// debug::print(&coin::value(&coin)); +// ts::return_to_sender>(&scenario, coin); +// }; +// +// // coin::burn_for_testing(coin_a_1); +// // coin::burn_for_testing(coin_b_1); +// +// ts::end(scenario); +// // pass +// } +// +// #[test] +// public fun test_add_liquidity() { +// let admin = @0xA; +// let mut scenario = ts::begin(admin); +// +// // init MY_COIN <==> FAUCET_COIN pool +// ts::next_tx(&mut scenario, admin); +// { +// swap::new_pool(scenario.ctx()); +// }; +// +// // add 200 MY_COIN and 100 FAUCET_COIN into liquidity pool +// ts::next_tx(&mut scenario, admin); +// { +// let mut pool = ts::take_shared>(&scenario); +// let coin_a_1 = coin::mint_for_testing(200, scenario.ctx()); +// let coin_b_1 = coin::mint_for_testing(100, scenario.ctx()); +// debug::print(&string(b"add 200 MY_COIN and 100 FAUCET_COIN into liquidity pool")); +// swap::add_liquidity(&mut pool, coin_a_1, coin_b_1, scenario.ctx()); +// // debug::print(&pool); +// ts::return_shared>(pool); +// }; +// +// ts::end(scenario); +// // pass +// } +// } diff --git a/mover/croal99/code/task_05/trans/Move.toml b/mover/croal99/code/task_05/trans/Move.toml new file mode 100644 index 000000000..6c0c14bb7 --- /dev/null +++ b/mover/croal99/code/task_05/trans/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "trans" +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] +trans = "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/croal99/code/task_05/trans/sources/trans.move b/mover/croal99/code/task_05/trans/sources/trans.move new file mode 100644 index 000000000..bb397a5d6 --- /dev/null +++ b/mover/croal99/code/task_05/trans/sources/trans.move @@ -0,0 +1,222 @@ +// Copyright (c) Mysten Labs, Inc. +// SPDX-License-Identifier: Apache-2.0 +#[allow(duplicate_alias)] +/// Executing a swap of two objects via a third party, using object wrapping to +/// hand ownership of the objects to swap to the third party without giving them +/// the ability to modify those objects. +module trans::trans { + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin}; + use sui::object; + use sui::object::UID; + use sui::sui::SUI; + use sui::transfer; + use sui::tx_context; + use sui::tx_context::TxContext; + use std::debug; + + public struct Object has key, store { + id: UID, + scarcity: u8, + style: u8, + } + + public struct SwapRequest has key { + id: UID, + owner: address, + object: Object, + fee: Balance, + } + + // === Errors === + + /// Fee is too low for the service + const EFeeTooLow: u64 = 0; + + /// The two swap requests are not compatible + const EBadSwap: u64 = 1; + + // === Constants === + + const MIN_FEE: u64 = 1000; + + // === Public Functions === + + public fun new(scarcity: u8, style: u8, ctx: &mut TxContext): Object { + Object { id: object::new(ctx), scarcity, style } + } + + /// Anyone who owns an `Object` can make it available for swapping, which + /// sends a `SwapRequest` to a `service` responsible for matching swaps. + public fun request_swap( + object: Object, + fee: Coin, + service: address, + ctx: &mut TxContext, + ) { + assert!(coin::value(&fee) >= MIN_FEE, EFeeTooLow); + + let request = SwapRequest { + id: object::new(ctx), + owner: tx_context::sender(ctx), + object, + fee: coin::into_balance(fee), + }; + + transfer::transfer(request, service) + } + + /// When the service has two swap requests, it can execute them, sending the + /// objects to the respective owners and taking its fee. + public fun execute_swap(s1: SwapRequest, s2: SwapRequest): Balance { + let SwapRequest {id: id1, owner: owner1, object: o1, fee: mut fee1} = s1; + let SwapRequest {id: id2, owner: owner2, object: o2, fee: fee2} = s2; + + assert!(o1.scarcity == o2.scarcity, EBadSwap); + assert!(o1.style != o2.style, EBadSwap); + + // Perform the swap + transfer::transfer(o1, owner2); + transfer::transfer(o2, owner1); + + // Delete the wrappers + object::delete(id1); + object::delete(id2); + + // Take the fee and return it + balance::join(&mut fee1, fee2); + fee1 + } + + // === Tests === + #[test_only] use sui::test_scenario as ts; + + #[test] + fun successful_swap() { + let mut ts = ts::begin(@0x0); + let alice = @0xA; + let bob = @0xB; + let custodian = @0xC; + + let i1 = { + ts::next_tx(&mut ts, alice); + let o1 = new(1, 0, ts::ctx(&mut ts)); + let c1 = coin::mint_for_testing(MIN_FEE, ts::ctx(&mut ts)); + let i = object::id(&o1); + request_swap(o1, c1, custodian, ts::ctx(&mut ts)); + i + }; + debug::print(&i1); + + let i2 = { + ts::next_tx(&mut ts, bob); + let o2 = new(1, 1, ts::ctx(&mut ts)); + let c2 = coin::mint_for_testing(MIN_FEE, ts::ctx(&mut ts)); + let i = object::id(&o2); + request_swap(o2, c2, custodian, ts::ctx(&mut ts)); + i + }; + + { + ts::next_tx(&mut ts, custodian); + let s1 = ts::take_from_sender(&ts); + let s2 = ts::take_from_sender(&ts); + + let bal = execute_swap(s1, s2); + let fee = coin::from_balance(bal, ts::ctx(&mut ts)); + + transfer::public_transfer(fee, custodian); + }; + + { + ts::next_tx(&mut ts, custodian); + let fee: Coin = ts::take_from_sender(&ts); + + assert!(ts::ids_for_address(alice) == vector[i2], 0); + assert!(ts::ids_for_address(bob) == vector[i1], 0); + assert!(coin::value(&fee) == MIN_FEE * 2, 0); + + ts::return_to_sender(&ts, fee); + }; + + ts::end(ts); + } + + #[test] + #[expected_failure(abort_code = EFeeTooLow)] + fun swap_too_cheap() { + let alice = @0xA; + let custodian = @0xC; + + let mut ts = ts::begin(alice); + let o1 = new(1, 0, ts::ctx(&mut ts)); + let c1 = coin::mint_for_testing(MIN_FEE - 1, ts::ctx(&mut ts)); + request_swap(o1, c1, custodian, ts::ctx(&mut ts)); + + abort 1337 + } + + #[test] + #[expected_failure(abort_code = EBadSwap)] + fun swap_different_scarcity() { + let mut ts = ts::begin(@0x0); + let alice = @0xA; + let bob = @0xB; + let custodian = @0xC; + + { + ts::next_tx(&mut ts, alice); + let o1 = new(1, 0, ts::ctx(&mut ts)); + let c1 = coin::mint_for_testing(MIN_FEE, ts::ctx(&mut ts)); + request_swap(o1, c1, custodian, ts::ctx(&mut ts)); + }; + + { + ts::next_tx(&mut ts, bob); + let o2 = new(0, 1, ts::ctx(&mut ts)); + let c2 = coin::mint_for_testing(MIN_FEE, ts::ctx(&mut ts)); + request_swap(o2, c2, custodian, ts::ctx(&mut ts)); + }; + + { + ts::next_tx(&mut ts, custodian); + let s1 = ts::take_from_sender(&ts); + let s2 = ts::take_from_sender(&ts); + let _fee = execute_swap(s1, s2); + }; + + abort 1337 + } + + #[test] + #[expected_failure(abort_code = EBadSwap)] + fun swap_same_style() { + let mut ts = ts::begin(@0x0); + let alice = @0xA; + let bob = @0xB; + let custodian = @0xC; + + { + ts::next_tx(&mut ts, alice); + let o1 = new(1, 0, ts::ctx(&mut ts)); + let c1 = coin::mint_for_testing(MIN_FEE, ts::ctx(&mut ts)); + request_swap(o1, c1, custodian, ts::ctx(&mut ts)); + }; + + { + ts::next_tx(&mut ts, bob); + let o2 = new(1, 0, ts::ctx(&mut ts)); + let c2 = coin::mint_for_testing(MIN_FEE, ts::ctx(&mut ts)); + request_swap(o2, c2, custodian, ts::ctx(&mut ts)); + }; + + { + ts::next_tx(&mut ts, custodian); + let s1 = ts::take_from_sender(&ts); + let s2 = ts::take_from_sender(&ts); + let _fee = execute_swap(s1, s2); + }; + + abort 1337 + } +} diff --git a/mover/croal99/code/task_05/trans/tests/trans_tests.move b/mover/croal99/code/task_05/trans/tests/trans_tests.move new file mode 100644 index 000000000..8d1690a51 --- /dev/null +++ b/mover/croal99/code/task_05/trans/tests/trans_tests.move @@ -0,0 +1,20 @@ +#[test_only] +#[allow(unused_use)] +module trans::trans_tests { + // uncomment this line to import the module + use sui::test_scenario as ts; + use trans::trans::{Self, MIN_FEE, Object}; + use std::debug; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_trans() { + // pass + } + + #[test, expected_failure(abort_code = ::trans::trans_tests::ENotImplemented)] + fun test_trans_fail() { + abort ENotImplemented + } +} diff --git a/mover/croal99/code/task_06/.env b/mover/croal99/code/task_06/.env new file mode 100644 index 000000000..626c6eece --- /dev/null +++ b/mover/croal99/code/task_06/.env @@ -0,0 +1 @@ +mnemonic = "" diff --git a/mover/croal99/code/task_06/README.md b/mover/croal99/code/task_06/README.md new file mode 100644 index 000000000..d0889dcae --- /dev/null +++ b/mover/croal99/code/task_06/README.md @@ -0,0 +1,35 @@ +# 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/) +- [`@mysten/dapp-kit`](https://sdk.mystenlabs.com/dapp-kit) for connecting to + wallets and loading data +- [pnpm](https://pnpm.io/) for package management + +## 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 +``` diff --git a/mover/croal99/code/task_06/bun.lockb b/mover/croal99/code/task_06/bun.lockb new file mode 100755 index 000000000..c6b56827b Binary files /dev/null and b/mover/croal99/code/task_06/bun.lockb differ diff --git a/mover/croal99/code/task_06/index.html b/mover/croal99/code/task_06/index.html new file mode 100644 index 000000000..f436eb158 --- /dev/null +++ b/mover/croal99/code/task_06/index.html @@ -0,0 +1,59 @@ + + + + + + + Task 6: Navi Protocol + + + + +
+ + + diff --git a/mover/croal99/code/task_06/package.json b/mover/croal99/code/task_06/package.json new file mode 100644 index 000000000..3e72df996 --- /dev/null +++ b/mover/croal99/code/task_06/package.json @@ -0,0 +1,36 @@ +{ + "name": "my-first-sui-dapp", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "bunx --bun vite --host 0.0.0.0", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@mysten/dapp-kit": "0.12.15", + "@mysten/sui.js": "0.54.1", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@tanstack/react-query": "^5.0.0", + "navi-sdk": "^1.1.23", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } +} \ No newline at end of file diff --git a/mover/croal99/code/task_06/prettier.config.cjs b/mover/croal99/code/task_06/prettier.config.cjs new file mode 100644 index 000000000..c07541106 --- /dev/null +++ b/mover/croal99/code/task_06/prettier.config.cjs @@ -0,0 +1,4 @@ +// eslint-disable-next-line no-undef +module.exports = { + proseWrap: "always", +}; diff --git a/mover/croal99/code/task_06/src/App.tsx b/mover/croal99/code/task_06/src/App.tsx new file mode 100644 index 000000000..2927ec3ab --- /dev/null +++ b/mover/croal99/code/task_06/src/App.tsx @@ -0,0 +1,32 @@ +import {ConnectButton} from "@mysten/dapp-kit"; +import {Box, Container, Flex, Heading} from "@radix-ui/themes"; +import {WalletStatus} from "./WalletStatus"; + +function App() { + return ( + <> + + + + + Task 6: Navi Protocol + + + + + + + + + + + + + ); +} + +export default App; diff --git a/mover/croal99/code/task_06/src/MyTask.tsx b/mover/croal99/code/task_06/src/MyTask.tsx new file mode 100644 index 000000000..4c985d108 --- /dev/null +++ b/mover/croal99/code/task_06/src/MyTask.tsx @@ -0,0 +1,93 @@ +import {Box, Button, Container, Flex, Text} from "@radix-ui/themes"; +import {useCurrentAccount, useSignAndExecuteTransactionBlock} from "@mysten/dapp-kit"; +import {TransactionBlock} from "@mysten/sui.js/transactions"; +import {Pool, PoolConfig} from "navi-sdk/dist/types"; +import {pool, Sui, USDC} from "navi-sdk/dist/address"; +import {borrowCoin, depositCoin} from "navi-sdk/dist/libs/PTB"; +import {useState} from "react"; + +// 任务 必须在同一个PTB完成 Navi SDK +// 1.[存入Navi Protocol 1 SUI] +// 2.[借出当前日期的USDC 0.[月][天][小时] 的 USDC ] +// 3.[然后在存入等额的USDC] +export function MyTask() { + // 当前用户对象 + const account = useCurrentAccount()!; + + const {mutate: signAndExecuteTransaction} = useSignAndExecuteTransactionBlock(); + const [digest, setDigest] = useState(''); + const [message, setMessage] = useState(''); + + function prefixInteger(num: number, length: number): string { + return (num / Math.pow(10, length)).toFixed(length).substring(2) + } + + const shouldBorrowAmount = () => { + const time = new Date() + const transactionAmount = "0." + prefixInteger(time.getMonth() + 1, 2) + prefixInteger(time.getDate(), 2) + prefixInteger(time.getHours(), 2); + // console.log('borrow', transactionAmount) + return Number(transactionAmount) + } + + const deposit_borrow = async () => { + // 待存入的SUI币数量 + const depostSuiAmount = 10 ** Sui.decimal; + // 待借入的USDC币数量 + const borrowAmount = shouldBorrowAmount() * (10 ** USDC.decimal) + + const txb = new TransactionBlock(); + txb.setSender(account!.address); + + // + // step 1: 存入1个SUI + // + txb.setSender(account!.address); + const suiPool: PoolConfig = pool[Sui.symbol as keyof Pool]; + + // 需要存入的代币 + console.log('deposit count', depostSuiAmount); + const [deposit_coin] = txb.splitCoins(txb.gas, [txb.pure(depostSuiAmount)]); + await depositCoin(txb, suiPool, deposit_coin, depostSuiAmount); + + // + // step 2:借出USDC + // + console.log('borrow count', borrowAmount); + const usdcPool: PoolConfig = pool[USDC.symbol as keyof Pool]; + const [toBorrowCoin] = await borrowCoin(txb, usdcPool, borrowAmount); + + // + // step 3:将借到的USDC存入NAVI pool,否则该PTB无效(对象没有存放) + // + await depositCoin(txb, usdcPool, toBorrowCoin, borrowAmount); + + // 将PTB签名上链 + console.log('signAndExecuteTransaction'); + signAndExecuteTransaction( + { + transactionBlock: txb, + chain: 'sui:mainnet', + }, + { + onSuccess: (result) => { + console.log('executed transaction', result); + setDigest(result.digest); + }, + onError: (result) => { + console.log('trans error', result.message); + setMessage(result.message); + } + }, + ); + } + return ( + + + 钱包地址:{account.address} + + 数字签名: {digest} + 错误信息: {message} + + + ) +} \ No newline at end of file diff --git a/mover/croal99/code/task_06/src/WalletStatus.tsx b/mover/croal99/code/task_06/src/WalletStatus.tsx new file mode 100644 index 000000000..013eea003 --- /dev/null +++ b/mover/croal99/code/task_06/src/WalletStatus.tsx @@ -0,0 +1,21 @@ +import { useCurrentAccount } from "@mysten/dapp-kit"; +import { Container, Flex, Heading, Text } from "@radix-ui/themes"; +import {MyTask} from "./MyTask.tsx"; + +export function WalletStatus() { + const account = useCurrentAccount(); + + return ( + + Wallet Status + + {account ? ( + + + + ) : ( + 没有连接钱包 + )} + + ); +} diff --git a/mover/croal99/code/task_06/src/main.tsx b/mover/croal99/code/task_06/src/main.tsx new file mode 100644 index 000000000..5291536a0 --- /dev/null +++ b/mover/croal99/code/task_06/src/main.tsx @@ -0,0 +1,37 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "@mysten/dapp-kit/dist/index.css"; +import "@radix-ui/themes/styles.css"; + +import { getFullnodeUrl } from "@mysten/sui.js/client"; +import { + SuiClientProvider, + WalletProvider, + createNetworkConfig, +} from "@mysten/dapp-kit"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { Theme } from "@radix-ui/themes"; +import App from "./App.tsx"; + +const queryClient = new QueryClient(); + +const { networkConfig } = createNetworkConfig({ + localnet: { url: getFullnodeUrl("localnet") }, + devnet: { url: getFullnodeUrl("devnet") }, + testnet: { url: getFullnodeUrl("testnet") }, + mainnet: { url: getFullnodeUrl("mainnet") }, +}); + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + + + + + + + , +); diff --git a/mover/croal99/code/task_06/src/vite-env.d.ts b/mover/croal99/code/task_06/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/mover/croal99/code/task_06/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mover/croal99/code/task_06/tsconfig.json b/mover/croal99/code/task_06/tsconfig.json new file mode 100644 index 000000000..a7fc6fbf2 --- /dev/null +++ b/mover/croal99/code/task_06/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/croal99/code/task_06/tsconfig.node.json b/mover/croal99/code/task_06/tsconfig.node.json new file mode 100644 index 000000000..42872c59f --- /dev/null +++ b/mover/croal99/code/task_06/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/croal99/code/task_06/vite.config.ts b/mover/croal99/code/task_06/vite.config.ts new file mode 100644 index 000000000..43c415e07 --- /dev/null +++ b/mover/croal99/code/task_06/vite.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + server: { + port: 8080 + } +}); diff --git a/mover/croal99/code/task_07/letsmove-ctf/README.md b/mover/croal99/code/task_07/letsmove-ctf/README.md new file mode 100644 index 000000000..83ef00fbc --- /dev/null +++ b/mover/croal99/code/task_07/letsmove-ctf/README.md @@ -0,0 +1,2 @@ +# letsmove-ctf +Move Cft 指南 diff --git a/mover/croal99/code/task_07/letsmove-ctf/book.toml b/mover/croal99/code/task_07/letsmove-ctf/book.toml new file mode 100644 index 000000000..0190208f2 --- /dev/null +++ b/mover/croal99/code/task_07/letsmove-ctf/book.toml @@ -0,0 +1,6 @@ +[book] +authors = ["wsc"] +language = "en" +multilingual = false +src = "src" +title = "lets move ctf" diff --git a/mover/croal99/code/task_07/letsmove-ctf/src/01_check_in/check_in/Move.lock b/mover/croal99/code/task_07/letsmove-ctf/src/01_check_in/check_in/Move.lock new file mode 100644 index 000000000..0e675e1f7 --- /dev/null +++ b/mover/croal99/code/task_07/letsmove-ctf/src/01_check_in/check_in/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "60ED2B08562863E03B32E589CB9D813832DBE08E722E777386028AACAA9C2B4A" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.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 = "0x914099b4d1b4f5513acc8aaa4fdc1f67578522b81d818f61bae527d590c6d87d" +latest-published-id = "0x914099b4d1b4f5513acc8aaa4fdc1f67578522b81d818f61bae527d590c6d87d" +published-version = "1" diff --git a/mover/croal99/code/task_07/letsmove-ctf/src/01_check_in/check_in/Move.toml b/mover/croal99/code/task_07/letsmove-ctf/src/01_check_in/check_in/Move.toml new file mode 100644 index 000000000..87af25a2b --- /dev/null +++ b/mover/croal99/code/task_07/letsmove-ctf/src/01_check_in/check_in/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "check_in" +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] +check_in = "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/croal99/code/task_07/letsmove-ctf/src/01_check_in/check_in/sources/check_in.move b/mover/croal99/code/task_07/letsmove-ctf/src/01_check_in/check_in/sources/check_in.move new file mode 100644 index 000000000..0adf8933f --- /dev/null +++ b/mover/croal99/code/task_07/letsmove-ctf/src/01_check_in/check_in/sources/check_in.move @@ -0,0 +1,105 @@ +#[allow(duplicate_alias, unused_variable, unused_field)] +/// Module: check_in +module check_in::check_in { + use std::ascii::{String, string}; + use std::bcs; + use std::hash::sha3_256; + use std::vector; + use std::debug; + use sui::event; + use sui::object; + use sui::random; + use sui::random::Random; + use sui::transfer::share_object; + use sui::tx_context::{Self, TxContext}; + + const ESTRING: u64 = 0; + + public struct Flag has copy, drop { + sender: address, + flag: bool, + ture_num: u64, + github_id: String + } + + public struct FlagString has key { + id: UID, + str: String, + ture_num: u64 + } + + fun init(ctx: &mut TxContext) { + let flag_str = FlagString { + id: object::new(ctx), + str: string(b"LetsMoveCTF"), + ture_num: 0 + }; + share_object(flag_str); + } + + + entry fun get_flag( + flag: vector, + github_id: String, + flag_str: &mut FlagString, + rand: &Random, + ctx: &mut TxContext + ) { + let mut bcs_flag = bcs::to_bytes(&flag_str.str); + vector::append(&mut bcs_flag, *github_id.as_bytes()); + + assert!(flag == sha3_256(bcs_flag), ESTRING); + + flag_str.str = getRandomString(rand, ctx); + + flag_str.ture_num = flag_str.ture_num + 1; + + event::emit(Flag { + sender: tx_context::sender(ctx), + flag: true, + ture_num: flag_str.ture_num, + github_id + }); + } + + + fun getRandomString(rand: &Random, ctx: &mut TxContext): String { + let mut gen = random::new_generator(rand, ctx); + + let mut str_len = random::generate_u8_in_range(&mut gen, 4, 30); + + let mut rand: vector = b""; + while (str_len != 0) { + let rand_num = random::generate_u8_in_range(&mut gen, 34, 126); + vector::push_back(&mut rand, rand_num); + str_len = str_len - 1; + }; + + string(rand) + } + + public fun get_vector( + github_id: String, + flag_str: &mut FlagString, + ctx: &mut TxContext + ): vector { + debug::print(&string(b"get_vector")); + + let mut bcs_flag = bcs::to_bytes(&flag_str.str); + + vector::append(&mut bcs_flag, *github_id.as_bytes()); + // debug::print(&bcs_flag); + + let s2 = sha3_256(bcs_flag); + + s2 + } + + // === Tests === + #[test_only] + public fun test_for_init(ctx: &mut TxContext) + { + init(ctx); + } +} + diff --git a/mover/croal99/code/task_07/letsmove-ctf/src/01_check_in/check_in/tests/check_in_tests.move b/mover/croal99/code/task_07/letsmove-ctf/src/01_check_in/check_in/tests/check_in_tests.move new file mode 100644 index 000000000..e5d02baac --- /dev/null +++ b/mover/croal99/code/task_07/letsmove-ctf/src/01_check_in/check_in/tests/check_in_tests.move @@ -0,0 +1,59 @@ +#[test_only] +#[allow(unused_variable, unused_use, unused_let_mut)] +module check_in::check_in_tests { + use std::ascii::string; + use std::debug; + use sui::test_scenario as ts; + use check_in::check_in::{Self, Flag, FlagString}; + use sui::random::{Self, Random}; + + #[test] + fun test_check_in() { + let admin = @0x0; + let mut scenario = ts::begin(admin); + + // init + ts::next_tx(&mut scenario, admin); + { + check_in::test_for_init(scenario.ctx()); + }; + + ts::next_tx(&mut scenario, admin); + { + random::create_for_testing(scenario.ctx()); + }; + + // get vector + let mut my_vector = vector::empty(); + ts::next_tx(&mut scenario, admin); + { + let mut flag_str = ts::take_shared(&scenario); + vector::append(&mut my_vector, check_in::get_vector(string(b"croal99"), &mut flag_str, scenario.ctx())); + + let len = vector::length(&my_vector); + let mut i = 0; + while (i < len) + { + let byte = *vector::borrow(&my_vector, i); + i = i + 1; + debug::print(&byte); + }; + ts::return_shared(flag_str); + }; + + // get_flag + ts::next_tx(&mut scenario, admin); + { + let rand = ts::take_shared(&scenario); + let mut flag_str = ts::take_shared(&scenario); + + check_in::get_flag(my_vector, string(b"croal99"), &mut flag_str, &rand, scenario.ctx()); + + ts::return_shared(flag_str); + ts::return_shared(rand); + }; + + ts::end(scenario); + // pass + } +} diff --git a/mover/croal99/code/task_07/letsmove-ctf/src/02_lets_move/lets_move/Move.lock b/mover/croal99/code/task_07/letsmove-ctf/src/02_lets_move/lets_move/Move.lock new file mode 100644 index 000000000..cd2698372 --- /dev/null +++ b/mover/croal99/code/task_07/letsmove-ctf/src/02_lets_move/lets_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "786B91A5B97E30CFE4109DB806C7FDAA208AD34906C77AB899770D4D0AEB5DB1" +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.26.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f" +latest-published-id = "0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f" +published-version = "1" diff --git a/mover/croal99/code/task_07/letsmove-ctf/src/02_lets_move/lets_move/Move.toml b/mover/croal99/code/task_07/letsmove-ctf/src/02_lets_move/lets_move/Move.toml new file mode 100644 index 000000000..2c2ad6ae1 --- /dev/null +++ b/mover/croal99/code/task_07/letsmove-ctf/src/02_lets_move/lets_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "lets_move" +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] +lets_move = "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/croal99/code/task_07/letsmove-ctf/src/02_lets_move/lets_move/sources/lets_move.move b/mover/croal99/code/task_07/letsmove-ctf/src/02_lets_move/lets_move/sources/lets_move.move new file mode 100644 index 000000000..7fd6fd550 --- /dev/null +++ b/mover/croal99/code/task_07/letsmove-ctf/src/02_lets_move/lets_move/sources/lets_move.move @@ -0,0 +1,87 @@ +module lets_move::lets_move { + use std::ascii::{String, string}; + use std::hash; + use sui::event; + use sui::bcs; + use sui::random; + use sui::random::Random; + use sui::transfer::share_object; + + const EPROOF: u64 = 0; + + public struct Flag has copy, drop { + sender: address, + flag: bool, + ture_num: u64, + github_id: String + } + + public struct Challenge has key { + id: UID, + str: String, + difficulity: u64, + ture_num: u64 + } + + fun init(ctx: &mut TxContext) { + let flag_str = Challenge { + id: object::new(ctx), + str: string(b"LetsMoveCTF"), + difficulity: 3, + ture_num: 0, + }; + share_object(flag_str); + } + + + entry fun get_flag( + proof: vector, + github_id: String, + challenge: &mut Challenge, + rand: &Random, + ctx: &mut TxContext + ) { + let mut full_proof: vector = vector::empty(); + vector::append(&mut full_proof, proof); + vector::append(&mut full_proof, tx_context::sender(ctx).to_bytes()); + vector::append(&mut full_proof, bcs::to_bytes(challenge)); + + let hash: vector = hash::sha3_256(full_proof); + + let mut prefix_sum: u32 = 0; + let mut i: u64 = 0; + while (i < challenge.difficulity) { + prefix_sum = prefix_sum + (*vector::borrow(&hash, i) as u32); + i = i + 1; + }; + + assert!(prefix_sum == 0, EPROOF); + + challenge.str = getRandomString(rand, ctx); + challenge.ture_num = challenge.ture_num + 1; + + event::emit(Flag { + sender: tx_context::sender(ctx), + flag: true, + ture_num: challenge.ture_num, + github_id + }); + } + + + fun getRandomString(rand: &Random, ctx: &mut TxContext): String { + let mut gen = random::new_generator(rand, ctx); + + let mut str_len = random::generate_u8_in_range(&mut gen, 4, 30); + + let mut rand: vector = b""; + while (str_len != 0) { + let rand_num = random::generate_u8_in_range(&mut gen, 34, 126); + vector::push_back(&mut rand, rand_num); + str_len = str_len - 1; + }; + + string(rand) + } +} + diff --git a/mover/croal99/code/task_07/letsmove-ctf/src/02_lets_move/lets_move/tests/lets_move_tests.move b/mover/croal99/code/task_07/letsmove-ctf/src/02_lets_move/lets_move/tests/lets_move_tests.move new file mode 100644 index 000000000..4febaae1a --- /dev/null +++ b/mover/croal99/code/task_07/letsmove-ctf/src/02_lets_move/lets_move/tests/lets_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module lets_move::lets_move_tests { + // uncomment this line to import the module + // use lets_move::lets_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_lets_move() { + // pass + } + + #[test, expected_failure(abort_code = ::lets_move::lets_move_tests::ENotImplemented)] + fun test_lets_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/croal99/code/task_07/letsmove-ctf/src/SUMMARY.md b/mover/croal99/code/task_07/letsmove-ctf/src/SUMMARY.md new file mode 100644 index 000000000..7390c8289 --- /dev/null +++ b/mover/croal99/code/task_07/letsmove-ctf/src/SUMMARY.md @@ -0,0 +1,3 @@ +# Summary + +- [Chapter 1](./chapter_1.md) diff --git a/mover/croal99/code/task_07/letsmove-ctf/src/chapter_1.md b/mover/croal99/code/task_07/letsmove-ctf/src/chapter_1.md new file mode 100644 index 000000000..b743fda35 --- /dev/null +++ b/mover/croal99/code/task_07/letsmove-ctf/src/chapter_1.md @@ -0,0 +1 @@ +# Chapter 1 diff --git a/mover/croal99/images/task_03_image_01.png b/mover/croal99/images/task_03_image_01.png new file mode 100644 index 000000000..0f5fde838 Binary files /dev/null and b/mover/croal99/images/task_03_image_01.png differ diff --git a/mover/croal99/images/task_03_image_02.png b/mover/croal99/images/task_03_image_02.png new file mode 100644 index 000000000..c6ba59e6e Binary files /dev/null and b/mover/croal99/images/task_03_image_02.png differ diff --git a/mover/croal99/images/task_07_image.png b/mover/croal99/images/task_07_image.png new file mode 100644 index 000000000..83c081264 Binary files /dev/null and b/mover/croal99/images/task_07_image.png differ diff --git a/mover/croal99/images/task_08_image.png b/mover/croal99/images/task_08_image.png new file mode 100644 index 000000000..e64f22621 Binary files /dev/null and b/mover/croal99/images/task_08_image.png differ diff --git a/mover/croal99/readme.md b/mover/croal99/readme.md index 5a24ccab8..1ce92eee6 100644 --- a/mover/croal99/readme.md +++ b/mover/croal99/readme.md @@ -20,28 +20,64 @@ - [X] package id 在 scan上的查看截图:![Scan截图](./images/task_01_image_02.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 : 0xb9e23639b708f03e0a928c362436406dca9cf4ccc28af29f4388bc3894bcb3cd +- [x] Faucet package id : 0x1034a40b9cc60e947910dea55e8c3a68421460d105bec425328a9f64859238e0 +- [x] 转账 `My Coin` hash: 0xacedf7dd91fada351eb9128ea0fe6410df141657b335555370c7491365715321 +- [x] `Faucet Coin` address1 mint hash: 9eM8jHTJvq5ZAacBU1HQ9YfHPi2DjxYuF49HoHXWYtj2 +- [x] `Faucet Coin` address2 mint hash: 44hPLC6XcGpwKCiZcZ1FjmX7oq2MgWT3fd5JSVYrGJRn ## 03 move NFT -- [] nft package id : -- [] nft object id : -- [] 转账 nft hash: -- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) +- [x] nft package id : 0x355a186a5f9905a8cee04bb15219b6a2c077cfa5f7a42a80c3cc8218c8dc86d4 +- [x] nft object id : 0x2b44b1293e575b831954effa7fb85ac10fd7be22ab4ea29fef71ad6b4e4c17e2 +- [x] 转账 nft hash: G3eCJBsr1fsZp94EEena1TSoe1RBAUtPCRcj7E9YpT6w +- [x] scan上的NFT截图:![Scan截图](./images/task_03_image_01.png) ![截图2](./images/task_03_image_02.png) ## 04 Move Game -- [] game package id : -- [] deposit Coin hash: -- [] withdraw `Coin` hash: -- [] play game hash: +- [x] game package id : 0x898f87e55e4cb51758f6bec2df4c59f5ae2b12b345c764799e62809ea12351fc +- [x] deposit Coin hash: 0xdc78fb5114def8e7d0d01f1af4ced2061e3c5b68aa17d70492ab0d6fcfcaec09 +- [x] withdraw `Coin` hash: ERerTRV5dQCht54AYscJT962mgaZ34ar7JPFkX3fiTTL +- [x] play game hash: 7GjU8c14kPYuxDKti2Jz4Hxrb7h29pfK6ntmTM5f6cCV + +game 包含自己 github id的元素 **croal99_choice** +```ini +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: ERerTRV5dQCht54AYscJT962mgaZ34ar7JPFkX3fiTTL:0 │ +│ │ PackageID: 0x898f87e55e4cb51758f6bec2df4c59f5ae2b12b345c764799e62809ea12351fc │ +│ │ Transaction Module: blue_game │ +│ │ Sender: 0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b │ +│ │ EventType: 0x898f87e55e4cb51758f6bec2df4c59f5ae2b12b345c764799e62809ea12351fc::blue_game::GamingResultEvent │ +│ │ ParsedJSON: │ +│ │ ┌────────────────┬──────────┐ │ +│ │ │ croal99_choice │ scissors │ │ +│ │ ├────────────────┼──────────┤ │ +│ │ │ is_win │ true │ │ +│ │ ├────────────────┼──────────┤ │ +│ │ │ result │ You win │ │ +│ │ ├────────────────┼──────────┤ │ +│ │ │ your_choice │ paper │ │ +│ │ └────────────────┴──────────┘ │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ + +``` + ## 05 Move Swap -- [] swap package id : -- [] call swap CoinA-> CoinB hash : -- [] call swap CoinB-> CoinA hash : +- [x] swap package id : 0x0c828cead5f0c1a7d88d1304fb91b77e5c72fe738643cfa585b0b069c7e6ad68 +- [x] call swap CoinA-> CoinB hash : 8mvigYSzihVq93jfSFdTnjEbH3X4F2eZSxRG8Asz1Dv2 +- [x] call swap CoinB-> CoinA hash : 7xKtgKZhabCUQbZXaWJm2v5gUWXp1BRqP5dXCRMz4bvH ## 06 Dapp-kit SDK PTB -- [] save hash : +- [x] save hash : BhuqhPEynVudB23zEkHFzvQUWkYtUUrWvKDt3JfzQe3f + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/task_07_image.png) +- [x] flag hash : 9ziXLF5dyTn9DfNLry22ZaG5a9cfWkczbVYj9ZUdeQkr + +## 08 Move CTF Lets Move +- [x] CLI call 截图 : ![截图](./images/task_08_image.png) +- [x] proof : 64254032a40f228ca985 +- [x] flag hash : 9i2j8XhysxnbkDeC5nhjH2EmxbXu1qDXeiTrFKQZy9gZ diff --git a/mover/dashjay/codes/task1/Move.lock b/mover/dashjay/codes/task1/Move.lock new file mode 100644 index 000000000..740214e0c --- /dev/null +++ b/mover/dashjay/codes/task1/Move.lock @@ -0,0 +1,35 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "974EFC9D7B31EC81DDDF3B450C59C12C615F5188825F3115121929E2FB1B77DD" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x631112458b22e2e4be186f971d78f99de7e964c21c348f5845ef8227fce632dc" +latest-published-id = "0x631112458b22e2e4be186f971d78f99de7e964c21c348f5845ef8227fce632dc" +published-version = "1" + diff --git a/mover/dashjay/codes/task1/Move.toml b/mover/dashjay/codes/task1/Move.toml new file mode 100644 index 000000000..1215ab4bd --- /dev/null +++ b/mover/dashjay/codes/task1/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "hello_move" +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] +hello_move = "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/dashjay/codes/task1/sources/hello_move.move b/mover/dashjay/codes/task1/sources/hello_move.move new file mode 100644 index 000000000..4e9747dd6 --- /dev/null +++ b/mover/dashjay/codes/task1/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"dashjay"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/dashjay/images/img_1.png b/mover/dashjay/images/img_1.png new file mode 100644 index 000000000..579a3f2af Binary files /dev/null and b/mover/dashjay/images/img_1.png differ diff --git a/mover/dashjay/images/img_2.png b/mover/dashjay/images/img_2.png new file mode 100644 index 000000000..ba4ea4934 Binary files /dev/null and b/mover/dashjay/images/img_2.png differ diff --git a/mover/dashjay/readme.md b/mover/dashjay/readme.md new file mode 100644 index 000000000..a243cdf5f --- /dev/null +++ b/mover/dashjay/readme.md @@ -0,0 +1,33 @@ +@@ -0,0 +1,28 @@ +## 基本信息 + +- Sui钱包地址: 0x0bb6b05d15b88b8bc9122792582e563bb6480c17a7adbdd1f1af11cab4a0ad9a + + > 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: dashjay + +## 个人简介 + +- 工作经验: 3年 +- 技术栈: Golang/Rust +- 刚接触虚拟货币,希望通过move的学习,和大家一起探索Sui的世界 +- 联系方式: dashjwz@gmail.com + +## 任务 + +## 01 hello move + +- [x] Sui cli version: 1.27.0 +- [x] package id: 0x631112458b22e2e4be186f971d78f99de7e964c21c348f5845ef8227fce632dc +- [x] Sui钱包截图: ![Sui钱包截图](./images/img_2.png) +- [x] package id 在 scan上的查看截图:![Scan截图](./images/img_1.png) + + +## 07 move ctf check in + +- [x] Transaction Digest: 3Qt32aA6eGCnXdot2FwHCP9cRjZz7VkYEruM4qMPKqxs + + +## 08 move lets move + +- [x] Transaction Digest: 6QhTXMafiwrhdEUEda9Qmyhe3xVRatxw8WqPQMWbhTd1 diff --git a/mover/dcwon/code/task03/my_nft/mint.sh b/mover/dcwon/code/task03/my_nft/mint.sh index d3d66435a..4795d98d4 100644 --- a/mover/dcwon/code/task03/my_nft/mint.sh +++ b/mover/dcwon/code/task03/my_nft/mint.sh @@ -1,7 +1,7 @@ # testnet package id: 0x11476f0e1b77afdfa690a845d63b6ab5fc3babf2bbfc0f011cb21eaf5b3850b8 # mainnet package id: 0x8fe0b96d8351175fc6bafc05f73e0bd2ff00f516ad025fdfc704a0c5b978887f -sui client call --gas-budget 100000000 \ +sui client call \ --package 0x8fe0b96d8351175fc6bafc05f73e0bd2ff00f516ad025fdfc704a0c5b978887f \ --module my_nft \ --function mint_to_sender \ diff --git a/mover/dcwon/code/task03/my_nft/tests/my_nft_tests.move b/mover/dcwon/code/task03/my_nft/tests/my_nft_tests.move index 885c58af7..9bc409ef7 100644 --- a/mover/dcwon/code/task03/my_nft/tests/my_nft_tests.move +++ b/mover/dcwon/code/task03/my_nft/tests/my_nft_tests.move @@ -1,40 +1,40 @@ -// #[test_only] -// module my_nft::my_nft_tests { -// // uncomment this line to import the module -// use my_nft::my_nft::{Self, MyNFT}; -// use sui::test_scenario as ts; -// use std::string; +#[test_only] +module my_nft::my_nft_tests { + // uncomment this line to import the module + use my_nft::my_nft::{Self, MyNFT}; + use sui::test_scenario as ts; + use std::string; -// const ENotImplemented: u64 = 0; -// const ENotExpect: u64 = 1; -// const Address1:address = @0x0A; -// const Address2:address = @0x0B; + const ENotImplemented: u64 = 0; + const ENotExpect: u64 = 1; + const Address1:address = @0x0A; + const Address2:address = @0x0B; -// #[test] -// fun test_my_nft() { -// // create the NFT -// let mut scenario = ts::begin(Address1); -// let desc1 = b"This is a Test to MyNFT"; -// my_nft::mint_to_sender( -// b"TestMyNFT", -// desc1, -// b"https://www.sui.io", -// ts::ctx(&mut scenario) -// ); -// // send it from A to B -// ts::next_tx(&mut scenario, Address1); -// let nft = ts::take_from_sender(&scenario); -// assert!(nft.get_description() == string::utf8(desc1), ENotExpect); -// my_nft::transfer(nft, Address2); -// // update descript In B -// ts::next_tx(&mut scenario, Address2); -// let mut nft = ts::take_from_sender(&scenario); -// let desc2 = b"This is a Update Test to MyNFT"; -// my_nft::update_description(&mut nft, desc2); -// // check descript after update -// assert!(nft.get_description() == string::utf8(desc2), ENotExpect); -// // burn it -// my_nft::burn(nft, ts::ctx(&mut scenario)); -// ts::end(scenario); -// } -// } + #[test] + fun test_my_nft() { + // create the NFT + let mut scenario = ts::begin(Address1); + let desc1 = b"This is a Test to MyNFT"; + my_nft::mint_to_sender( + b"TestMyNFT", + desc1, + b"https://www.sui.io", + ts::ctx(&mut scenario) + ); + // send it from A to B + ts::next_tx(&mut scenario, Address1); + let nft = ts::take_from_sender(&scenario); + assert!(nft.get_description() == string::utf8(desc1), ENotExpect); + my_nft::transfer(nft, Address2); + // update descript In B + ts::next_tx(&mut scenario, Address2); + let mut nft = ts::take_from_sender(&scenario); + let desc2 = b"This is a Update Test to MyNFT"; + my_nft::update_description(&mut nft, desc2); + // check descript after update + assert!(nft.get_description() == string::utf8(desc2), ENotExpect); + // burn it + my_nft::burn(nft, ts::ctx(&mut scenario)); + ts::end(scenario); + } +} diff --git a/mover/dcwon/code/task03/my_nft/transfer.sh b/mover/dcwon/code/task03/my_nft/transfer.sh index bac73366f..1dc96486e 100644 --- a/mover/dcwon/code/task03/my_nft/transfer.sh +++ b/mover/dcwon/code/task03/my_nft/transfer.sh @@ -1,7 +1,7 @@ # testnet package id: 0x11476f0e1b77afdfa690a845d63b6ab5fc3babf2bbfc0f011cb21eaf5b3850b8 # mainnet package id: 0x8fe0b96d8351175fc6bafc05f73e0bd2ff00f516ad025fdfc704a0c5b978887f -sui client call --gas-budget 100000000 \ +sui client call \ --package 0x8fe0b96d8351175fc6bafc05f73e0bd2ff00f516ad025fdfc704a0c5b978887f \ --module my_nft \ --function transfer \ diff --git a/mover/dcwon/code/task04/guess_number/Move.lock b/mover/dcwon/code/task04/guess_number/Move.lock new file mode 100644 index 000000000..ee3bde56b --- /dev/null +++ b/mover/dcwon/code/task04/guess_number/Move.lock @@ -0,0 +1,49 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "781922C2A34CA12141B2D742C6F875985CE56F22392C40FC16E0CDBB30BED7B7" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "faucetcoin" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "faucetcoin" +source = { local = "../faucetcoin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xfaac691d601171b337a0c686b1af2cd6dac590fd40f5425c56a00fee001f016d" +latest-published-id = "0xfaac691d601171b337a0c686b1af2cd6dac590fd40f5425c56a00fee001f016d" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xf3cc86549f161364ac7c7f3180199cc4bd95e638154e7b15bfa8d0c885147e68" +latest-published-id = "0xf3cc86549f161364ac7c7f3180199cc4bd95e638154e7b15bfa8d0c885147e68" +published-version = "1" diff --git a/mover/dcwon/code/task04/guess_number/Move.toml b/mover/dcwon/code/task04/guess_number/Move.toml new file mode 100644 index 000000000..4ad983435 --- /dev/null +++ b/mover/dcwon/code/task04/guess_number/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "guess_number" +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/mainnet" } +faucetcoin = { local = "../faucetcoin" } + +# 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] +guess_number = "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/dcwon/code/task04/guess_number/deposit.sh b/mover/dcwon/code/task04/guess_number/deposit.sh new file mode 100644 index 000000000..01a12f412 --- /dev/null +++ b/mover/dcwon/code/task04/guess_number/deposit.sh @@ -0,0 +1,10 @@ +# testnet package id: 0xfaac691d601171b337a0c686b1af2cd6dac590fd40f5425c56a00fee001f016d +# pool id: 0x12013482b96be21afc6d512eb5b35edc2cede0816efbf8f909c0e994a0e2264c +# mainnet package id: 0xf3cc86549f161364ac7c7f3180199cc4bd95e638154e7b15bfa8d0c885147e68 +# pool id: 0x70c84d530ef09f70789428fb6d5c4c7a41d6d6b1a0c2215f0a08af071d93c970 + +sui client call \ +--package 0xf3cc86549f161364ac7c7f3180199cc4bd95e638154e7b15bfa8d0c885147e68 \ +--module guess_number \ +--function top_up \ +--args 0x70c84d530ef09f70789428fb6d5c4c7a41d6d6b1a0c2215f0a08af071d93c970 $1 \ No newline at end of file diff --git a/mover/dcwon/code/task04/guess_number/initial_game.sh b/mover/dcwon/code/task04/guess_number/initial_game.sh new file mode 100644 index 000000000..b5213b088 --- /dev/null +++ b/mover/dcwon/code/task04/guess_number/initial_game.sh @@ -0,0 +1,10 @@ +# testnet package id: 0xfaac691d601171b337a0c686b1af2cd6dac590fd40f5425c56a00fee001f016d +# cap id: 0x7339d4d0d03b9cb1ba17201d84a4d0c7ad31a4d2de7995df7a88136bf53396c0 +# mainnet package id: 0xf3cc86549f161364ac7c7f3180199cc4bd95e638154e7b15bfa8d0c885147e68 +# cap id: 0xf4dce1e04860e3a610b9652490215b0c1caa800c17a1ace25594aa9188f70219 + +sui client call \ +--package 0xf3cc86549f161364ac7c7f3180199cc4bd95e638154e7b15bfa8d0c885147e68 \ +--module guess_number \ +--function initialize_pool \ +--args 0xf4dce1e04860e3a610b9652490215b0c1caa800c17a1ace25594aa9188f70219 0x06f20f4e76e04475baa76a15fe9c071b2f57cfbcd3111b4be97c7dc40c58c293 \ No newline at end of file diff --git a/mover/dcwon/code/task04/guess_number/mint_faucet.sh b/mover/dcwon/code/task04/guess_number/mint_faucet.sh new file mode 100644 index 000000000..ac2660b5c --- /dev/null +++ b/mover/dcwon/code/task04/guess_number/mint_faucet.sh @@ -0,0 +1,19 @@ +# testnet package id: 0x586cd3af1a22322f864d4f97aeb94287918e4e8cfe5f82906419ecef0e2df04a +# testnet cap id: 0x32a2791d9b178437818860007013a5c4250cf771b2091c04267c46a604e88718 +# mainnet package id: 0x0e603bb721b3b1c12aeb5e7e0240c9ff5e2779092e0961455ee93669c78123d0 +# mainet cap id: 0xf970dde8a8ebccca86f7d042e27aa2ec0366fcb3b263b99a7d1c12fb9e492216 + +# testnet +# sui client call \ +# --package 0x586cd3af1a22322f864d4f97aeb94287918e4e8cfe5f82906419ecef0e2df04a \ +# --module faucetcoin \ +# --function mint \ +# --args 0x32a2791d9b178437818860007013a5c4250cf771b2091c04267c46a604e88718 2000 0xd0ebca2f6c037a5dbc4ff544900d63eb822376d5d7b3d16de88c3d2e8e4dd73a + + +# miannet +sui client call \ +--package 0x0e603bb721b3b1c12aeb5e7e0240c9ff5e2779092e0961455ee93669c78123d0 \ +--module faucetcoin \ +--function mint \ +--args 0xf970dde8a8ebccca86f7d042e27aa2ec0366fcb3b263b99a7d1c12fb9e492216 $1 0xd0ebca2f6c037a5dbc4ff544900d63eb822376d5d7b3d16de88c3d2e8e4dd73a \ No newline at end of file diff --git a/mover/dcwon/code/task04/guess_number/sources/guess_number.move b/mover/dcwon/code/task04/guess_number/sources/guess_number.move new file mode 100644 index 000000000..def3b25ac --- /dev/null +++ b/mover/dcwon/code/task04/guess_number/sources/guess_number.move @@ -0,0 +1,111 @@ +/// Module: guess_number +module guess_number::guess_number { + use sui::object::{Self, UID}; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin}; + use sui::transfer::{transfer, share_object, public_transfer}; + use sui::tx_context::{Self, sender}; + use sui::bcs; + use faucetcoin::faucetcoin::FAUCETCOIN; + use std::debug::print; + use std::string::utf8; + + const ENotAllow: u64 = 0; + const EInvalidStake: u64 = 1; + const Rate: u64 = 2; + const MaxStake: u64 = 1000; + const MinStake: u64 = 10; + + // otw + public struct GUESS_NUMBER has drop {} + + // 奖金池,管理员为dcwon + public struct PrizePool has key { + id: UID, + prize: Balance, + dcwon: address // my github id + } + + // 用于创建、初始化奖金池,之后删除 + public struct PrizePoolCap has key { + id: UID + } + + // 创建Cap,并发送给dcwon + fun init(_otw: GUESS_NUMBER, ctx: &mut TxContext) { + let prize_pool_cap = PrizePoolCap { + id: object::new(ctx) + }; + transfer(prize_pool_cap, tx_context::sender(ctx)); + } + + // dcwon用于创建奖金池,并注入初始奖金 + public fun initialize_pool(cap: PrizePoolCap, coin: Coin, ctx: &mut TxContext) { + let prize_pool = PrizePool { + id: object::new(ctx), + prize: coin.into_balance(), + dcwon: sender(ctx) + }; + share_object(prize_pool); + let PrizePoolCap { id } = cap; + object::delete(id); + } + + // 给奖金池注入更多奖金,任何人都有权限 + public fun top_up(pool: &mut PrizePool, coin: Coin) { + coin::put(&mut pool.prize, coin) + } + + // 在奖金池取出指定数量金额 + public fun withdraw(pool: &mut PrizePool, amount: u64, ctx: &mut TxContext) { + assert!(pool.dcwon == sender(ctx), ENotAllow); + let balance = pool.prize.split(amount); + let coin = coin::from_balance(balance, ctx); + public_transfer(coin, sender(ctx)); + } + + // 在奖金池取出所有奖金 + public fun withdraw_all(pool: &mut PrizePool, ctx: &mut TxContext) { + assert!(pool.dcwon == sender(ctx), ENotAllow); + let balance = pool.prize.withdraw_all(); + let coin = coin::from_balance(balance, ctx); + public_transfer(coin, sender(ctx)); + } + + // 查询奖金池中剩余的金额 + public fun query_prize(pool: &mut PrizePool):u64 { + pool.prize.value() + } + + // 通过交易hash的方式获取随机数 + fun get_random_num(ctx: &mut TxContext): u8 { + let tx_digest = tx_context::digest(ctx); + let tx_digest_u64= bcs::peel_u8(&mut bcs::new(*tx_digest)); + let random_index: u8 = tx_digest_u64 % 3; + random_index + } + + // 开始游戏 + public fun start_game(pool: &mut PrizePool, geuss_number: u8, stake: Coin, ctx: &mut TxContext): bool { + let balance = stake.into_balance(); + let value = balance.value(); + let mut res = false; + assert!(value < MaxStake && value > MinStake, EInvalidStake); + pool.prize.join(balance); + let the_number = get_random_num(ctx); + print(&utf8(b"The right number is:")); + print(&the_number); + if (geuss_number == the_number) { + let prize_value = pool.prize.split(Rate * value); + let prize_coin = coin::from_balance(prize_value, ctx); + public_transfer(prize_coin, sender(ctx)); + res = true; + }; + res + } + + #[test_only] + public fun init_for_testing(ctx: &mut TxContext) { + init(GUESS_NUMBER {}, ctx); + } +} diff --git a/mover/dcwon/code/task04/guess_number/start_game.sh b/mover/dcwon/code/task04/guess_number/start_game.sh new file mode 100644 index 000000000..913525bcd --- /dev/null +++ b/mover/dcwon/code/task04/guess_number/start_game.sh @@ -0,0 +1,10 @@ +# testnet package id: 0xfaac691d601171b337a0c686b1af2cd6dac590fd40f5425c56a00fee001f016d +# pool id: 0x12013482b96be21afc6d512eb5b35edc2cede0816efbf8f909c0e994a0e2264c +# mainnet package id: 0xf3cc86549f161364ac7c7f3180199cc4bd95e638154e7b15bfa8d0c885147e68 +# pool id: 0x70c84d530ef09f70789428fb6d5c4c7a41d6d6b1a0c2215f0a08af071d93c970 + +sui client call \ +--package 0xf3cc86549f161364ac7c7f3180199cc4bd95e638154e7b15bfa8d0c885147e68 \ +--module guess_number \ +--function start_game \ +--args 0x70c84d530ef09f70789428fb6d5c4c7a41d6d6b1a0c2215f0a08af071d93c970 $1 $2 \ No newline at end of file diff --git a/mover/dcwon/code/task04/guess_number/tests/guess_number_tests.move b/mover/dcwon/code/task04/guess_number/tests/guess_number_tests.move new file mode 100644 index 000000000..524fb687f --- /dev/null +++ b/mover/dcwon/code/task04/guess_number/tests/guess_number_tests.move @@ -0,0 +1,175 @@ +#[test_only] +module guess_number::guess_number_tests { + // uncomment this line to import the module + use guess_number::guess_number::{Self, PrizePool, PrizePoolCap}; + use sui::coin::{Coin, TreasuryCap}; + use faucetcoin::faucetcoin::{Self, FAUCETCOIN}; + use sui::test_scenario as ts; + use sui::test_scenario::Scenario; + use std::debug::print; + use std::string::utf8; + + const ENotImplemented: u64 = 0; + const ENotExpectValue: u64 = 1; + + const Address1:address = @0x0A; + const Address2:address = @0x0B; + + fun init_modules(scenario:&mut Scenario) { + guess_number::init_for_testing(scenario.ctx()); + faucetcoin::init_for_testing(scenario.ctx()); + } + + fun init_pool(scenario:&mut Scenario, sender: address, prize: u64) { + scenario.next_tx(sender); + { + let mut coin_cap = scenario.take_shared>(); + faucetcoin::mint(&mut coin_cap, prize, sender, scenario.ctx()); + ts::return_shared(coin_cap); + }; + + scenario.next_tx(sender); + { + let pool_cap = scenario.take_from_sender(); + let coin = scenario.take_from_sender>(); + guess_number::initialize_pool(pool_cap, coin, scenario.ctx()); + }; + } + + fun init_gamer(scenario:&mut Scenario, gamer: address, balance: u64) { + scenario.next_tx(gamer); + { + let mut coin_cap = scenario.take_shared>(); + faucetcoin::mint(&mut coin_cap, balance, gamer, scenario.ctx()); + ts::return_shared(coin_cap); + } + } + + fun start_game(scenario:&mut Scenario, gamer: address, stake: u64, number: u8):bool { + let ret: bool; + print(&utf8(b"start_game enter!")); + scenario.next_tx(gamer); + { + let mut pool = scenario.take_shared(); + let mut coin = scenario.take_from_sender>(); + let stake = coin.split(stake, scenario.ctx()); + scenario.return_to_sender(coin); + ret = guess_number::start_game(&mut pool, number, stake, scenario.ctx()); + ts::return_shared(pool); + }; + print(&utf8(b"start_game exit, result:")); + print(&ret); + ret + } + + fun assert_last_coin_balance(scenario:&mut Scenario, account: address, target: u64) { + scenario.next_tx(account); + { + let coin = scenario.take_from_sender>(); + let coin_val = coin.value(); + assert!(coin_val == target, ENotExpectValue); + scenario.return_to_sender(coin); + } + } + + #[test] + // 基本猜数功能测试 + fun test_guess_number() { + let mut scenario = ts::begin(Address1); + + init_modules(&mut scenario); + + init_pool(&mut scenario, Address1, 1_000_000); + + // 玩家A开始参与游戏 + init_gamer(&mut scenario, Address1, 2_000); + + let res1 = start_game(&mut scenario, Address1, 100, 1); + + // 检查游戏是否获胜 + assert!(res1, 0); + + // 检查游戏获胜后,是否有拿到Coin + assert_last_coin_balance(&mut scenario, Address1, 200); // assert coin after win + + // 玩家B开始参与游戏 + init_gamer(&mut scenario, Address2, 2_000); + + let res2 = start_game(&mut scenario, Address2, 100, 0); + + // 检查游戏是否输了 + assert!(!res2, 0); + + ts::end(scenario); + } + + #[test] + // 基本存钱取钱功能测试 + fun test_put_and_get_prize() { + let mut scenario = ts::begin(Address1); + + init_modules(&mut scenario); + + init_pool(&mut scenario, Address1, 2_000); + + // 初始化基本金额,用于补充奖金池 + init_gamer(&mut scenario, Address1, 2_000); + + // 获取奖金池 + let mut pool = scenario.take_shared(); + + scenario.next_tx(Address1); + { + // 存钱 + let mut coin = scenario.take_from_sender>(); + let coin_to_put = coin.split(1_000, scenario.ctx()); // 存入1_000 + guess_number::top_up(&mut pool, coin_to_put); + assert!(guess_number::query_prize(&mut pool) == 3_000, ENotExpectValue); // 检查1_000是否有充值成功 2000 + 1000 + + guess_number::withdraw(&mut pool, 500, scenario.ctx()); // 取500 + + assert_last_coin_balance(&mut scenario, Address1, 500); // 检查500是否取出成功 + + guess_number::withdraw_all(&mut pool, scenario.ctx()); // 取出剩余2000 + 1000 - 500 + + assert_last_coin_balance(&mut scenario, Address1, 2500); // 检查2500是否取出成功 + + scenario.return_to_sender(coin); + ts::return_shared(pool); + }; + + ts::end(scenario); + } + + #[test, expected_failure(abort_code = ::guess_number::guess_number::EInvalidStake)] + // 下注太小测试 + fun test_guess_number_too_small() { + let mut scenario = ts::begin(Address1); + + init_modules(&mut scenario); + + init_pool(&mut scenario, Address1, 1_000_000); + + init_gamer(&mut scenario, Address1, 2_000); + + let res1 = start_game(&mut scenario, Address1, 1, 1); + + ts::end(scenario); + } + + #[test, expected_failure(abort_code = ::guess_number::guess_number::EInvalidStake)] + // 下注太大测试 + fun test_guess_number_too_big() { + let mut scenario = ts::begin(Address1); + + init_modules(&mut scenario); + + init_pool(&mut scenario, Address1, 1_000_000); + + init_gamer(&mut scenario, Address1, 2_000); + + let res1 = start_game(&mut scenario, Address1, 1_001, 1); + + ts::end(scenario); + } +} diff --git a/mover/dcwon/code/task04/guess_number/withdraw.sh b/mover/dcwon/code/task04/guess_number/withdraw.sh new file mode 100644 index 000000000..9da8b1f64 --- /dev/null +++ b/mover/dcwon/code/task04/guess_number/withdraw.sh @@ -0,0 +1,10 @@ +# testnet package id: 0xfaac691d601171b337a0c686b1af2cd6dac590fd40f5425c56a00fee001f016d +# pool id: 0x12013482b96be21afc6d512eb5b35edc2cede0816efbf8f909c0e994a0e2264c +# mainnet package id: 0xf3cc86549f161364ac7c7f3180199cc4bd95e638154e7b15bfa8d0c885147e68 +# pool id: 0x70c84d530ef09f70789428fb6d5c4c7a41d6d6b1a0c2215f0a08af071d93c970 + +sui client call \ +--package 0xf3cc86549f161364ac7c7f3180199cc4bd95e638154e7b15bfa8d0c885147e68 \ +--module guess_number \ +--function withdraw \ +--args 0x70c84d530ef09f70789428fb6d5c4c7a41d6d6b1a0c2215f0a08af071d93c970 $1 \ No newline at end of file diff --git a/mover/dcwon/code/task05/dcwon/Move.lock b/mover/dcwon/code/task05/dcwon/Move.lock new file mode 100644 index 000000000..c7369fef5 --- /dev/null +++ b/mover/dcwon/code/task05/dcwon/Move.lock @@ -0,0 +1,52 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "B250EE5C455D1593C5CA5590685B7D691431BA03875443C8D701523DC4FD0D4B" +deps_digest = "060AD7E57DFB13104F21BE5F5C3759D03F0553FC3229247D9A7A6B45F50D03A3" +dependencies = [ + { name = "Sui" }, + { name = "faucetcoin" }, + { name = "mycoin" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "faucetcoin" +source = { local = "../faucetcoin" } + +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "mycoin" +source = { local = "../mycoin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x7ec6c9645e1b43f2944ba4d2467d82b4f5c9ab57dda54987d84faf1ca0f9a3a2" +latest-published-id = "0x7ec6c9645e1b43f2944ba4d2467d82b4f5c9ab57dda54987d84faf1ca0f9a3a2" +published-version = "1" diff --git a/mover/dcwon/code/task05/dcwon/Move.toml b/mover/dcwon/code/task05/dcwon/Move.toml new file mode 100644 index 000000000..3872e769d --- /dev/null +++ b/mover/dcwon/code/task05/dcwon/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "dcwon" +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/mainnet" } +mycoin = { local = "../mycoin" } +faucetcoin = { local = "../faucetcoin" } + +# 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] +dcwon = "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/dcwon/code/task05/dcwon/deposit_faucetcoin.sh b/mover/dcwon/code/task05/dcwon/deposit_faucetcoin.sh new file mode 100644 index 000000000..58af6dfdb --- /dev/null +++ b/mover/dcwon/code/task05/dcwon/deposit_faucetcoin.sh @@ -0,0 +1,6 @@ +# miannet +sui client call \ +--package 0x7ec6c9645e1b43f2944ba4d2467d82b4f5c9ab57dda54987d84faf1ca0f9a3a2 \ +--module dcwon \ +--function deposit_faucetcoin \ +--args 0xdc819488105ec15274744d8194fb144c96419e229d8224e2da5f5c64f2e086ab $1 \ No newline at end of file diff --git a/mover/dcwon/code/task05/dcwon/deposit_mycoin.sh b/mover/dcwon/code/task05/dcwon/deposit_mycoin.sh new file mode 100644 index 000000000..7dda8ba5a --- /dev/null +++ b/mover/dcwon/code/task05/dcwon/deposit_mycoin.sh @@ -0,0 +1,6 @@ +# miannet +sui client call \ +--package 0x7ec6c9645e1b43f2944ba4d2467d82b4f5c9ab57dda54987d84faf1ca0f9a3a2 \ +--module dcwon \ +--function deposit_mycoin \ +--args 0xdc819488105ec15274744d8194fb144c96419e229d8224e2da5f5c64f2e086ab $1 \ No newline at end of file diff --git a/mover/dcwon/code/task05/dcwon/mint_faucetcoin.sh b/mover/dcwon/code/task05/dcwon/mint_faucetcoin.sh new file mode 100644 index 000000000..ac2660b5c --- /dev/null +++ b/mover/dcwon/code/task05/dcwon/mint_faucetcoin.sh @@ -0,0 +1,19 @@ +# testnet package id: 0x586cd3af1a22322f864d4f97aeb94287918e4e8cfe5f82906419ecef0e2df04a +# testnet cap id: 0x32a2791d9b178437818860007013a5c4250cf771b2091c04267c46a604e88718 +# mainnet package id: 0x0e603bb721b3b1c12aeb5e7e0240c9ff5e2779092e0961455ee93669c78123d0 +# mainet cap id: 0xf970dde8a8ebccca86f7d042e27aa2ec0366fcb3b263b99a7d1c12fb9e492216 + +# testnet +# sui client call \ +# --package 0x586cd3af1a22322f864d4f97aeb94287918e4e8cfe5f82906419ecef0e2df04a \ +# --module faucetcoin \ +# --function mint \ +# --args 0x32a2791d9b178437818860007013a5c4250cf771b2091c04267c46a604e88718 2000 0xd0ebca2f6c037a5dbc4ff544900d63eb822376d5d7b3d16de88c3d2e8e4dd73a + + +# miannet +sui client call \ +--package 0x0e603bb721b3b1c12aeb5e7e0240c9ff5e2779092e0961455ee93669c78123d0 \ +--module faucetcoin \ +--function mint \ +--args 0xf970dde8a8ebccca86f7d042e27aa2ec0366fcb3b263b99a7d1c12fb9e492216 $1 0xd0ebca2f6c037a5dbc4ff544900d63eb822376d5d7b3d16de88c3d2e8e4dd73a \ No newline at end of file diff --git a/mover/dcwon/code/task05/dcwon/mint_mycoin.sh b/mover/dcwon/code/task05/dcwon/mint_mycoin.sh new file mode 100644 index 000000000..d3cd2849b --- /dev/null +++ b/mover/dcwon/code/task05/dcwon/mint_mycoin.sh @@ -0,0 +1,19 @@ +# testnet package id: 0x586cd3af1a22322f864d4f97aeb94287918e4e8cfe5f82906419ecef0e2df04a +# testnet cap id: 0x32a2791d9b178437818860007013a5c4250cf771b2091c04267c46a604e88718 +# mainnet package id: 0x0e603bb721b3b1c12aeb5e7e0240c9ff5e2779092e0961455ee93669c78123d0 +# mainet cap id: 0xf970dde8a8ebccca86f7d042e27aa2ec0366fcb3b263b99a7d1c12fb9e492216 + +# testnet +# sui client call \ +# --package 0x586cd3af1a22322f864d4f97aeb94287918e4e8cfe5f82906419ecef0e2df04a \ +# --module faucetcoin \ +# --function mint \ +# --args 0x32a2791d9b178437818860007013a5c4250cf771b2091c04267c46a604e88718 2000 0xd0ebca2f6c037a5dbc4ff544900d63eb822376d5d7b3d16de88c3d2e8e4dd73a + + +# miannet +sui client call \ +--package 0x2d41c67a9fd9d5e4a3e5dd917545bf36770b858a763155cc6a0f94adbd2471a0 \ +--module mycoin \ +--function mint \ +--args 0x2fa50767fd6426fec70b7b1b4727b9817c6bce14847b6b73bb96565d7b9986f0 $1 0xd0ebca2f6c037a5dbc4ff544900d63eb822376d5d7b3d16de88c3d2e8e4dd73a \ No newline at end of file diff --git a/mover/dcwon/code/task05/dcwon/sources/dcwon.move b/mover/dcwon/code/task05/dcwon/sources/dcwon.move new file mode 100644 index 000000000..28e239793 --- /dev/null +++ b/mover/dcwon/code/task05/dcwon/sources/dcwon.move @@ -0,0 +1,80 @@ +/// Module: dcwon +module dcwon::dcwon { + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Balance}; + use sui::transfer::{Self, transfer, share_object, public_transfer}; + use mycoin::mycoin::MYCOIN; + use faucetcoin::faucetcoin::FAUCETCOIN; + use sui::tx_context::sender; + + public struct Bank has key { + id: UID, + mycoin: Balance, + faucetcoin: Balance, + mc_prop: u64, + fc_prop: u64 + } + + public struct AdaminCap has key { + id: UID + } + + fun init(ctx: &mut TxContext) { + let bank = Bank { + id: object::new(ctx), + mycoin: balance::zero(), + faucetcoin: balance::zero(), + mc_prop: 1000, // mc : fc = mc_prop : fc_prop + fc_prop: 7300 + }; + share_object(bank); + let adamin_cap = AdaminCap { + id: object::new(ctx) + }; + transfer(adamin_cap, sender(ctx)); + } + + public fun deposit_mycoin(bank: &mut Bank, mycoin: Coin, _ctx: &mut TxContext) { + let balance = coin::into_balance(mycoin); + bank.mycoin.join(balance); + } + + public fun deposit_faucetcoin(bank: &mut Bank, faucetcoin: Coin, _ctx: &mut TxContext) { + let balance = coin::into_balance(faucetcoin); + bank.faucetcoin.join(balance); + } + + public fun withdraw_mycoin(_: &AdaminCap, bank: &mut Bank, amount: u64, ctx: &mut TxContext) { + let amount = bank.mycoin.split(amount); + let mycoin = coin::from_balance(amount, ctx); + public_transfer(mycoin, sender(ctx)); + } + + public fun withdraw_faucetcoin(_: &AdaminCap, bank: &mut Bank, amount: u64, ctx: &mut TxContext) { + let amount = bank.mycoin.split(amount); + let mycoin = coin::from_balance(amount, ctx); + public_transfer(mycoin, sender(ctx)); + } + + public fun swap_mycoin(bank: &mut Bank, faucetcoin: Coin, ctx: &mut TxContext) { + let fc_balance = faucetcoin.into_balance(); + let fc_amt = fc_balance.value(); + let mc_amt = bank.mycoin.split(fc_amt * bank.mc_prop / bank.fc_prop); + bank.faucetcoin.join(fc_balance); + public_transfer(coin::from_balance(mc_amt, ctx), sender(ctx)); + } + + public fun swap_faucetcoin(bank: &mut Bank, mycoin: Coin, ctx: &mut TxContext) { + let mc_balance = mycoin.into_balance(); + let mc_amt = mc_balance.value(); + let fc_amt = bank.faucetcoin.split(mc_amt * bank.fc_prop / bank.mc_prop); + bank.mycoin.join(mc_balance); + public_transfer(coin::from_balance(fc_amt, ctx), sender(ctx)); + } + + #[test_only] + public fun init_for_testing(ctx: &mut TxContext) { + init(ctx); + } +} + diff --git a/mover/dcwon/code/task05/dcwon/swap_faucetcoin.sh b/mover/dcwon/code/task05/dcwon/swap_faucetcoin.sh new file mode 100644 index 000000000..3cedc4111 --- /dev/null +++ b/mover/dcwon/code/task05/dcwon/swap_faucetcoin.sh @@ -0,0 +1,6 @@ +# miannet +sui client call \ +--package 0x7ec6c9645e1b43f2944ba4d2467d82b4f5c9ab57dda54987d84faf1ca0f9a3a2 \ +--module dcwon \ +--function swap_faucetcoin \ +--args 0xdc819488105ec15274744d8194fb144c96419e229d8224e2da5f5c64f2e086ab $1 \ No newline at end of file diff --git a/mover/dcwon/code/task05/dcwon/swap_mycoin.sh b/mover/dcwon/code/task05/dcwon/swap_mycoin.sh new file mode 100644 index 000000000..c8799cfc6 --- /dev/null +++ b/mover/dcwon/code/task05/dcwon/swap_mycoin.sh @@ -0,0 +1,6 @@ +# miannet +sui client call \ +--package 0x7ec6c9645e1b43f2944ba4d2467d82b4f5c9ab57dda54987d84faf1ca0f9a3a2 \ +--module dcwon \ +--function swap_mycoin \ +--args 0xdc819488105ec15274744d8194fb144c96419e229d8224e2da5f5c64f2e086ab $1 \ No newline at end of file diff --git a/mover/dcwon/code/task05/dcwon/tests/dcwon_tests.move b/mover/dcwon/code/task05/dcwon/tests/dcwon_tests.move new file mode 100644 index 000000000..2e68ab126 --- /dev/null +++ b/mover/dcwon/code/task05/dcwon/tests/dcwon_tests.move @@ -0,0 +1,97 @@ +#[test_only] +module dcwon::dcwon_tests { + // uncomment this line to import the module + use sui::test_scenario as ts; + use sui::test_scenario::Scenario; + use sui::coin::{Self, Coin, TreasuryCap}; + use dcwon::dcwon; + use mycoin::mycoin::{Self, MYCOIN}; + use faucetcoin::faucetcoin::{Self, FAUCETCOIN}; + + const ENotExpect: u64 = 0; + // const EInvalidVal: u64 = 1; + + const Address1:address = @0x0A; + + fun init_modules(scenario: &mut Scenario) { + dcwon::init_for_testing(scenario.ctx()); + mycoin::init_for_testing(scenario.ctx()); + faucetcoin::init_for_testing(scenario.ctx()); + } + + fun min_mycoin(scenario: &mut Scenario, amt: u64) { + scenario.next_tx(Address1); + { + let mut cap = scenario.take_from_sender>(); + mycoin::mint(&mut cap, amt, Address1, scenario.ctx()); + scenario.return_to_sender(cap); + } + } + + fun min_faucetcoin(scenario: &mut Scenario, amt: u64) { + scenario.next_tx(Address1); + { + let mut cap = scenario.take_shared>(); + faucetcoin::mint(&mut cap, amt, Address1, scenario.ctx()); + ts::return_shared(cap); + } + } + + + #[test] + fun test_dcwon_basic() { + let mut scenario = ts::begin(Address1); + init_modules(&mut scenario); + + scenario.next_tx(Address1); + let mut bank = scenario.take_shared(); + + min_mycoin(&mut scenario, 1_000_000); + + scenario.next_tx(Address1); + { + let mycoin = scenario.take_from_sender>(); + dcwon::deposit_mycoin(&mut bank, mycoin, scenario.ctx()); + }; + + min_faucetcoin(&mut scenario, 1_000_000); + + scenario.next_tx(Address1); + { + let faucetcoin = scenario.take_from_sender>(); + dcwon::deposit_faucetcoin(&mut bank, faucetcoin, scenario.ctx()); + }; + + // test swap faucetcoin + min_mycoin(&mut scenario, 10); + scenario.next_tx(Address1); + { + let mc_to_swap = scenario.take_from_sender>(); + dcwon::swap_faucetcoin(&mut bank, mc_to_swap, scenario.ctx()); + // swap_faucetcoin会给sender发送交换后的faucetcoin,但是要这次交易介绍后才能看到 + scenario.next_tx(Address1); + { + let fc_after_swap = scenario.take_from_sender>(); + assert!(fc_after_swap.value() == 73, ENotExpect); + scenario.return_to_sender(fc_after_swap); + } + }; + + // test swap mycoin + scenario.next_tx(Address1); + { + let fc_to_swap = scenario.take_from_sender>(); + dcwon::swap_mycoin(&mut bank, fc_to_swap, scenario.ctx()); + // swap_mycoin会给sender发送交换后的mycoin,但是要这次交易介绍后才能看到 + scenario.next_tx(Address1); + { + let mc_after_swap = scenario.take_from_sender>(); + assert!(mc_after_swap.value() == 10, ENotExpect); + scenario.return_to_sender(mc_after_swap); + } + }; + + ts::return_shared(bank); + ts::end(scenario); + } +} diff --git a/mover/dcwon/readme.md b/mover/dcwon/readme.md index e94bd2ad2..4d027098e 100644 --- a/mover/dcwon/readme.md +++ b/mover/dcwon/readme.md @@ -31,15 +31,15 @@ - [] scan上的NFT截图:![Scan截图](./images/my_NFT.png) ## 04 Move Game -- [] game package id : -- [] deposit Coin hash: -- [] withdraw `Coin` hash: -- [] play game hash: +- [] game package id : 0xf3cc86549f161364ac7c7f3180199cc4bd95e638154e7b15bfa8d0c885147e68 +- [] deposit Coin hash: HJUyq88vC1seWq6PwRu8kV9UmZjjBcU6okNwbaaUv4BG +- [] withdraw `Coin` hash: Ffnd1XZzVR2MV4s11w3AuSvAShsvjaRn13LusZmMdH6n +- [] play game hash: 2xxgX8Faaqys9qLpY1Nk9cjM7GVs3eSMkrFbPDcAwJgu ## 05 Move Swap -- [] swap package id : -- [] call swap CoinA-> CoinB hash : -- [] call swap CoinB-> CoinA hash : +- [] swap package id : 0x7ec6c9645e1b43f2944ba4d2467d82b4f5c9ab57dda54987d84faf1ca0f9a3a2 +- [] call swap CoinA-> CoinB hash : CE7vgTpR4ncNFMG7VQhBuDRoJ6UCKuRiqRLKqTmCvFUP +- [] call swap CoinB-> CoinA hash : 9cciH4LuKXuhNWp8KYj9WC94MMihpeBWA6upBsSJxdep ## 06 SDK PTB - [] save hash : diff --git a/mover/dirtmelon/code/readme.md b/mover/dirtmelon/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/dirtmelon/code/task1/Move.lock b/mover/dirtmelon/code/task1/Move.lock new file mode 100644 index 000000000..ae4109777 --- /dev/null +++ b/mover/dirtmelon/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x5feb42c5929f33bf16a22c5f2346ff32a12d4296d4f019df166d15ab79d72e0c" +latest-published-id = "0x5feb42c5929f33bf16a22c5f2346ff32a12d4296d4f019df166d15ab79d72e0c" +published-version = "1" diff --git a/mover/dirtmelon/code/task1/Move.toml b/mover/dirtmelon/code/task1/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/dirtmelon/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/dirtmelon/code/task1/sources/hello_move.move b/mover/dirtmelon/code/task1/sources/hello_move.move new file mode 100644 index 000000000..531ec3931 --- /dev/null +++ b/mover/dirtmelon/code/task1/sources/hello_move.move @@ -0,0 +1,21 @@ +/// Module: hello_move +module hello_move::hello_move { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key { + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"dirtmelon"), + }; + transfer(hello_move, sender(ctx)); + } +} + diff --git a/mover/dirtmelon/code/task1/tests/hello_move_tests.move b/mover/dirtmelon/code/task1/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/dirtmelon/code/task1/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/dirtmelon/code/task2/dirtmelon_coin/Move.lock b/mover/dirtmelon/code/task2/dirtmelon_coin/Move.lock new file mode 100644 index 000000000..503e153fc --- /dev/null +++ b/mover/dirtmelon/code/task2/dirtmelon_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "46B820F6D62D44612F2A1245DA0417EF1F450DC8FC2AF43F4E020F9B907F007C" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x5c090a46e80a50d7b11675e523a9ecfddc45637e7b0e81368dcec9e866a705e5" +latest-published-id = "0x5c090a46e80a50d7b11675e523a9ecfddc45637e7b0e81368dcec9e866a705e5" +published-version = "1" diff --git a/mover/dirtmelon/code/task2/dirtmelon_coin/Move.toml b/mover/dirtmelon/code/task2/dirtmelon_coin/Move.toml new file mode 100644 index 000000000..1098e41c9 --- /dev/null +++ b/mover/dirtmelon/code/task2/dirtmelon_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "dirtmelon_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://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] +dirtmelon_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/dirtmelon/code/task2/dirtmelon_coin/sources/dirtmelon_coin.move b/mover/dirtmelon/code/task2/dirtmelon_coin/sources/dirtmelon_coin.move new file mode 100644 index 000000000..595470230 --- /dev/null +++ b/mover/dirtmelon/code/task2/dirtmelon_coin/sources/dirtmelon_coin.move @@ -0,0 +1,32 @@ + +/// Module: dirtmelon_coin +module dirtmelon_coin::dirtmelon_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + public struct DIRTMELON_COIN has drop {} + fun init(witness: DIRTMELON_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, // 6 decimal places + b"dirtmelon coin", // symbol + b"dirtmelon coin", // name + b"Awesome Coint", // description + option:: none(), // icon + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} + diff --git a/mover/dirtmelon/code/task2/dirtmelon_coin/tests/dirtmelon_coin_tests.move b/mover/dirtmelon/code/task2/dirtmelon_coin/tests/dirtmelon_coin_tests.move new file mode 100644 index 000000000..b5bad8266 --- /dev/null +++ b/mover/dirtmelon/code/task2/dirtmelon_coin/tests/dirtmelon_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module dirtmelon_coin::dirtmelon_coin_tests { + // uncomment this line to import the module + // use dirtmelon_coin::dirtmelon_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_dirtmelon_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::dirtmelon_coin::dirtmelon_coin_tests::ENotImplemented)] + fun test_dirtmelon_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/dirtmelon/code/task2/dirtmelon_faucet/Move.lock b/mover/dirtmelon/code/task2/dirtmelon_faucet/Move.lock new file mode 100644 index 000000000..e67a5020f --- /dev/null +++ b/mover/dirtmelon/code/task2/dirtmelon_faucet/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "732C36D3E7CEFDF131D76B7413343EFF0FBAB1344F2E3A52FCEE3B837F6CD030" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xcc716dac46ebe295b199151267e37d46249f6c59803c63a53d0e1623a87ecc5d" +latest-published-id = "0xcc716dac46ebe295b199151267e37d46249f6c59803c63a53d0e1623a87ecc5d" +published-version = "1" diff --git a/mover/dirtmelon/code/task2/dirtmelon_faucet/Move.toml b/mover/dirtmelon/code/task2/dirtmelon_faucet/Move.toml new file mode 100644 index 000000000..55407c73a --- /dev/null +++ b/mover/dirtmelon/code/task2/dirtmelon_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "dirtmelon_faucet" +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] +dirtmelon_faucet = "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/dirtmelon/code/task2/dirtmelon_faucet/sources/dirtmelon_faucet.move b/mover/dirtmelon/code/task2/dirtmelon_faucet/sources/dirtmelon_faucet.move new file mode 100644 index 000000000..5ddadc5f0 --- /dev/null +++ b/mover/dirtmelon/code/task2/dirtmelon_faucet/sources/dirtmelon_faucet.move @@ -0,0 +1,48 @@ +/// Module: dirtmelon_faucet +module dirtmelon_faucet::dirtmelon_faucet { + use sui::balance::{Balance}; + use sui::balance; + use sui::coin::{Self, TreasuryCap}; + public struct DIRTMELON_FAUCET has drop {} + public struct PublicWallet has key { + id: UID, + coin: Balance, + faucet_amount: u64, + } + const AMOUNT: u64 = 10^12; + const EFaucetDry: u64 = 1; + #[allow(lint(share_owned))] + fun init(witness: DIRTMELON_FAUCET, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 10, + b"Dirtmelon Faucet", + b"Dirtmelon Faucet", + b"Meme Coin", + option::none(), + ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + let wallet = PublicWallet { + id: object::new(ctx), + coin: balance::zero(), + faucet_amount: AMOUNT, + }; + transfer::share_object(wallet); + } + public entry fun mint_faucet( + treasury_cap: &mut TreasuryCap, + amount: u64, + wallet: &mut PublicWallet, + ctx: &mut TxContext) { + let coins = coin::mint(treasury_cap, amount, ctx); + balance::join(&mut wallet.coin, coin::into_balance(coins)); + } + public entry fun get_faucet(wallet: &mut PublicWallet, ctx: &mut TxContext) { + let balance_amount = balance::value(&wallet.coin); + assert!(balance_amount >= wallet.faucet_amount, EFaucetDry); + let mint_balance = balance::split(&mut wallet.coin, wallet.faucet_amount); + let faucet_coin = coin::from_balance(mint_balance, ctx); + transfer::public_transfer(faucet_coin, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/dirtmelon/code/task2/dirtmelon_faucet/tests/dirtmelon_faucet_tests.move b/mover/dirtmelon/code/task2/dirtmelon_faucet/tests/dirtmelon_faucet_tests.move new file mode 100644 index 000000000..971187393 --- /dev/null +++ b/mover/dirtmelon/code/task2/dirtmelon_faucet/tests/dirtmelon_faucet_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module dirtmelon_faucet::dirtmelon_faucet_tests { + // uncomment this line to import the module + // use dirtmelon_faucet::dirtmelon_faucet; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_dirtmelon_faucet() { + // pass + } + + #[test, expected_failure(abort_code = ::dirtmelon_faucet::dirtmelon_faucet_tests::ENotImplemented)] + fun test_dirtmelon_faucet_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/dirtmelon/code/task3/Move.lock b/mover/dirtmelon/code/task3/Move.lock new file mode 100644 index 000000000..66ca3df64 --- /dev/null +++ b/mover/dirtmelon/code/task3/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9D4FCF5807A34E3110DFBA44AD92FEFEC55EE3DE8CF58F3D302F55D3004E70D1" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x046a12ee63cc6b2eb955e1cab3d7e4b337da3164d75e2b89f16fcb20cc6ad2af" +latest-published-id = "0x046a12ee63cc6b2eb955e1cab3d7e4b337da3164d75e2b89f16fcb20cc6ad2af" +published-version = "1" diff --git a/mover/dirtmelon/code/task3/Move.toml b/mover/dirtmelon/code/task3/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/dirtmelon/code/task3/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/dirtmelon/code/task3/sources/nft.move b/mover/dirtmelon/code/task3/sources/nft.move new file mode 100644 index 000000000..773b2d8c7 --- /dev/null +++ b/mover/dirtmelon/code/task3/sources/nft.move @@ -0,0 +1,65 @@ +/* +/// Module: nft +module nft::nft { + +} +*/ +/// Module: nft +module nft::nft { + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"dirtmelon"), + description: string::utf8(b"dirtmelon NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/12068299?v=4") + }; + transfer::public_transfer(nft, recipient); + } +} \ No newline at end of file diff --git a/mover/dirtmelon/code/task3/tests/nft_tests.move b/mover/dirtmelon/code/task3/tests/nft_tests.move new file mode 100644 index 000000000..1e3625fad --- /dev/null +++ b/mover/dirtmelon/code/task3/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/dirtmelon/images/nft.png b/mover/dirtmelon/images/nft.png new file mode 100644 index 000000000..856d47066 Binary files /dev/null and b/mover/dirtmelon/images/nft.png differ diff --git a/mover/dirtmelon/images/sui_wallet.png b/mover/dirtmelon/images/sui_wallet.png new file mode 100644 index 000000000..0d0355237 Binary files /dev/null and b/mover/dirtmelon/images/sui_wallet.png differ diff --git a/mover/dirtmelon/images/task1_testnet_package.png b/mover/dirtmelon/images/task1_testnet_package.png new file mode 100644 index 000000000..83ec1d05b Binary files /dev/null and b/mover/dirtmelon/images/task1_testnet_package.png differ diff --git a/mover/dirtmelon/images/task7.png b/mover/dirtmelon/images/task7.png new file mode 100644 index 000000000..9a8c6fa69 Binary files /dev/null and b/mover/dirtmelon/images/task7.png differ diff --git a/mover/dirtmelon/notes/readme.md b/mover/dirtmelon/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/dirtmelon/readme.md b/mover/dirtmelon/readme.md new file mode 100644 index 000000000..acab7e4a0 --- /dev/null +++ b/mover/dirtmelon/readme.md @@ -0,0 +1,52 @@ +## 基本信息 +- Sui钱包地址: 0xcdbfa566dc4bcb0c7bd178a05d19b5ac74ab08332b21eedb2ac4dd5d9334a445 +- github: dirtmelon + +## 个人简介 +- 工作经验: 9 年 +- 技术栈: Objective-C/Swift/Ruby +- iOS 开发者, Web3 入门中,日常套利。 +- 联系方式: 0xffdirtmelon@gmail.com + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.27.0 +- [x] Sui钱包截图: ![Sui钱包截图](./images/sui_wallet.png) +- [x] package id: 0x5feb42c5929f33bf16a22c5f2346ff32a12d4296d4f019df166d15ab79d72e0c +- [x] package id 在 scan上的查看截图:![Scan截图](./images/task1_testnet_package.png) + +## 02 move coin +- [x] My Coin package id : 0x5c090a46e80a50d7b11675e523a9ecfddc45637e7b0e81368dcec9e866a705e5 +- [x] Faucet package id : 0xcc716dac46ebe295b199151267e37d46249f6c59803c63a53d0e1623a87ecc5d +- [x] 转账 `My Coin` hash: FXhS3CnKZi9hwVq5qPWf8SWoAkoY85BzdzNPyyDmhBEW +- [x] `Faucet Coin` address1 mint hash: 3QoEoE2Vnz5ZPUkopKvrpMCoxxDCBkHWgnFnDy8fhzXg +- [x] `Faucet Coin` address2 mint hash: 56mHrAwM19ADF3w5QX2vMsRBk8K3Ck5qHumant4APoWK + +## 03 move NFT +- [x] nft package id : 0x046a12ee63cc6b2eb955e1cab3d7e4b337da3164d75e2b89f16fcb20cc6ad2af +- [x] nft object id : 0x7cff0dcee42a9777ce68446fe99b5b7d4ca7b5f8bc65344e35b38e6ea9d0d3a8 +- [x] 转账 nft hash: 3Ji7L9o5KLF8jq66ZRMCVSvh3MW7Fg87fsrfRDWS1SoF +- [x] scan上的NFT截图:![Scan截图](./images/nft.png) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/task7.png) +- [x] flag hash : 3pRri1rrYaSgWtYwJJP5eisKbr84kZihPxdSfCpbPaRG + +## 08 Move CTF Lets Move +- [x] proof : 61926947 +- [x] flag hash : ctKRgSyz6qDgD8CBzNSdHchnpTWfHRyX4qHWWfi7zh6 diff --git a/mover/dlongx/code/task2/Move.toml b/mover/dlongx/code/task2/Move.toml index e2c3ca575..4027243c4 100644 --- a/mover/dlongx/code/task2/Move.toml +++ b/mover/dlongx/code/task2/Move.toml @@ -20,7 +20,8 @@ Sui = { git = "https://gitee.com/WGB5445/sui.git", subdir = "crates/sui-framewor [addresses] task2 = "0x0" -address = "0xccc5c2f15557a3ee61e32cb6daee0314626a72c36d4b80db5c7a533a4326d0a4" +myaddress = "0x167b61dcef37260fc8335e15a16cbad0a2f3ddc8a511169820f0c013396f205b" +coin_owner = "0x839ef821af6cba5ee8d620b566244d77a87d906bb91f2310edd26cf8c38cc60f" # Named addresses will be accessible in Move as `@name`. They're also exported: # for example, `std = "0x1"` is exported by the Standard Library. diff --git a/mover/dlongx/code/task7/b7614a0bb709f9143ca249c948a7f7b.png b/mover/dlongx/code/task7/b7614a0bb709f9143ca249c948a7f7b.png new file mode 100644 index 000000000..3feb4d091 Binary files /dev/null and b/mover/dlongx/code/task7/b7614a0bb709f9143ca249c948a7f7b.png differ diff --git a/mover/dlongx/code/task8/1abdd6f1c186fd209c2f8d1c191e922.png b/mover/dlongx/code/task8/1abdd6f1c186fd209c2f8d1c191e922.png new file mode 100644 index 000000000..bc3ea9c49 Binary files /dev/null and b/mover/dlongx/code/task8/1abdd6f1c186fd209c2f8d1c191e922.png differ diff --git a/mover/dlongx/readme.md b/mover/dlongx/readme.md index 1aded8c58..6d9df0513 100644 --- a/mover/dlongx/readme.md +++ b/mover/dlongx/readme.md @@ -34,3 +34,11 @@ ## 06 SDK PTB - [X] save hash :[https://suivision.xyz/txblock/Bd5NiqNa4cL7yDw7d9diMS8gdeKe39ZV3ok4Hb9fMY1y] + +## 07 Move CTF Check In +- [X] flag hash :[https://testnet.suivision.xyz/txblock/4ZJWsTGWgeaxYPvaUNqeLe1GEGs7Ej9f8HM5gTNhWAZM] + +## 08 Move CTF Lets Move + +- [x] proof : 31157547 +- [x] flag hash : kom5DmTEdcv3eJFWRFyAExheQuaNRYy8yrUxNbomfeq[https://testnet.suivision.xyz/txblock/kom5DmTEdcv3eJFWRFyAExheQuaNRYy8yrUxNbomfeq] \ No newline at end of file diff --git a/mover/do0x0ob/code/task_7/readme.md b/mover/do0x0ob/code/task_7/readme.md new file mode 100644 index 000000000..b1c2bd971 --- /dev/null +++ b/mover/do0x0ob/code/task_7/readme.md @@ -0,0 +1,194 @@ +## 終端機操作紀錄與回顯 + +步驟: +1. 調用 `sui client object` 查看 `FlagString` 物件 +2. 取得 ASCII 編碼的 `str` 欄位值, 轉換為字符串 +3. 將字符串作為第一個參數傳入 `get_flag` 函數中, 取得 `flag` + - Transaction Digest: `vNACMAgumoqKT6sx1ZFY5AoS3qKaCPQGyJXjQLKbgNw` + - EventID: `vNACMAgumoqKT6sx1ZFY5AoS3qKaCPQGyJXjQLKbgNw:0` + +```bash +(base) harperdelaviga@HarperMBP14 ~ % sui client object 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 +╭───────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ objectId │ 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ version │ 48024466 │ +│ digest │ G7LgogwM4V97XZ2SGEYUBVYGdjT6A5tAQQbSzojeUJWs │ +│ objType │ 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd::check_in::FlagString │ +│ owner │ ╭────────┬─────────────────────────────────────────╮ │ +│ │ │ Shared │ ╭────────────────────────┬────────────╮ │ │ +│ │ │ │ │ initial_shared_version │ 12674957 │ │ │ +│ │ │ │ ╰────────────────────────┴────────────╯ │ │ +│ │ ╰────────┴─────────────────────────────────────────╯ │ +│ prevTx │ 4nptf2AX1nqHcyM51WB1wm3DqMQA6EC52A2vtdAvH9Pq │ +│ storageRebate │ 1535200 │ +│ content │ ╭───────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ │ dataType │ moveObject │ │ +│ │ │ type │ 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd::check_in::FlagString │ │ +│ │ │ hasPublicTransfer │ false │ │ +│ │ │ fields │ ╭──────────┬───────────────────────────────────────────────────────────────────────────────╮ │ │ +│ │ │ │ │ id │ ╭────┬──────────────────────────────────────────────────────────────────────╮ │ │ │ +│ │ │ │ │ │ │ id │ 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ │ │ │ +│ │ │ │ │ │ ╰────┴──────────────────────────────────────────────────────────────────────╯ │ │ │ +│ │ │ │ │ str │ ╭───────╮ │ │ │ +│ │ │ │ │ │ │ 120 │ │ │ │ +│ │ │ │ │ │ │ 59 │ │ │ │ +│ │ │ │ │ │ │ 61 │ │ │ │ +│ │ │ │ │ │ │ 59 │ │ │ │ +│ │ │ │ │ │ │ 56 │ │ │ │ +│ │ │ │ │ │ │ 78 │ │ │ │ +│ │ │ │ │ │ │ 85 │ │ │ │ +│ │ │ │ │ │ │ 122 │ │ │ │ +│ │ │ │ │ │ │ 73 │ │ │ │ +│ │ │ │ │ │ │ 81 │ │ │ │ +│ │ │ │ │ │ │ 124 │ │ │ │ +│ │ │ │ │ │ │ 79 │ │ │ │ +│ │ │ │ │ │ │ 71 │ │ │ │ +│ │ │ │ │ │ │ 63 │ │ │ │ +│ │ │ │ │ │ │ 110 │ │ │ │ +│ │ │ │ │ │ │ 85 │ │ │ │ +│ │ │ │ │ │ │ 106 │ │ │ │ +│ │ │ │ │ │ │ 48 │ │ │ │ +│ │ │ │ │ │ ╰───────╯ │ │ │ +│ │ │ │ │ ture_num │ 17 │ │ │ +│ │ │ │ ╰──────────┴───────────────────────────────────────────────────────────────────────────────╯ │ │ +│ │ ╰───────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────╯ │ +╰───────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +(base) harperdelaviga@HarperMBP14 ~ % sui client call --package 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd --module check_in --function get_flag --args 'x;=;8NUzIQ|OG?nUj0' 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 0x8 +Transaction Digest: vNACMAgumoqKT6sx1ZFY5AoS3qKaCPQGyJXjQLKbgNw +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x006d980cadd43c778e628201b45cfd3ba6e1047c65f67648a88f635108ffd6eb │ +│ Gas Owner: 0x006d980cadd43c778e628201b45cfd3ba6e1047c65f67648a88f635108ffd6eb │ +│ Gas Budget: 3018552 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0xb398e34ad570a6db45a5544de80bf9e84a460752683562be043b16749b3a8801 │ +│ │ Version: 48024466 │ +│ │ Digest: DGg2zGczcmdCRahvukmJ8W1pzAfUStbCDXta1bhhCNMz │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: "x;=;8NUzIQ|OG?nUj0" │ │ +│ │ 1 Shared Object ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ │ +│ │ 2 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: get_flag │ │ +│ │ │ Module: check_in │ │ +│ │ │ Package: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ ULiD5Hw+0cGhi7AeM+KZ/hptbbKtRoCM8v6cCq45g8ZrDd+V0zVejMI6rbb2r8CR6JkxOT5CSSoszO7qFaoWAg== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: vNACMAgumoqKT6sx1ZFY5AoS3qKaCPQGyJXjQLKbgNw │ +│ Status: Success │ +│ Executed Epoch: 395 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Owner: Shared │ +│ │ Version: 48024467 │ +│ │ Digest: 55aWvkkeKujeHawixi6kx4re2VDNBwQj6x9aVcJBCLjK │ +│ └── │ +│ ┌── │ +│ │ ID: 0xb398e34ad570a6db45a5544de80bf9e84a460752683562be043b16749b3a8801 │ +│ │ Owner: Account Address ( 0x006d980cadd43c778e628201b45cfd3ba6e1047c65f67648a88f635108ffd6eb ) │ +│ │ Version: 48024467 │ +│ │ Digest: ErEJ39jRRXbUP6ChcpeTCykVjvotCz57QGo8D9Y1w7wE │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Version: 48024466 │ +│ │ Digest: G7LgogwM4V97XZ2SGEYUBVYGdjT6A5tAQQbSzojeUJWs │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ +│ │ Version: 45397457 │ +│ │ Digest: 2Eu9Q2PeoQKSAvgRXXYyEKNyYewpEFzHopKQpqdXF4QY │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0xb398e34ad570a6db45a5544de80bf9e84a460752683562be043b16749b3a8801 │ +│ │ Owner: Account Address ( 0x006d980cadd43c778e628201b45cfd3ba6e1047c65f67648a88f635108ffd6eb ) │ +│ │ Version: 48024467 │ +│ │ Digest: ErEJ39jRRXbUP6ChcpeTCykVjvotCz57QGo8D9Y1w7wE │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2530800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2497968 MIST │ +│ Non-refundable Storage Fee: 25232 MIST │ +│ │ +│ Transaction Dependencies: │ +│ A2nfTVSF6WPibJXMCR2HWNKDSaGs3nsmpkiW6rG56Ut │ +│ 4nptf2AX1nqHcyM51WB1wm3DqMQA6EC52A2vtdAvH9Pq │ +│ GvtDcAEMFwzCSEPUqkaPGxD4CpKyD7DDfhLrnU8KuMBR │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: vNACMAgumoqKT6sx1ZFY5AoS3qKaCPQGyJXjQLKbgNw:0 │ +│ │ PackageID: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd │ +│ │ Transaction Module: check_in │ +│ │ Sender: 0x006d980cadd43c778e628201b45cfd3ba6e1047c65f67648a88f635108ffd6eb │ +│ │ EventType: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd::check_in::Flag │ +│ │ ParsedJSON: │ +│ │ ┌────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ flag │ true │ │ +│ │ ├────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ sender │ 0x006d980cadd43c778e628201b45cfd3ba6e1047c65f67648a88f635108ffd6eb │ │ +│ │ └────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Sender: 0x006d980cadd43c778e628201b45cfd3ba6e1047c65f67648a88f635108ffd6eb │ +│ │ Owner: Shared │ +│ │ ObjectType: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd::check_in::FlagString │ +│ │ Version: 48024467 │ +│ │ Digest: 55aWvkkeKujeHawixi6kx4re2VDNBwQj6x9aVcJBCLjK │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xb398e34ad570a6db45a5544de80bf9e84a460752683562be043b16749b3a8801 │ +│ │ Sender: 0x006d980cadd43c778e628201b45cfd3ba6e1047c65f67648a88f635108ffd6eb │ +│ │ Owner: Account Address ( 0x006d980cadd43c778e628201b45cfd3ba6e1047c65f67648a88f635108ffd6eb ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 48024467 │ +│ │ Digest: ErEJ39jRRXbUP6ChcpeTCykVjvotCz57QGo8D9Y1w7wE │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x006d980cadd43c778e628201b45cfd3ba6e1047c65f67648a88f635108ffd6eb ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1032832 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` \ No newline at end of file diff --git a/mover/do0x0ob/notes/task2_faucetcoin_devnet.md b/mover/do0x0ob/notes/task2_faucetcoin_devnet.md index 00e647d34..fe95fa1fb 100644 --- a/mover/do0x0ob/notes/task2_faucetcoin_devnet.md +++ b/mover/do0x0ob/notes/task2_faucetcoin_devnet.md @@ -163,7 +163,7 @@ Transaction Digest: CXWrAm26yXoLP72wc4nf7roaMM5QniywbgFdNuc5UJFD **Mint CLI Command:** ``` -sui client call --package 0x895dfd2381de5b95f108818d449c2ce70e4bb07ad5a63b56bd3ac043f0673de5 --module faucet_coin --function mint --args 0x2c042b4576f77ba7b77698158f202b44a1407023a339cd26c3c762a4819e52ec 110000000000 0x006d980cadd43c778e628201b45cfd3ba6e1047c65f67648a88f635108ffd6eb --gas-budget 1000000000 +sui client call --package 0x895dfd2381de5b95f108818d449c2ce70e4bb07ad5a63b56bd3ac043f0673de5 --module faucet_coin --function mint --args 0x2c042b4576f77ba7b77698158f202b44a1407023a339cd26c3c762a4819e52ec 110000000000 0x006d980cadd43c778e628201b45cfd3ba6e1047c65f67648a88f635108ffd6eb 0 ``` ``` diff --git a/mover/do0x0ob/notes/task2_mycoin_devnet.md b/mover/do0x0ob/notes/task2_mycoin_devnet.md index 042a8de28..3d6afd141 100644 --- a/mover/do0x0ob/notes/task2_mycoin_devnet.md +++ b/mover/do0x0ob/notes/task2_mycoin_devnet.md @@ -161,7 +161,7 @@ Transaction Digest: DvqFBvFkzsmYN3TNUNaFx6B4eLpLETHAXsEw6ctV6Xdh - **DevNet MINT Info** -**Mint CLI Command:** `sui client call --package 0x9490436002c5855f48f752a4197024282c54f9ebf9f7cbbb8fd1b9e50d96da98 --module my_coin --function mint --args 0x19b70a8829d4fcd3a2463657d6adec41e9f765d252e7d6732189bb9756b59eda 100000000000 0x006d980cadd43c778e628201b45cfd3ba6e1047c65f67648a88f635108ffd6eb --gas-budget 10000000000` +**Mint CLI Command:** `sui client call --package 0x9490436002c5855f48f752a4197024282c54f9ebf9f7cbbb8fd1b9e50d96da98 --module my_coin --function mint --args 0x19b70a8829d4fcd3a2463657d6adec41e9f765d252e7d6732189bb9756b59eda 100000000000 0x006d980cadd43c778e628201b45cfd3ba6e1047c65f67648a88f635108ffd6eb 00` ``` Transaction Digest: FFs81fJopxji1poSDrqdtqwKV6wcXSezL52CLB3aqhSY diff --git a/mover/do0x0ob/notes/task_7.png b/mover/do0x0ob/notes/task_7.png new file mode 100644 index 000000000..fb747829a Binary files /dev/null and b/mover/do0x0ob/notes/task_7.png differ diff --git a/mover/do0x0ob/readme.md b/mover/do0x0ob/readme.md index 02ed9b5c1..35cf5ccec 100644 --- a/mover/do0x0ob/readme.md +++ b/mover/do0x0ob/readme.md @@ -35,3 +35,8 @@ ## 06 SDK PTB - [] save hash : + +## 07 Move CTF Check in +- [X] Transaction Digest: `vNACMAgumoqKT6sx1ZFY5AoS3qKaCPQGyJXjQLKbgNw` +- [X] EventID: `vNACMAgumoqKT6sx1ZFY5AoS3qKaCPQGyJXjQLKbgNw:0` +- [X] Sui CLI call screenshot: ![SUI CLI screenshot](/mover/do0x0ob/notes/task_7.png) diff --git a/mover/dongbiying/notes/task1.md b/mover/dongbiying/notes/task1.md index 99bfba4b6..c327c1ef3 100644 --- a/mover/dongbiying/notes/task1.md +++ b/mover/dongbiying/notes/task1.md @@ -1,5 +1,5 @@ ```bash -sui client publish --gas-budget 100000000 +sui client publish ``` ``` diff --git a/mover/dongfang223/code/task1/hello_dongfang223/sources/hello_move.move b/mover/dongfang223/code/task1/hello_dongfang223/sources/hello_move.move new file mode 100644 index 000000000..981271687 --- /dev/null +++ b/mover/dongfang223/code/task1/hello_dongfang223/sources/hello_move.move @@ -0,0 +1,25 @@ +/* +/// Module: hello_move +module hello_move::hello_move { + +} +*/ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"move"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/dongfang223/code/task1/hello_dongfang223/tests/hello_move_tests.move b/mover/dongfang223/code/task1/hello_dongfang223/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/dongfang223/code/task1/hello_dongfang223/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/dongfang223/code/task1/readme.md b/mover/dongfang223/code/task1/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/dongfang223/images/1.png b/mover/dongfang223/images/1.png new file mode 100644 index 000000000..38cadbfd9 Binary files /dev/null and b/mover/dongfang223/images/1.png differ diff --git a/mover/dongfang223/images/2.png b/mover/dongfang223/images/2.png new file mode 100644 index 000000000..f7b48df80 Binary files /dev/null and b/mover/dongfang223/images/2.png differ diff --git a/mover/dongfang223/notes/readme.md b/mover/dongfang223/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/dongfang223/readme.md b/mover/dongfang223/readme.md new file mode 100644 index 000000000..fd9323d52 --- /dev/null +++ b/mover/dongfang223/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xd28096207c68280dbfac23f534f6ea5e34dbec93995da3f803316444e1680b59` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `dongfang223` + +## 个人简介 +- 工作经验: 5年 +- 技术栈: `Rust` `C++` `C#` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `[xxx](https://t.me/dongfang223)` + +## 任务 + +## 01 hello move +- [] Sui cli version: 1.29.2-09db80adf1af +- [] Sui钱包截图: ![Sui钱包截图](./images/1.png) +- [] package id: 0x18070381a954ad29e199b8a9293cbad22767111cf9f9cb10893f1c159734f562 +- [] package id 在 scan上的查看截图:![Scan截图](./images/2.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/double-zhou/code/readme.md b/mover/double-zhou/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/double-zhou/images/img.png b/mover/double-zhou/images/img.png new file mode 100644 index 000000000..15b00d157 Binary files /dev/null and b/mover/double-zhou/images/img.png differ diff --git a/mover/double-zhou/images/img_1.png b/mover/double-zhou/images/img_1.png new file mode 100644 index 000000000..3e6c500c9 Binary files /dev/null and b/mover/double-zhou/images/img_1.png differ diff --git a/mover/double-zhou/notes/readme.md b/mover/double-zhou/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/double-zhou/readme.md b/mover/double-zhou/readme.md new file mode 100644 index 000000000..fd5b3e924 --- /dev/null +++ b/mover/double-zhou/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x071bc8a5cdab2f25b5e26b35e9553205d966a5ee940118452c68f5d218f673b9` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `double-zhou` + +## 个人简介 +- 工作经验: 2年 +- 技术栈: `Rust` `C++` `python` `java` `go` `move` +> 重要提示 请认真写自己的简介 +- TYUT大二区块链工程专业学生、努力学习move相关知识ing +- 联系方式: qq: `2784772863` + +## 任务 + +## 01 hello move +- [x] Sui cli version:sui-client 1.27.0-e5f080922d56-dirty +- [x] Sui钱包截图: ![Sui钱包截图](./images/img.png) +- [x] package id: 0x3d0d354727a61431380460e13aa783b15ca47307999ddf18df63fa28304f6f0c +- [x] package id 在 scan上的查看截图:![Scan截图](./images/img_1.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/euraxluo/code/task2/readme.md b/mover/euraxluo/code/task2/readme.md index 003ec0899..dc8739c8a 100644 --- a/mover/euraxluo/code/task2/readme.md +++ b/mover/euraxluo/code/task2/readme.md @@ -208,7 +208,7 @@ PackageID: mint: ``` -@Euraxluo ➜ .../mover/euraxluo/code/task2 (main) $ ./test.sh --package 0xaab57e7f5fb04dd00978f6ed59c6977f46293f470ebdf43dc054a0f465ca8d7b --module mycoin --function mint --gas-budget 100000000 --args 0x58af22ef3758b90adf30f8775a2499be424880b27ba96a2c389e1bd5d5197847 100000000000 0xe5a5e2cf8b4971224a07068cc9ffe410d4a0ab7382fec79fb035e929951a39f3 +@Euraxluo ➜ .../mover/euraxluo/code/task2 (main) $ ./test.sh --package 0xaab57e7f5fb04dd00978f6ed59c6977f46293f470ebdf43dc054a0f465ca8d7b --module mycoin --function mint --args 0x58af22ef3758b90adf30f8775a2499be424880b27ba96a2c389e1bd5d5197847 100000000000 0xe5a5e2cf8b4971224a07068cc9ffe410d4a0ab7382fec79fb035e929951a39f3 [warn] Client/Server api version mismatch, client api version : 1.23.0, server api version : 1.23.1 Transaction Digest: DthTFgWUmmX2SBTRmicNPqe8ARgYhPpiGEo8GGw9wBva ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ diff --git a/mover/everettfu/code/readme.md b/mover/everettfu/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/everettfu/code/task1/hello_move/Move.lock b/mover/everettfu/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..b2c29c8ee --- /dev/null +++ b/mover/everettfu/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x4c60c51ee1b843867545f1ed157d48988ab0949f5b652b7c118dfebbc925f860" +latest-published-id = "0x4c60c51ee1b843867545f1ed157d48988ab0949f5b652b7c118dfebbc925f860" +published-version = "1" diff --git a/mover/everettfu/code/task1/hello_move/Move.toml b/mover/everettfu/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/everettfu/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/everettfu/code/task1/hello_move/sources/hello_move.move b/mover/everettfu/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..c7a79fff6 --- /dev/null +++ b/mover/everettfu/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"move"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/everettfu/code/task1/hello_move/tests/hello_move_tests.move b/mover/everettfu/code/task1/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/everettfu/code/task1/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/everettfu/code/task2/mycoin/Move.lock b/mover/everettfu/code/task2/mycoin/Move.lock new file mode 100644 index 000000000..0176e1b1e --- /dev/null +++ b/mover/everettfu/code/task2/mycoin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "1393B3A86BC22B7FE61E23DBB2EF7BE1A330BF07AB402600F7E7CFF6E9DC82F9" +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.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xdb72c319d00dbffb1df12aef51e7ffca3a3254d986fc53e4ef410f0f452bb48f" +latest-published-id = "0xdb72c319d00dbffb1df12aef51e7ffca3a3254d986fc53e4ef410f0f452bb48f" +published-version = "1" diff --git a/mover/everettfu/code/task2/mycoin/Move.toml b/mover/everettfu/code/task2/mycoin/Move.toml new file mode 100644 index 000000000..e77f86f6a --- /dev/null +++ b/mover/everettfu/code/task2/mycoin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "mycoin" +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] +mycoin = "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/everettfu/code/task2/mycoin/sources/everettfu_coin.move b/mover/everettfu/code/task2/mycoin/sources/everettfu_coin.move new file mode 100644 index 000000000..0956a0182 --- /dev/null +++ b/mover/everettfu/code/task2/mycoin/sources/everettfu_coin.move @@ -0,0 +1,24 @@ +/// Module: mycoin +module mycoin::everettfu_coin { + use sui::coin::create_currency; + use sui::tx_context::{TxContext, sender}; + use std::option; + use sui::transfer; + + public struct EVERETTFU_COIN has drop {} + + fun init(witness: EVERETTFU_COIN, ctx: &mut TxContext) { + let (treasury_cap, coin_metadata) = + create_currency( + witness, + 8, + b"everettfu coin", + b"everettfu coin", + b"everettfu coin", + option::none(), + ctx); + + transfer::public_freeze_object(coin_metadata); + transfer::public_transfer(treasury_cap, sender(ctx)); + } +} diff --git a/mover/everettfu/code/task2/mycoin/sources/everettfu_facuet_coin.move b/mover/everettfu/code/task2/mycoin/sources/everettfu_facuet_coin.move new file mode 100644 index 000000000..06186c1b7 --- /dev/null +++ b/mover/everettfu/code/task2/mycoin/sources/everettfu_facuet_coin.move @@ -0,0 +1,24 @@ +/// Module: mycoin +module mycoin::everettfu_facuet_coin { + use sui::coin::create_currency; + use sui::tx_context::{TxContext, sender}; + use std::option; + use sui::transfer; + + public struct EVERETTFU_FACUET_COIN has drop {} + + fun init(witness: EVERETTFU_FACUET_COIN, ctx: &mut TxContext) { + let (treasury_cap, coin_metadata) = + create_currency( + witness, + 8, + b"everettfu facuet coin", + b"everettfu facuet coin", + b"everettfu facuet coin", + option::none(), + ctx); + + transfer::public_freeze_object(coin_metadata); + transfer::public_share_object(treasury_cap); + } +} diff --git a/mover/everettfu/code/task2/mycoin/sources/log.txt b/mover/everettfu/code/task2/mycoin/sources/log.txt new file mode 100644 index 000000000..5f1e872ba --- /dev/null +++ b/mover/everettfu/code/task2/mycoin/sources/log.txt @@ -0,0 +1,185 @@ +Transaction Digest: E91gqcCsHgtAJkAzcrpPADZH1852aGsLGzzmhcWDXthp +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ Gas Owner: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x1d6912d60b4eb64c44d9939ccab657f989f8a78e935adba2e1550845575b8497 │ +│ │ Version: 211023821 │ +│ │ Digest: 7Eu8S9Z1PeYUzrfrCkJuv3FnsaEXfBXPacm1SFfzM8a9 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ v4yAAdfvGkEwKDkbA7x4CJAAESzsuFI6ZHZsnT3vM7KoOM5xrKtCNzoeYbBZQeINey4kHlojYxhNBn8ayl/MAw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: E91gqcCsHgtAJkAzcrpPADZH1852aGsLGzzmhcWDXthp │ +│ Status: Success │ +│ Executed Epoch: 415 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x263003dfcf8e2362931f6aa12e314d69d035e264c53b5ea0e586a21a13a9d716 │ +│ │ Owner: Shared( 211023822 ) │ +│ │ Version: 211023822 │ +│ │ Digest: DM9UjHx51TwkJ9CSsDxUgD9ZujjgeNnSvpCbqL9CZnsD │ +│ └── │ +│ ┌── │ +│ │ ID: 0x65c90d11b4ad9e4ae2197d0c534f7c4ebab05ed2719de6012450edcc0a85d437 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ Version: 211023822 │ +│ │ Digest: 7B1F7gntsHkirWvLpSu8Tr1TWura5LsMsKo24YMSFRR2 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x733894debe2f9e20565716b2c19f5aeecc49a390df703e3ec13c162678ef9b68 │ +│ │ Owner: Immutable │ +│ │ Version: 211023822 │ +│ │ Digest: 84YoA1v3GZRfS5RtNRvCko1zWz49EbDZLKjyFHJi8Y3a │ +│ └── │ +│ ┌── │ +│ │ ID: 0x74b03c2fe20d01fa39ea6007c5edd991db966dcd29d9eb9c24352f09ea912f65 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ Version: 211023822 │ +│ │ Digest: 93b945QezSo6vSLnV17zEto6vttYybeuRVtxm4NdDt4Z │ +│ └── │ +│ ┌── │ +│ │ ID: 0x9c7eac8f425a6f297971187c100688f5f5a28d26681ca49079c58ff6c2368899 │ +│ │ Owner: Immutable │ +│ │ Version: 211023822 │ +│ │ Digest: HoQxbniY4nqz8Sac8trnRm8sjBZoYxdWrdMAURNzLt8W │ +│ └── │ +│ ┌── │ +│ │ ID: 0xdb72c319d00dbffb1df12aef51e7ffca3a3254d986fc53e4ef410f0f452bb48f │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 2SZK9eoCk8rZzK655gfDx1mQQeDQePF9txndNkimWQCv │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x1d6912d60b4eb64c44d9939ccab657f989f8a78e935adba2e1550845575b8497 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ Version: 211023822 │ +│ │ Digest: F79uwuFUuMbC9Nki2Fy5fCng4ULaBZsGGAZUobD63Lex │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x1d6912d60b4eb64c44d9939ccab657f989f8a78e935adba2e1550845575b8497 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ Version: 211023822 │ +│ │ Digest: F79uwuFUuMbC9Nki2Fy5fCng4ULaBZsGGAZUobD63Lex │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 22670800 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ BZFJPFGYtGpLgaBoKDSJYdTe3z3hXEaYeYFP6dk6ojiT │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x263003dfcf8e2362931f6aa12e314d69d035e264c53b5ea0e586a21a13a9d716 │ +│ │ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ │ Owner: Shared( 211023822 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xdb72c319d00dbffb1df12aef51e7ffca3a3254d986fc53e4ef410f0f452bb48f::everettfu_facuet_coin::EVERETTFU_FACUET_COIN> │ +│ │ Version: 211023822 │ +│ │ Digest: DM9UjHx51TwkJ9CSsDxUgD9ZujjgeNnSvpCbqL9CZnsD │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x65c90d11b4ad9e4ae2197d0c534f7c4ebab05ed2719de6012450edcc0a85d437 │ +│ │ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 211023822 │ +│ │ Digest: 7B1F7gntsHkirWvLpSu8Tr1TWura5LsMsKo24YMSFRR2 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x733894debe2f9e20565716b2c19f5aeecc49a390df703e3ec13c162678ef9b68 │ +│ │ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xdb72c319d00dbffb1df12aef51e7ffca3a3254d986fc53e4ef410f0f452bb48f::everettfu_facuet_coin::EVERETTFU_FACUET_COIN> │ +│ │ Version: 211023822 │ +│ │ Digest: 84YoA1v3GZRfS5RtNRvCko1zWz49EbDZLKjyFHJi8Y3a │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x74b03c2fe20d01fa39ea6007c5edd991db966dcd29d9eb9c24352f09ea912f65 │ +│ │ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xdb72c319d00dbffb1df12aef51e7ffca3a3254d986fc53e4ef410f0f452bb48f::everettfu_coin::EVERETTFU_COIN> │ +│ │ Version: 211023822 │ +│ │ Digest: 93b945QezSo6vSLnV17zEto6vttYybeuRVtxm4NdDt4Z │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x9c7eac8f425a6f297971187c100688f5f5a28d26681ca49079c58ff6c2368899 │ +│ │ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xdb72c319d00dbffb1df12aef51e7ffca3a3254d986fc53e4ef410f0f452bb48f::everettfu_coin::EVERETTFU_COIN> │ +│ │ Version: 211023822 │ +│ │ Digest: HoQxbniY4nqz8Sac8trnRm8sjBZoYxdWrdMAURNzLt8W │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x1d6912d60b4eb64c44d9939ccab657f989f8a78e935adba2e1550845575b8497 │ +│ │ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 211023822 │ +│ │ Digest: F79uwuFUuMbC9Nki2Fy5fCng4ULaBZsGGAZUobD63Lex │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xdb72c319d00dbffb1df12aef51e7ffca3a3254d986fc53e4ef410f0f452bb48f │ +│ │ Version: 1 │ +│ │ Digest: 2SZK9eoCk8rZzK655gfDx1mQQeDQePF9txndNkimWQCv │ +│ │ Modules: everettfu_coin, everettfu_facuet_coin │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -22442680 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ \ No newline at end of file diff --git a/mover/everettfu/code/task2/mycoin/sources/steps.md b/mover/everettfu/code/task2/mycoin/sources/steps.md new file mode 100644 index 000000000..b1a516fb3 --- /dev/null +++ b/mover/everettfu/code/task2/mycoin/sources/steps.md @@ -0,0 +1,59 @@ +# build +sui move build + +# +sui client switch --env mainnet + +address: +0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 + +# push +sui client publish + +package id: +0xdb72c319d00dbffb1df12aef51e7ffca3a3254d986fc53e4ef410f0f452bb48f + +EVERETTFU_COIN object id: +0x74b03c2fe20d01fa39ea6007c5edd991db966dcd29d9eb9c24352f09ea912f65 + +EVERETTFU_FACUET_COIN object id: +0x263003dfcf8e2362931f6aa12e314d69d035e264c53b5ea0e586a21a13a9d716 + +EVERETTFU_COIN address: +0x7bc5bad56412efc6a88dfd16067f7a26cd6ac66f136e8c892ecc75c1f21686ea + +EVERETTFU_FACUET_COIN address: +0x78823689ce59d6d01ae2f8f210e96efe14c10cee8324f7dda25b9237849c97e6 + +# mint everettfu_coin + +sui client call \ +--package 0x2 \ +--module coin \ +--function mint_and_transfer \ +--type-args '0xdb72c319d00dbffb1df12aef51e7ffca3a3254d986fc53e4ef410f0f452bb48f::everettfu_coin::EVERETTFU_COIN' \ +--args 0x74b03c2fe20d01fa39ea6007c5edd991db966dcd29d9eb9c24352f09ea912f65 100000000000 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 + + +# mint everettfu_facuet_coin + +# a mint +sui client call \ +--package 0x2 \ +--module coin \ +--function mint_and_transfer \ +--type-args '0xdb72c319d00dbffb1df12aef51e7ffca3a3254d986fc53e4ef410f0f452bb48f::everettfu_facuet_coin::EVERETTFU_FACUET_COIN' \ +--args 0x263003dfcf8e2362931f6aa12e314d69d035e264c53b5ea0e586a21a13a9d716 100000000000 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 + +# b mint +sui client call \ +--package 0x2 \ +--module coin \ +--function mint_and_transfer \ +--type-args '0xdb72c319d00dbffb1df12aef51e7ffca3a3254d986fc53e4ef410f0f452bb48f::everettfu_facuet_coin::EVERETTFU_FACUET_COIN' \ +--args 0x263003dfcf8e2362931f6aa12e314d69d035e264c53b5ea0e586a21a13a9d716 100000000000 0x389a6c394184fc850e8db622128b05e951ffe029d0426c29c05e43e4d5198114 + +# pay +sui client pay --recipients "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" --input-coins "0x7bc5bad56412efc6a88dfd16067f7a26cd6ac66f136e8c892ecc75c1f21686ea" --amounts 6666 + +# transfer \ No newline at end of file diff --git a/mover/everettfu/code/task2/mycoin/tests/mycoin_tests.move b/mover/everettfu/code/task2/mycoin/tests/mycoin_tests.move new file mode 100644 index 000000000..e8e5f0fc4 --- /dev/null +++ b/mover/everettfu/code/task2/mycoin/tests/mycoin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module mycoin::mycoin_tests { + // uncomment this line to import the module + // use mycoin::mycoin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_mycoin() { + // pass + } + + #[test, expected_failure(abort_code = ::mycoin::mycoin_tests::ENotImplemented)] + fun test_mycoin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/everettfu/code/task3/everettfu_nft/Move.lock b/mover/everettfu/code/task3/everettfu_nft/Move.lock new file mode 100644 index 000000000..65dd09659 --- /dev/null +++ b/mover/everettfu/code/task3/everettfu_nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "F3160226C0AED94218CB203614CB2F25C351D851D41460A8D75AC121EBC04518" +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.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xe42cfc3fce991f4428174116ea1c048821492da54fd65eb8509ba64865b97e78" +latest-published-id = "0xe42cfc3fce991f4428174116ea1c048821492da54fd65eb8509ba64865b97e78" +published-version = "1" diff --git a/mover/everettfu/code/task3/everettfu_nft/Move.toml b/mover/everettfu/code/task3/everettfu_nft/Move.toml new file mode 100644 index 000000000..9b37a6078 --- /dev/null +++ b/mover/everettfu/code/task3/everettfu_nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "everettfu_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://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] +everettfu_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/everettfu/code/task3/everettfu_nft/mint.log b/mover/everettfu/code/task3/everettfu_nft/mint.log new file mode 100644 index 000000000..303b5a30a --- /dev/null +++ b/mover/everettfu/code/task3/everettfu_nft/mint.log @@ -0,0 +1,128 @@ +╭───────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├───────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ Gas Owner: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x1d6912d60b4eb64c44d9939ccab657f989f8a78e935adba2e1550845575b8497 │ +│ │ Version: 211023829 │ +│ │ Digest: 9nn2j6vmjnjwoe4NfUXLF7Ng5JAC88xxW8rP879ds1DG │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭───────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├───────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: "everettfu_nft" │ │ +│ │ 1 Pure Arg: Type: vector, Value: "first nft of everettfu" │ │ +│ │ 2 Pure Arg: Type: vector, Value: "https://avatars.githubusercontent.com/u/10185735" │ │ +│ ╰───────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint_to_sender │ │ +│ │ │ Module: everettfu_nft │ │ +│ │ │ Package: 0xe42cfc3fce991f4428174116ea1c048821492da54fd65eb8509ba64865b97e78 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ W1Fm2IarnCMWPgbjDs2EGdq6hd3KWm0NdPkQtXKqzDuZc5RmLJS0T2BeuDEi7WD9SWZOaOZPMwLjrN8KXv3JDw== │ +│ │ +╰───────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: DiYFRB6RaH6uRuGcjqdnwftd5p1b5x8qZr4QPLXdHLn │ +│ Status: Success │ +│ Executed Epoch: 416 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xc77381db52de0016a8039fbb944eba4d3d071675d21b5f19c8d2107cc472742f │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ Version: 211023830 │ +│ │ Digest: ABksucToq7kmULVWfQYJZC1qjpp4VrXTxH1NCebTLSap │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x1d6912d60b4eb64c44d9939ccab657f989f8a78e935adba2e1550845575b8497 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ Version: 211023830 │ +│ │ Digest: KKdjM1MdmcVt3XcHwrz1XSa8j98ZaLRWNV8Vb3itamP │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x1d6912d60b4eb64c44d9939ccab657f989f8a78e935adba2e1550845575b8497 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ Version: 211023830 │ +│ │ Digest: KKdjM1MdmcVt3XcHwrz1XSa8j98ZaLRWNV8Vb3itamP │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3024800 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ CEQ1oagRs1E9W1pzGT2ckfdxpYnTrBacVV6hCwYvALmw │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: DiYFRB6RaH6uRuGcjqdnwftd5p1b5x8qZr4QPLXdHLn:0 │ +│ │ PackageID: 0xe42cfc3fce991f4428174116ea1c048821492da54fd65eb8509ba64865b97e78 │ +│ │ Transaction Module: everettfu_nft │ +│ │ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ │ EventType: 0xe42cfc3fce991f4428174116ea1c048821492da54fd65eb8509ba64865b97e78::everettfu_nft::NFTMinted │ +│ │ ParsedJSON: │ +│ │ ┌───────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ creator │ 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ name │ everettfu_nft │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ object_id │ 0xc77381db52de0016a8039fbb944eba4d3d071675d21b5f19c8d2107cc472742f │ │ +│ │ └───────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xc77381db52de0016a8039fbb944eba4d3d071675d21b5f19c8d2107cc472742f │ +│ │ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ ObjectType: 0xe42cfc3fce991f4428174116ea1c048821492da54fd65eb8509ba64865b97e78::everettfu_nft::EverettfuNFT │ +│ │ Version: 211023830 │ +│ │ Digest: ABksucToq7kmULVWfQYJZC1qjpp4VrXTxH1NCebTLSap │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x1d6912d60b4eb64c44d9939ccab657f989f8a78e935adba2e1550845575b8497 │ +│ │ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 211023830 │ +│ │ Digest: KKdjM1MdmcVt3XcHwrz1XSa8j98ZaLRWNV8Vb3itamP │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2796680 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ \ No newline at end of file diff --git a/mover/everettfu/code/task3/everettfu_nft/pubilsh.log b/mover/everettfu/code/task3/everettfu_nft/pubilsh.log new file mode 100644 index 000000000..0b08863e4 --- /dev/null +++ b/mover/everettfu/code/task3/everettfu_nft/pubilsh.log @@ -0,0 +1,129 @@ +Transaction Digest: CEQ1oagRs1E9W1pzGT2ckfdxpYnTrBacVV6hCwYvALmw +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ Gas Owner: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x1d6912d60b4eb64c44d9939ccab657f989f8a78e935adba2e1550845575b8497 │ +│ │ Version: 211023828 │ +│ │ Digest: FLBAvhfvcNVoMJG778g4PMEHyoZ4SAtSt4rZLPmcDGA │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ tlX25NzBz87Jssz2qtwdf+OgXrtP4vgKQs0m1e+jOATxgXjFzn8Xw4op8inkvI4N8pnQSiRd4Bi8jnywjGi9Aw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: CEQ1oagRs1E9W1pzGT2ckfdxpYnTrBacVV6hCwYvALmw │ +│ Status: Success │ +│ Executed Epoch: 416 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xb34b99bb8262b3e6ae109f079909ec137f8ccb241b34e26c953735b00ef7de0d │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ Version: 211023829 │ +│ │ Digest: 2eUhqUNiaFUZPupCCmBeHb7B3JSe5xmGqbz5eyXFPZdi │ +│ └── │ +│ ┌── │ +│ │ ID: 0xe42cfc3fce991f4428174116ea1c048821492da54fd65eb8509ba64865b97e78 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 98bNqDCb4kBHnHnBYYwo9d8fzt461e3FqzpupYV33j8N │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x1d6912d60b4eb64c44d9939ccab657f989f8a78e935adba2e1550845575b8497 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ Version: 211023829 │ +│ │ Digest: 9nn2j6vmjnjwoe4NfUXLF7Ng5JAC88xxW8rP879ds1DG │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x1d6912d60b4eb64c44d9939ccab657f989f8a78e935adba2e1550845575b8497 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ Version: 211023829 │ +│ │ Digest: 9nn2j6vmjnjwoe4NfUXLF7Ng5JAC88xxW8rP879ds1DG │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 11232800 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3c9mqG8PV87TL3rha3bTKFUhi9XRwJXt5gf9wqUjp95t │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xb34b99bb8262b3e6ae109f079909ec137f8ccb241b34e26c953735b00ef7de0d │ +│ │ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 211023829 │ +│ │ Digest: 2eUhqUNiaFUZPupCCmBeHb7B3JSe5xmGqbz5eyXFPZdi │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x1d6912d60b4eb64c44d9939ccab657f989f8a78e935adba2e1550845575b8497 │ +│ │ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 211023829 │ +│ │ Digest: 9nn2j6vmjnjwoe4NfUXLF7Ng5JAC88xxW8rP879ds1DG │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xe42cfc3fce991f4428174116ea1c048821492da54fd65eb8509ba64865b97e78 │ +│ │ Version: 1 │ +│ │ Digest: 98bNqDCb4kBHnHnBYYwo9d8fzt461e3FqzpupYV33j8N │ +│ │ Modules: everettfu_nft │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -11004680 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ \ No newline at end of file diff --git a/mover/everettfu/code/task3/everettfu_nft/sources/everettfu_nft.move b/mover/everettfu/code/task3/everettfu_nft/sources/everettfu_nft.move new file mode 100644 index 000000000..6de995382 --- /dev/null +++ b/mover/everettfu/code/task3/everettfu_nft/sources/everettfu_nft.move @@ -0,0 +1,90 @@ +/// Module: everettfu_nft +module everettfu_nft::everettfu_nft { + use sui::url::{Self, Url}; + use std::string; + use sui::object::{Self, ID, UID}; + use sui::event; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct EverettfuNFT has key, store { + id: UID, + name: string::String, + description: string::String, + url: Url, + } + + // ===== Events ===== 事件 + + public struct NFTMinted has copy, drop { + object_id: ID, + creator: address, + name: string::String, + } + + // ===== Public view functions ===== 公共视图函数 + + /// 获取NFT的名称 + public fun name(nft: &EverettfuNFT): &string::String { + &nft.name + } + + /// 获取NFT的介绍 + public fun description(nft: &EverettfuNFT): &string::String { + &nft.description + } + + /// 获取NFT的链接 + public fun url(nft: &EverettfuNFT): &Url { + &nft.url + } + + // ===== Entrypoints ===== 入口函数 + + /// 创建新的NFT + public entry fun mint_to_sender( + name: vector, + description: vector, + url: vector, + ctx: &mut TxContext + ) { + let sender = tx_context::sender(ctx); + let nft = EverettfuNFT { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + url: url::new_unsafe_from_bytes(url) + }; + + event::emit(NFTMinted { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + /// 转移NFT给新的所有者 + public entry fun transfer( + nft: EverettfuNFT, recipient: address, _: &mut TxContext + ) { + transfer::public_transfer(nft, recipient) + } + + /// 更新NFT的介绍 + public entry fun update_description( + nft: &mut EverettfuNFT, + new_description: vector, + _: &mut TxContext + ) { + nft.description = string::utf8(new_description) + } + + /// 永久删除NFT + public entry fun burn(nft: EverettfuNFT, _: &mut TxContext) { + let EverettfuNFT { id, name: _, description: _, url: _ } = nft; + object::delete(id) + } +} + diff --git a/mover/everettfu/code/task3/everettfu_nft/steps.md b/mover/everettfu/code/task3/everettfu_nft/steps.md new file mode 100644 index 000000000..0e597ab4a --- /dev/null +++ b/mover/everettfu/code/task3/everettfu_nft/steps.md @@ -0,0 +1,22 @@ +# build +sui move build + +# push +sui client publish + +package id: +0xe42cfc3fce991f4428174116ea1c048821492da54fd65eb8509ba64865b97e78 + +# mint nft +sui client call \ +--package 0xe42cfc3fce991f4428174116ea1c048821492da54fd65eb8509ba64865b97e78 \ +--module everettfu_nft \ +--function mint_to_sender \ +--args 'everettfu_nft' 'first nft of everettfu' 'https://avatars.githubusercontent.com/u/10185735' + +# transfer nft +sui client call \ +--package 0xe42cfc3fce991f4428174116ea1c048821492da54fd65eb8509ba64865b97e78 \ +--module everettfu_nft \ +--function transfer \ +--args 0xc77381db52de0016a8039fbb944eba4d3d071675d21b5f19c8d2107cc472742f 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 \ No newline at end of file diff --git a/mover/everettfu/code/task3/everettfu_nft/tests/everettfu_nft_tests.move b/mover/everettfu/code/task3/everettfu_nft/tests/everettfu_nft_tests.move new file mode 100644 index 000000000..03cceafb7 --- /dev/null +++ b/mover/everettfu/code/task3/everettfu_nft/tests/everettfu_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module everettfu_nft::everettfu_nft_tests { + // uncomment this line to import the module + // use everettfu_nft::everettfu_nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_everettfu_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::everettfu_nft::everettfu_nft_tests::ENotImplemented)] + fun test_everettfu_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/everettfu/code/task3/everettfu_nft/transfer.log b/mover/everettfu/code/task3/everettfu_nft/transfer.log new file mode 100644 index 000000000..93fca6cf0 --- /dev/null +++ b/mover/everettfu/code/task3/everettfu_nft/transfer.log @@ -0,0 +1,110 @@ +Transaction Digest: DeeqtNcjVazCrjSoTKnr4LgzZHqXRGbKTF3MWVKVvVKD +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ Gas Owner: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x1d6912d60b4eb64c44d9939ccab657f989f8a78e935adba2e1550845575b8497 │ +│ │ Version: 211023830 │ +│ │ Digest: KKdjM1MdmcVt3XcHwrz1XSa8j98ZaLRWNV8Vb3itamP │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0xc77381db52de0016a8039fbb944eba4d3d071675d21b5f19c8d2107cc472742f │ │ +│ │ 1 Pure Arg: Type: address, Value: "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: transfer │ │ +│ │ │ Module: everettfu_nft │ │ +│ │ │ Package: 0xe42cfc3fce991f4428174116ea1c048821492da54fd65eb8509ba64865b97e78 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ Kuhuv6NquOanfYubZfxr0kTzTdwQ+O4CWlZk2Nm8q9urBEDGwHdG3Waa2FRn+Ndp0DQRWtch2xYVUDccedTPCQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: DeeqtNcjVazCrjSoTKnr4LgzZHqXRGbKTF3MWVKVvVKD │ +│ Status: Success │ +│ Executed Epoch: 416 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x1d6912d60b4eb64c44d9939ccab657f989f8a78e935adba2e1550845575b8497 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ Version: 211023831 │ +│ │ Digest: CJQV77F99uYYTfDbHd6tiL9SSpQbBP5ZMCLxRTG2aoJR │ +│ └── │ +│ ┌── │ +│ │ ID: 0xc77381db52de0016a8039fbb944eba4d3d071675d21b5f19c8d2107cc472742f │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ Version: 211023831 │ +│ │ Digest: Eq6zvHatmB7hL5KoqfZq3XmNXPSEgGbKvYSNPXbiAQ49 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x1d6912d60b4eb64c44d9939ccab657f989f8a78e935adba2e1550845575b8497 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ Version: 211023831 │ +│ │ Digest: CJQV77F99uYYTfDbHd6tiL9SSpQbBP5ZMCLxRTG2aoJR │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3024800 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 2994552 MIST │ +│ Non-refundable Storage Fee: 30248 MIST │ +│ │ +│ Transaction Dependencies: │ +│ DiYFRB6RaH6uRuGcjqdnwftd5p1b5x8qZr4QPLXdHLn │ +│ CEQ1oagRs1E9W1pzGT2ckfdxpYnTrBacVV6hCwYvALmw │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x1d6912d60b4eb64c44d9939ccab657f989f8a78e935adba2e1550845575b8497 │ +│ │ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 211023831 │ +│ │ Digest: CJQV77F99uYYTfDbHd6tiL9SSpQbBP5ZMCLxRTG2aoJR │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xc77381db52de0016a8039fbb944eba4d3d071675d21b5f19c8d2107cc472742f │ +│ │ Sender: 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ ObjectType: 0xe42cfc3fce991f4428174116ea1c048821492da54fd65eb8509ba64865b97e78::everettfu_nft::EverettfuNFT │ +│ │ Version: 211023831 │ +│ │ Digest: Eq6zvHatmB7hL5KoqfZq3XmNXPSEgGbKvYSNPXbiAQ49 │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x553c6fe083866c81b0499632ed4e68c0d4d4dd2df0a278a1630f480128e51609 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -780248 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ \ No newline at end of file diff --git a/mover/everettfu/images/nft.png b/mover/everettfu/images/nft.png new file mode 100644 index 000000000..ed084ded7 Binary files /dev/null and b/mover/everettfu/images/nft.png differ diff --git a/mover/everettfu/images/package.png b/mover/everettfu/images/package.png new file mode 100644 index 000000000..88b95a706 Binary files /dev/null and b/mover/everettfu/images/package.png differ diff --git a/mover/everettfu/images/wallet.png b/mover/everettfu/images/wallet.png new file mode 100644 index 000000000..a1f959875 Binary files /dev/null and b/mover/everettfu/images/wallet.png differ diff --git a/mover/everettfu/notes/readme.md b/mover/everettfu/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/everettfu/readme.md b/mover/everettfu/readme.md new file mode 100644 index 000000000..b08cfb7a4 --- /dev/null +++ b/mover/everettfu/readme.md @@ -0,0 +1,46 @@ +## 基本信息 +- Sui钱包地址: `0xd42188ca0d0541b96b590cc3628319e498c5e777e26147da8b86a18d16f60d0f` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `everettfu` + +## 个人简介 +- 工作经验: 6年 +- 技术栈: `Typescript` `React` `Rust` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `evere2t` + +## 任务 + +## 01 hello move +- [] Sui cli version: 1.26.0-homebrew +- [] Sui钱包截图: ![Sui钱包截图](./images/wallet.png) +- [] package id: 0x4c60c51ee1b843867545f1ed157d48988ab0949f5b652b7c118dfebbc925f860 +- [] package id 在 scan上的查看截图:![Scan截图](./images/package.png) + +## 02 move coin +- [] My Coin package id : 0xdb72c319d00dbffb1df12aef51e7ffca3a3254d986fc53e4ef410f0f452bb48f +- [] Faucet package id : 0xdb72c319d00dbffb1df12aef51e7ffca3a3254d986fc53e4ef410f0f452bb48f +- [] 转账 `My Coin` hash: 38AeAbWwz6APC3Gk2Cm7aHeDCdeZa4LDCpW5a4RAibAF +- [] `Faucet Coin` address1 mint hash: 0x78823689ce59d6d01ae2f8f210e96efe14c10cee8324f7dda25b9237849c97e6 +- [] `Faucet Coin` address2 mint hash: 0xf7341f9a63e4a8720ba40130c30496d5804784141073b0b49533a8145b6b35f3 + +## 03 move NFT +- [] nft package id : 0xe42cfc3fce991f4428174116ea1c048821492da54fd65eb8509ba64865b97e78 +- [] nft object id : 0xc77381db52de0016a8039fbb944eba4d3d071675d21b5f19c8d2107cc472742f +- [] 转账 nft hash: DeeqtNcjVazCrjSoTKnr4LgzZHqXRGbKTF3MWVKVvVKD +- [] scan上的NFT截图:![Scan截图](./images/nft.png) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : diff --git a/mover/fantasyni/code/task1/hello_move/sources/task1.move b/mover/fantasyni/code/task1/hello_move/sources/task1.move index 46a4e71f6..e72b6805c 100644 --- a/mover/fantasyni/code/task1/hello_move/sources/task1.move +++ b/mover/fantasyni/code/task1/hello_move/sources/task1.move @@ -19,10 +19,10 @@ module hello_move::hello { } // sui move build --skip-fetch-latest-git-deps -// sui client publish --gas-budget 100000000 --skip-fetch-latest-git-deps +// sui client publish --skip-fetch-latest-git-deps /* -PS F:\sui\letsmove\mover\fantasyni\code\task1\hello_move> sui client publish --gas-budget 100000000 --skip-fetch-latest-git-deps +PS F:\sui\letsmove\mover\fantasyni\code\task1\hello_move> sui client publish --skip-fetch-latest-git-deps INCLUDING DEPENDENCY Sui INCLUDING DEPENDENCY MoveStdlib BUILDING hello_move diff --git a/mover/fantasyni/code/task2/my_coin/sources/my_coin.move b/mover/fantasyni/code/task2/my_coin/sources/my_coin.move index f919978ae..7dbeb94a5 100644 --- a/mover/fantasyni/code/task2/my_coin/sources/my_coin.move +++ b/mover/fantasyni/code/task2/my_coin/sources/my_coin.move @@ -22,7 +22,7 @@ module my_coin::justin_coin { /* sui move build --skip-fetch-latest-git-deps -sui client publish --gas-budget 100000000 --skip-fetch-latest-git-deps +sui client publish --skip-fetch-latest-git-deps export GAS_BUDGET=100000000 export PACKAGE_ID=0x2bb921b49d4f5acffd78b3a9bcb899a2d5125ef6e1f6cd2a931a0a2d35737a7c export JUSTIN_COIN_TREASURY_CAP=0x5438efda5a5b9f909f79953ab5844475052a7668cb094b941d0ae1505366def1 diff --git a/mover/fantasyni/code/task4/fantasyni_game/Move.lock b/mover/fantasyni/code/task4/fantasyni_game/Move.lock new file mode 100644 index 000000000..ec44f1d74 --- /dev/null +++ b/mover/fantasyni/code/task4/fantasyni_game/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "4F96BD4515D0F035F0D4CCFF8F3F0AC54128A71B6D720FD0D6709087268242E2" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "oracle" }, +] + +[[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.package]] +name = "oracle" +source = { git = "https://github.com/MystenLabs/apps", rev = "db04fbd17d6ba91ade45c32f609b949fb47d209b", subdir = "weather-oracle" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.25.1" +edition = "legacy" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x5a2be34793fdb369bd35940fca6ae19db9ce59797685df30c24754d605041b42" +latest-published-id = "0x5a2be34793fdb369bd35940fca6ae19db9ce59797685df30c24754d605041b42" +published-version = "1" diff --git a/mover/fantasyni/code/task4/fantasyni_game/Move.toml b/mover/fantasyni/code/task4/fantasyni_game/Move.toml new file mode 100644 index 000000000..52f8b86a3 --- /dev/null +++ b/mover/fantasyni/code/task4/fantasyni_game/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "fantasyni_game" +edition = "legacy" # 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" } +oracle = { git = "https://github.com/MystenLabs/apps", subdir = "weather-oracle", rev = "db04fbd17d6ba91ade45c32f609b949fb47d209b" } + +# 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] +fantasyni_game = "0x0" +oracle = "0x8378b3bd39931aa74a6aa3a820304c1109d327426e4275183ed0b797eb6660a8" + +# 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/fantasyni/code/task4/fantasyni_game/scripts/insert_coin.js b/mover/fantasyni/code/task4/fantasyni_game/scripts/insert_coin.js new file mode 100644 index 000000000..af2d067cf --- /dev/null +++ b/mover/fantasyni/code/task4/fantasyni_game/scripts/insert_coin.js @@ -0,0 +1,45 @@ + +import { NAVISDKClient } from 'navi-sdk' +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import { SignAndSubmitTXB, mergeCoins } from 'navi-sdk/dist/libs/PTB/index.js' +import { SUI_CLOCK_OBJECT_ID } from "@mysten/sui.js/utils"; +const mnemonic = ""; //Replace with your mnemonic +const client = new NAVISDKClient({mnemonic: mnemonic, networkType: "mainnet", numberOfAccounts: 5}); + +let txb = new TransactionBlock(); +const account = client.accounts[0]; +let sender = account.address; +txb.setSender(sender); + +var x_CoinType = "0x2bb921b49d4f5acffd78b3a9bcb899a2d5125ef6e1f6cd2a931a0a2d35737a7c::justin_coin::JUSTIN_COIN"; +var gameObjectId = "0x2fac00b61c62d13da5e2641eb130333d74725b37ed1ba031912ca6c832a1dcab"; +var weather_oracle_id = "0x1aedcca0b67b891c64ca113fce87f89835236b4c77294ba7e2db534ad49a58dc"; + +const x_coins = await account.getCoins(x_CoinType); +const x_coin = await mergeCoins(txb, x_coins); +let [insert_x_coin] = txb.splitCoins(x_coin, [1_000_000_00]); + +let [ticket, open_hunt] = txb.moveCall({ + target: `0x5a2be34793fdb369bd35940fca6ae19db9ce59797685df30c24754d605041b42::fantasyni_game::insert_coin`, + arguments: [ + txb.object(gameObjectId), + insert_x_coin + ], + typeArguments: [x_CoinType], +}); + +if (open_hunt) { + txb.moveCall({ + target: `0x5a2be34793fdb369bd35940fca6ae19db9ce59797685df30c24754d605041b42::fantasyni_game::open_ticket_end`, + arguments: [ + ticket, + txb.object(gameObjectId), + txb.object(weather_oracle_id), + txb.object(SUI_CLOCK_OBJECT_ID), + ], + typeArguments: [x_CoinType], + }); +} + +const result = await SignAndSubmitTXB(txb, account.client, account.keypair); +console.log("result: ", result); diff --git a/mover/fantasyni/code/task4/fantasyni_game/scripts/new_game.js b/mover/fantasyni/code/task4/fantasyni_game/scripts/new_game.js new file mode 100644 index 000000000..4750c7fcc --- /dev/null +++ b/mover/fantasyni/code/task4/fantasyni_game/scripts/new_game.js @@ -0,0 +1,24 @@ + +import { NAVISDKClient } from 'navi-sdk' +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import {SignAndSubmitTXB} from 'navi-sdk/dist/libs/PTB/index.js' +const mnemonic = ""; //Replace with your mnemonic +const client = new NAVISDKClient({mnemonic: mnemonic, networkType: "mainnet", numberOfAccounts: 5}); + +let txb = new TransactionBlock(); +const account = client.accounts[0]; +let sender = account.address; +txb.setSender(sender); + +var x_CoinType = "0x2bb921b49d4f5acffd78b3a9bcb899a2d5125ef6e1f6cd2a931a0a2d35737a7c::justin_coin::JUSTIN_COIN"; + +txb.moveCall({ + target: `0x5a2be34793fdb369bd35940fca6ae19db9ce59797685df30c24754d605041b42::fantasyni_game::new_game`, + arguments: [ + txb.pure(1), + ], + typeArguments: [x_CoinType], +}); + +const result = await SignAndSubmitTXB(txb, account.client, account.keypair); +console.log("result: ", result); diff --git a/mover/fantasyni/code/task4/fantasyni_game/scripts/package-lock.json b/mover/fantasyni/code/task4/fantasyni_game/scripts/package-lock.json new file mode 100644 index 000000000..da72e5c97 --- /dev/null +++ b/mover/fantasyni/code/task4/fantasyni_game/scripts/package-lock.json @@ -0,0 +1,4588 @@ +{ + "name": "navisdk", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "navisdk", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "navi-sdk": "^1.1.21", + "ts-node": "^10.9.2" + }, + "devDependencies": { + "typescript": "^5.4.5" + } + }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, + "node_modules/@0no-co/graphqlsp": { + "version": "1.12.5", + "resolved": "https://registry.npmmirror.com/@0no-co/graphqlsp/-/graphqlsp-1.12.5.tgz", + "integrity": "sha512-YS9s8sf3XLaVdBt33u1mbUdfUSLiarQW1SFd3ITh2CLWz1nVnVTN0oCrpepuFHUJ7rt+b6Gk14sgjP4ONdeZfQ==", + "dependencies": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@digitak/grubber": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/@digitak/grubber/-/grubber-3.1.4.tgz", + "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@gql.tada/cli-utils": { + "version": "1.3.9", + "resolved": "https://registry.npmmirror.com/@gql.tada/cli-utils/-/cli-utils-1.3.9.tgz", + "integrity": "sha512-oRb7SG/+csx9CiypSJTI21KaLfulOUnhX1vxg4FXi2snub9XShkGR2XnnlJVTAOZXY9Vcxti1NutAElxdDkycA==", + "dependencies": { + "@0no-co/graphqlsp": "^1.12.1", + "@gql.tada/internal": "1.0.0", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@gql.tada/internal": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@gql.tada/internal/-/internal-1.0.0.tgz", + "integrity": "sha512-B55aIYyZn5ewdgMqoJciPAwF5DKYX6HBabTU+ap/dpNH3EgJrLomc8Y8w+MCxCyOx+dXL9OduT6eWnVr7J7Eyg==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmmirror.com/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@scure/base": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/@scure/base/-/base-1.1.6.tgz", + "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==" + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "peer": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "dependencies": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + } + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "dependencies": { + "tinyspy": "^2.2.0" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + } + }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.2.5.tgz", + "integrity": "sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==", + "dependencies": { + "@volar/source-map": "2.2.5" + } + }, + "node_modules/@volar/source-map": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-2.2.5.tgz", + "integrity": "sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==", + "dependencies": { + "muggle-string": "^0.4.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dependencies": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.19", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-2.0.19.tgz", + "integrity": "sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==", + "dependencies": { + "@volar/language-core": "~2.2.4", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/code-red/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "peer": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==" + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/esrun": { + "version": "3.2.26", + "resolved": "https://registry.npmmirror.com/esrun/-/esrun-3.2.26.tgz", + "integrity": "sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==", + "dependencies": { + "@digitak/grubber": "^3.1.4", + "chokidar": "^3.5.1", + "esbuild": "^0.17.4" + }, + "bin": { + "esrun": "bin.js" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "engines": { + "node": "*" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "engines": { + "node": ">=16" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gql.tada": { + "version": "1.7.5", + "resolved": "https://registry.npmmirror.com/gql.tada/-/gql.tada-1.7.5.tgz", + "integrity": "sha512-GepPTee+FWSVVZQ7GiJHzsGNo7gOb59kcn4mUPYLlkbpeJfOUwpuoB05ZNaXG0W4qZVPd1I7R2UgMHBjY1lGlQ==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5", + "@gql.tada/cli-utils": "1.3.9", + "@gql.tada/internal": "1.0.0" + }, + "bin": { + "gql-tada": "bin/cli.js", + "gql.tada": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmmirror.com/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "peer": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "peer": true + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmmirror.com/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "peer": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mlly": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.0.tgz", + "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.0", + "ufo": "^1.5.3" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/navi-sdk": { + "version": "1.1.21", + "resolved": "https://registry.npmmirror.com/navi-sdk/-/navi-sdk-1.1.21.tgz", + "integrity": "sha512-AumnovQqslq9WSUOrJiILDH/Jh/ygslJS2WNcIIfovG4HpSLx+Q8qKHjg3bydsnnFIr4o0qdPiMb1K2nB8mwMQ==", + "dependencies": { + "@mysten/sui.js": "^0.50.1", + "axios": "^1.6.7", + "esrun": "^3.2.26", + "tsconfig-paths": "^4.2.0", + "vitest": "^1.3.1" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/periscopic/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dependencies": { + "js-tokens": "^9.0.0" + } + }, + "node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/svelte": { + "version": "4.2.17", + "resolved": "https://registry.npmmirror.com/svelte/-/svelte-4.2.17.tgz", + "integrity": "sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/svelte2tsx": { + "version": "0.7.8", + "resolved": "https://registry.npmmirror.com/svelte2tsx/-/svelte2tsx-0.7.8.tgz", + "integrity": "sha512-ABK3RDFcy59AqAiU1N5Kxu1RnKrb1GDMrQjLgNgJfE8Q+coCKpjCAPtUVKQM2HnmuqeNWcT3NqfXbE+ZmN5Pow==", + "dependencies": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + }, + "peerDependencies": { + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", + "typescript": "^4.9.4 || ^5.0.0" + } + }, + "node_modules/tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==" + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmmirror.com/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "peer": true + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/vite": { + "version": "5.2.11", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.2.11.tgz", + "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "dependencies": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "engines": { + "node": ">=12.20" + } + } + }, + "dependencies": { + "@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "requires": {} + }, + "@0no-co/graphqlsp": { + "version": "1.12.5", + "resolved": "https://registry.npmmirror.com/@0no-co/graphqlsp/-/graphqlsp-1.12.5.tgz", + "integrity": "sha512-YS9s8sf3XLaVdBt33u1mbUdfUSLiarQW1SFd3ITh2CLWz1nVnVTN0oCrpepuFHUJ7rt+b6Gk14sgjP4ONdeZfQ==", + "requires": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + } + }, + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "peer": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@babel/parser": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==" + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@digitak/grubber": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/@digitak/grubber/-/grubber-3.1.4.tgz", + "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==" + }, + "@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "optional": true + }, + "@gql.tada/cli-utils": { + "version": "1.3.9", + "resolved": "https://registry.npmmirror.com/@gql.tada/cli-utils/-/cli-utils-1.3.9.tgz", + "integrity": "sha512-oRb7SG/+csx9CiypSJTI21KaLfulOUnhX1vxg4FXi2snub9XShkGR2XnnlJVTAOZXY9Vcxti1NutAElxdDkycA==", + "requires": { + "@0no-co/graphqlsp": "^1.12.1", + "@gql.tada/internal": "1.0.0", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + } + }, + "@gql.tada/internal": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@gql.tada/internal/-/internal-1.0.0.tgz", + "integrity": "sha512-B55aIYyZn5ewdgMqoJciPAwF5DKYX6HBabTU+ap/dpNH3EgJrLomc8Y8w+MCxCyOx+dXL9OduT6eWnVr7J7Eyg==", + "requires": { + "@0no-co/graphql.web": "^1.0.5" + } + }, + "@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "requires": {} + }, + "@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "peer": true, + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "peer": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "peer": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "requires": { + "bs58": "^5.0.0" + } + }, + "@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmmirror.com/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "requires": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + } + }, + "@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "requires": { + "@noble/hashes": "1.4.0" + } + }, + "@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" + }, + "@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "optional": true + }, + "@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "optional": true + }, + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "optional": true + }, + "@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "optional": true + }, + "@scure/base": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/@scure/base/-/base-1.1.6.tgz", + "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==" + }, + "@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "requires": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "requires": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, + "@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "peer": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "requires": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + } + }, + "@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "requires": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + } + }, + "@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "requires": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + } + }, + "@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "requires": { + "tinyspy": "^2.2.0" + } + }, + "@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "requires": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "dependencies": { + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "requires": { + "@types/estree": "^1.0.0" + } + } + } + }, + "@volar/language-core": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.2.5.tgz", + "integrity": "sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==", + "requires": { + "@volar/source-map": "2.2.5" + } + }, + "@volar/source-map": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-2.2.5.tgz", + "integrity": "sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==", + "requires": { + "muggle-string": "^0.4.0" + } + }, + "@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "requires": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "requires": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/language-core": { + "version": "2.0.19", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-2.0.19.tgz", + "integrity": "sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==", + "requires": { + "@volar/language-core": "~2.2.4", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + } + }, + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==" + }, + "acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==" + }, + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "peer": true, + "requires": { + "dequal": "^2.0.3" + } + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "1.7.2", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "requires": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "peer": true, + "requires": { + "dequal": "^2.0.3" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==" + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "requires": { + "fill-range": "^7.1.1" + } + }, + "bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "requires": { + "base-x": "^4.0.0" + } + }, + "cac": { + "version": "6.7.14", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==" + }, + "chai": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + } + }, + "check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "requires": { + "get-func-name": "^2.0.2" + } + }, + "chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "peer": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + }, + "dependencies": { + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "requires": { + "@types/estree": "^1.0.0" + } + } + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" + }, + "confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==" + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "peer": true, + "requires": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + } + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==" + }, + "deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "requires": { + "type-detect": "^4.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "peer": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==" + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + }, + "esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "requires": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "esrun": { + "version": "3.2.26", + "resolved": "https://registry.npmmirror.com/esrun/-/esrun-3.2.26.tgz", + "integrity": "sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==", + "requires": { + "@digitak/grubber": "^3.1.4", + "chokidar": "^3.5.1", + "esbuild": "^0.17.4" + } + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "execa": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "optional": true + }, + "get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==" + }, + "get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==" + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "gql.tada": { + "version": "1.7.5", + "resolved": "https://registry.npmmirror.com/gql.tada/-/gql.tada-1.7.5.tgz", + "integrity": "sha512-GepPTee+FWSVVZQ7GiJHzsGNo7gOb59kcn4mUPYLlkbpeJfOUwpuoB05ZNaXG0W4qZVPd1I7R2UgMHBjY1lGlQ==", + "requires": { + "@0no-co/graphql.web": "^1.0.5", + "@gql.tada/cli-utils": "1.3.9", + "@gql.tada/internal": "1.0.0" + } + }, + "graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmmirror.com/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==" + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "peer": true, + "requires": { + "@types/estree": "*" + } + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==" + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + }, + "local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "requires": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + } + }, + "locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "peer": true + }, + "loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmmirror.com/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "requires": { + "get-func-name": "^2.0.1" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "peer": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==" + }, + "minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "mlly": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.0.tgz", + "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==", + "requires": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.0", + "ufo": "^1.5.3" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" + }, + "navi-sdk": { + "version": "1.1.21", + "resolved": "https://registry.npmmirror.com/navi-sdk/-/navi-sdk-1.1.21.tgz", + "integrity": "sha512-AumnovQqslq9WSUOrJiILDH/Jh/ygslJS2WNcIIfovG4HpSLx+Q8qKHjg3bydsnnFIr4o0qdPiMb1K2nB8mwMQ==", + "requires": { + "@mysten/sui.js": "^0.50.1", + "axios": "^1.6.7", + "esrun": "^3.2.26", + "tsconfig-paths": "^4.2.0", + "vitest": "^1.3.1" + } + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "requires": { + "path-key": "^4.0.0" + }, + "dependencies": { + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==" + } + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" + }, + "periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "peer": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + }, + "dependencies": { + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "requires": { + "@types/estree": "^1.0.0" + } + } + } + }, + "picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pkg-types": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", + "requires": { + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" + } + }, + "postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + } + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "requires": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "@types/estree": "1.0.5", + "fsevents": "~2.3.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" + }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" + }, + "source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==" + }, + "stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" + }, + "std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==" + }, + "strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "requires": { + "js-tokens": "^9.0.0" + } + }, + "superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==" + }, + "svelte": { + "version": "4.2.17", + "resolved": "https://registry.npmmirror.com/svelte/-/svelte-4.2.17.tgz", + "integrity": "sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==", + "peer": true, + "requires": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "dependencies": { + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "requires": { + "@types/estree": "^1.0.0" + } + } + } + }, + "svelte2tsx": { + "version": "0.7.8", + "resolved": "https://registry.npmmirror.com/svelte2tsx/-/svelte2tsx-0.7.8.tgz", + "integrity": "sha512-ABK3RDFcy59AqAiU1N5Kxu1RnKrb1GDMrQjLgNgJfE8Q+coCKpjCAPtUVKQM2HnmuqeNWcT3NqfXbE+ZmN5Pow==", + "requires": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + } + }, + "tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==" + }, + "tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==" + }, + "tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmmirror.com/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "requires": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, + "typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==" + }, + "ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" + }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "peer": true + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "vite": { + "version": "5.2.11", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.2.11.tgz", + "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", + "requires": { + "esbuild": "^0.20.1", + "fsevents": "~2.3.3", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "optional": true + }, + "esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "requires": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + } + } + }, + "vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "requires": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + } + }, + "vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "requires": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + } + }, + "vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "requires": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==" + } + } +} diff --git a/mover/fantasyni/code/task4/fantasyni_game/scripts/package.json b/mover/fantasyni/code/task4/fantasyni_game/scripts/package.json new file mode 100644 index 000000000..9fdb988b5 --- /dev/null +++ b/mover/fantasyni/code/task4/fantasyni_game/scripts/package.json @@ -0,0 +1,19 @@ +{ + "name": "navisdk", + "type": "module", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "MIT", + "dependencies": { + "navi-sdk": "^1.1.21", + "ts-node": "^10.9.2" + }, + "devDependencies": { + "typescript": "^5.4.5" + } +} diff --git a/mover/fantasyni/code/task4/fantasyni_game/sources/fantasyni_game.move b/mover/fantasyni/code/task4/fantasyni_game/sources/fantasyni_game.move new file mode 100644 index 000000000..1ed8a5108 --- /dev/null +++ b/mover/fantasyni/code/task4/fantasyni_game/sources/fantasyni_game.move @@ -0,0 +1,162 @@ +/// Module: fantasyni_game +/// 一元夺宝 +module fantasyni_game::fantasyni_game { + use std::vector; + use sui::address; + use sui::bcs::{Self}; + use sui::event::emit; + use sui::hash::blake2b256; + use sui::coin::{Self, Coin}; + use sui::object::{Self, UID, ID}; + use sui::clock::{Self, Clock}; + use sui::balance::{Self, Balance}; + use oracle::weather::{WeatherOracle}; + use sui::tx_context::{Self, TxContext}; + use sui::transfer::{share_object, public_transfer}; + + const ENumberZERO: u64 = 0; + const ECoinAmountInvalid: u64 = 1; + const EHuntEnded: u64 = 2; + const EHasInsertedCoin: u64 = 3; + const EGameStateInvalid: u64 = 4; + const ETicketForIdNotValid: u64 = 5; + + struct CoinKey has store { + + } + + struct OneCoinTreasureHunt has key { + id: UID, + custody: Balance, + addresses: vector
, + hunt_number: u64 + } + + struct HuntEvent has copy, drop { + hunt_index: u64, + hunt_address: address, + hunt_balance: u64 + } + + struct HuntTicket { + for: ID, + open_hunt: bool, + } + + public entry fun new_game(hunt_number: u64, ctx: &mut TxContext) { + assert!(hunt_number > 0, ENumberZERO); + + let game = OneCoinTreasureHunt { + id: object::new(ctx), + custody: balance::zero(), + addresses: vector[], + hunt_number + }; + + share_object(game); + } + + public fun insert_coin( + game: &mut OneCoinTreasureHunt, + coin: Coin, + ctx: &mut TxContext + ): (HuntTicket, bool) { + assert!(coin::value(&coin) == 1000_000_00, ECoinAmountInvalid); + assert!(game.hunt_number > 0, EHuntEnded); + assert!(!vector::contains(&game.addresses, &tx_context::sender(ctx)), EHasInsertedCoin); + + balance::join(&mut game.custody, coin::into_balance(coin)); + vector::push_back(&mut game.addresses, tx_context::sender(ctx)); + game.hunt_number = game.hunt_number - 1; + + let open_hunt = game.hunt_number == 0; + (HuntTicket { + for: object::uid_to_inner(&game.id), + open_hunt + }, open_hunt) + } + + public fun open_ticket_end( + ticket: HuntTicket, + game: OneCoinTreasureHunt, + weather_oracle: &WeatherOracle, + clock: &Clock, + ctx: &mut TxContext + ) { + assert!(ticket.open_hunt == true, EGameStateInvalid); + assert!(ticket.for == object::uid_to_inner(&game.id), ETicketForIdNotValid); + + let HuntTicket { for: _, open_hunt: _ } = ticket; + + let OneCoinTreasureHunt {id, custody, addresses, hunt_number: _} = game; + object::delete(id); + + let hunt_index = get_random(weather_oracle,vector::length(&addresses), clock, ctx); + let hunt_address = *vector::borrow(&addresses, hunt_index); + let hunt_balance = balance::value(&custody); + + public_transfer(coin::from_balance(custody, ctx), hunt_address); + emit(HuntEvent { + hunt_index, + hunt_address, + hunt_balance + }); + } + + public fun open_ticket_normal( + ticket: HuntTicket, + ) { + assert!(ticket.open_hunt == false, EGameStateInvalid); + let HuntTicket { for: _, open_hunt: _ } = ticket; + } + + fun u32_to_ascii(num: u32): vector + { + if (num == 0) { + return b"0" + }; + let bytes = vector::empty(); + while (num > 0) { + let remainder = num % 10; // get the last digit + num = num / 10; // remove the last digit + vector::push_back(&mut bytes, (remainder as u8) + 48); // ASCII value of 0 is 48 + }; + vector::reverse(&mut bytes); + return bytes + } + + fun u64_to_ascii(num: u64): vector + { + if (num == 0) { + return b"0" + }; + let bytes = vector::empty(); + while (num > 0) { + let remainder = num % 10; // get the last digit + num = num / 10; // remove the last digit + vector::push_back(&mut bytes, (remainder as u8) + 48); // ASCII value of 0 is 48 + }; + vector::reverse(&mut bytes); + return bytes + } + + fun get_random(weather_oracle: &WeatherOracle, max: u64, clock: &Clock, ctx: &TxContext): u64 { + let sender = tx_context::sender(ctx); + let tx_digest = tx_context::digest(ctx); + let random_pressure_p = oracle::weather::city_weather_oracle_pressure(weather_oracle, 2988507); + let random_pressure_l = oracle::weather::city_weather_oracle_pressure(weather_oracle, 88319); + + let random_vector = vector::empty(); + vector::append(&mut random_vector, address::to_bytes(copy sender)); + vector::append(&mut random_vector, u32_to_ascii(random_pressure_p)); + vector::append(&mut random_vector, u32_to_ascii(random_pressure_l)); + vector::append(&mut random_vector, u64_to_ascii(clock::timestamp_ms(clock))); + vector::append(&mut random_vector, *copy tx_digest); + + let temp1 = blake2b256(&random_vector); + let random_num_ex = bcs::peel_u64(&mut bcs::new(temp1)); + let random_value = ((random_num_ex % max) as u64); + random_value + } +} + diff --git a/mover/fantasyni/code/task4/fantasyni_game/tests/justin_game_tests.move b/mover/fantasyni/code/task4/fantasyni_game/tests/justin_game_tests.move new file mode 100644 index 000000000..aaf10a808 --- /dev/null +++ b/mover/fantasyni/code/task4/fantasyni_game/tests/justin_game_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module justin_game::justin_game_tests { + // uncomment this line to import the module + // use justin_game::justin_game; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_justin_game() { + // pass + } + + #[test, expected_failure(abort_code = ::justin_game::justin_game_tests::ENotImplemented)] + fun test_justin_game_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/fantasyni/code/task5/fantasyni_swap/Move.lock b/mover/fantasyni/code/task5/fantasyni_swap/Move.lock new file mode 100644 index 000000000..d2a06179c --- /dev/null +++ b/mover/fantasyni/code/task5/fantasyni_swap/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "3285D2018B90A0547D7726EDBA584EB4D9ADADC0DA9AD367B7AEB98198D2B5E0" +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.25.1" +edition = "legacy" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x6ff4219ee3d769b8f24fbc6d0324730d44d79c50cb1e9fc7c643daef2eb8755e" +latest-published-id = "0x6ff4219ee3d769b8f24fbc6d0324730d44d79c50cb1e9fc7c643daef2eb8755e" +published-version = "1" diff --git a/mover/fantasyni/code/task5/fantasyni_swap/Move.toml b/mover/fantasyni/code/task5/fantasyni_swap/Move.toml new file mode 100644 index 000000000..0e5c46d12 --- /dev/null +++ b/mover/fantasyni/code/task5/fantasyni_swap/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "fantasyni_swap" +edition = "legacy" # 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] +fantasyni_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" + diff --git a/mover/fantasyni/code/task5/fantasyni_swap/scripts/index.js b/mover/fantasyni/code/task5/fantasyni_swap/scripts/index.js new file mode 100644 index 000000000..242cb2ec9 --- /dev/null +++ b/mover/fantasyni/code/task5/fantasyni_swap/scripts/index.js @@ -0,0 +1,45 @@ + +import { NAVISDKClient } from 'navi-sdk' +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import {SignAndSubmitTXB, mergeCoins} from 'navi-sdk/dist/libs/PTB/index.js' +const mnemonic = ""; //Replace with your mnemonic +const client = new NAVISDKClient({mnemonic: mnemonic, networkType: "mainnet", numberOfAccounts: 5}); + +let txb = new TransactionBlock(); +const account = client.accounts[0]; +let sender = account.address; +txb.setSender(sender); + +var x_CoinType = "0x2bb921b49d4f5acffd78b3a9bcb899a2d5125ef6e1f6cd2a931a0a2d35737a7c::justin_coin::JUSTIN_COIN"; +var y_CoinType = "0x2bb921b49d4f5acffd78b3a9bcb899a2d5125ef6e1f6cd2a931a0a2d35737a7c::justin_faucet_coin::JUSTIN_FAUCET_COIN"; + +var poolObjectId = "0x87ebc83c7c2a10cbf5ead06f53ba3e25f37fb9b74eb595fd2c5c3c60c1d79c5f"; + +const y_coins = await account.getCoins(y_CoinType); +const y_coin = await mergeCoins(txb, y_coins); +let [deposit_y_coin] = txb.splitCoins(y_coin, [1_000_000_00]); + +txb.moveCall({ + target: `0x6ff4219ee3d769b8f24fbc6d0324730d44d79c50cb1e9fc7c643daef2eb8755e::fantasyni_swap::deposit_coin`, + arguments: [ + txb.object(poolObjectId), + deposit_y_coin + ], + typeArguments: [y_CoinType], +}); + +const x_coins = await account.getCoins(x_CoinType); +const x_coin = await mergeCoins(txb, x_coins); +let [swap_x_coin] = txb.splitCoins(x_coin, [1_000_000_00]); + +txb.moveCall({ + target: `0x6ff4219ee3d769b8f24fbc6d0324730d44d79c50cb1e9fc7c643daef2eb8755e::fantasyni_swap::swap_x_y`, + arguments: [ + txb.object(poolObjectId), + swap_x_coin + ], + typeArguments: [x_CoinType, y_CoinType], +}); + +const result = await SignAndSubmitTXB(txb, account.client, account.keypair); +console.log("result: ", result); diff --git a/mover/fantasyni/code/task5/fantasyni_swap/scripts/package-lock.json b/mover/fantasyni/code/task5/fantasyni_swap/scripts/package-lock.json new file mode 100644 index 000000000..da72e5c97 --- /dev/null +++ b/mover/fantasyni/code/task5/fantasyni_swap/scripts/package-lock.json @@ -0,0 +1,4588 @@ +{ + "name": "navisdk", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "navisdk", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "navi-sdk": "^1.1.21", + "ts-node": "^10.9.2" + }, + "devDependencies": { + "typescript": "^5.4.5" + } + }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, + "node_modules/@0no-co/graphqlsp": { + "version": "1.12.5", + "resolved": "https://registry.npmmirror.com/@0no-co/graphqlsp/-/graphqlsp-1.12.5.tgz", + "integrity": "sha512-YS9s8sf3XLaVdBt33u1mbUdfUSLiarQW1SFd3ITh2CLWz1nVnVTN0oCrpepuFHUJ7rt+b6Gk14sgjP4ONdeZfQ==", + "dependencies": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@digitak/grubber": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/@digitak/grubber/-/grubber-3.1.4.tgz", + "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@gql.tada/cli-utils": { + "version": "1.3.9", + "resolved": "https://registry.npmmirror.com/@gql.tada/cli-utils/-/cli-utils-1.3.9.tgz", + "integrity": "sha512-oRb7SG/+csx9CiypSJTI21KaLfulOUnhX1vxg4FXi2snub9XShkGR2XnnlJVTAOZXY9Vcxti1NutAElxdDkycA==", + "dependencies": { + "@0no-co/graphqlsp": "^1.12.1", + "@gql.tada/internal": "1.0.0", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@gql.tada/internal": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@gql.tada/internal/-/internal-1.0.0.tgz", + "integrity": "sha512-B55aIYyZn5ewdgMqoJciPAwF5DKYX6HBabTU+ap/dpNH3EgJrLomc8Y8w+MCxCyOx+dXL9OduT6eWnVr7J7Eyg==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmmirror.com/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@scure/base": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/@scure/base/-/base-1.1.6.tgz", + "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==" + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "peer": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "dependencies": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + } + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "dependencies": { + "tinyspy": "^2.2.0" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + } + }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.2.5.tgz", + "integrity": "sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==", + "dependencies": { + "@volar/source-map": "2.2.5" + } + }, + "node_modules/@volar/source-map": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-2.2.5.tgz", + "integrity": "sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==", + "dependencies": { + "muggle-string": "^0.4.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dependencies": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.19", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-2.0.19.tgz", + "integrity": "sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==", + "dependencies": { + "@volar/language-core": "~2.2.4", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/code-red/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "peer": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==" + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/esrun": { + "version": "3.2.26", + "resolved": "https://registry.npmmirror.com/esrun/-/esrun-3.2.26.tgz", + "integrity": "sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==", + "dependencies": { + "@digitak/grubber": "^3.1.4", + "chokidar": "^3.5.1", + "esbuild": "^0.17.4" + }, + "bin": { + "esrun": "bin.js" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "engines": { + "node": "*" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "engines": { + "node": ">=16" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gql.tada": { + "version": "1.7.5", + "resolved": "https://registry.npmmirror.com/gql.tada/-/gql.tada-1.7.5.tgz", + "integrity": "sha512-GepPTee+FWSVVZQ7GiJHzsGNo7gOb59kcn4mUPYLlkbpeJfOUwpuoB05ZNaXG0W4qZVPd1I7R2UgMHBjY1lGlQ==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5", + "@gql.tada/cli-utils": "1.3.9", + "@gql.tada/internal": "1.0.0" + }, + "bin": { + "gql-tada": "bin/cli.js", + "gql.tada": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmmirror.com/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "peer": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "peer": true + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmmirror.com/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "peer": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mlly": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.0.tgz", + "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.0", + "ufo": "^1.5.3" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/navi-sdk": { + "version": "1.1.21", + "resolved": "https://registry.npmmirror.com/navi-sdk/-/navi-sdk-1.1.21.tgz", + "integrity": "sha512-AumnovQqslq9WSUOrJiILDH/Jh/ygslJS2WNcIIfovG4HpSLx+Q8qKHjg3bydsnnFIr4o0qdPiMb1K2nB8mwMQ==", + "dependencies": { + "@mysten/sui.js": "^0.50.1", + "axios": "^1.6.7", + "esrun": "^3.2.26", + "tsconfig-paths": "^4.2.0", + "vitest": "^1.3.1" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/periscopic/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dependencies": { + "js-tokens": "^9.0.0" + } + }, + "node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/svelte": { + "version": "4.2.17", + "resolved": "https://registry.npmmirror.com/svelte/-/svelte-4.2.17.tgz", + "integrity": "sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/svelte2tsx": { + "version": "0.7.8", + "resolved": "https://registry.npmmirror.com/svelte2tsx/-/svelte2tsx-0.7.8.tgz", + "integrity": "sha512-ABK3RDFcy59AqAiU1N5Kxu1RnKrb1GDMrQjLgNgJfE8Q+coCKpjCAPtUVKQM2HnmuqeNWcT3NqfXbE+ZmN5Pow==", + "dependencies": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + }, + "peerDependencies": { + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", + "typescript": "^4.9.4 || ^5.0.0" + } + }, + "node_modules/tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==" + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmmirror.com/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "peer": true + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/vite": { + "version": "5.2.11", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.2.11.tgz", + "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "dependencies": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "engines": { + "node": ">=12.20" + } + } + }, + "dependencies": { + "@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "requires": {} + }, + "@0no-co/graphqlsp": { + "version": "1.12.5", + "resolved": "https://registry.npmmirror.com/@0no-co/graphqlsp/-/graphqlsp-1.12.5.tgz", + "integrity": "sha512-YS9s8sf3XLaVdBt33u1mbUdfUSLiarQW1SFd3ITh2CLWz1nVnVTN0oCrpepuFHUJ7rt+b6Gk14sgjP4ONdeZfQ==", + "requires": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + } + }, + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "peer": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@babel/parser": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==" + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@digitak/grubber": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/@digitak/grubber/-/grubber-3.1.4.tgz", + "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==" + }, + "@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "optional": true + }, + "@gql.tada/cli-utils": { + "version": "1.3.9", + "resolved": "https://registry.npmmirror.com/@gql.tada/cli-utils/-/cli-utils-1.3.9.tgz", + "integrity": "sha512-oRb7SG/+csx9CiypSJTI21KaLfulOUnhX1vxg4FXi2snub9XShkGR2XnnlJVTAOZXY9Vcxti1NutAElxdDkycA==", + "requires": { + "@0no-co/graphqlsp": "^1.12.1", + "@gql.tada/internal": "1.0.0", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + } + }, + "@gql.tada/internal": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@gql.tada/internal/-/internal-1.0.0.tgz", + "integrity": "sha512-B55aIYyZn5ewdgMqoJciPAwF5DKYX6HBabTU+ap/dpNH3EgJrLomc8Y8w+MCxCyOx+dXL9OduT6eWnVr7J7Eyg==", + "requires": { + "@0no-co/graphql.web": "^1.0.5" + } + }, + "@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "requires": {} + }, + "@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "peer": true, + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "peer": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "peer": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "requires": { + "bs58": "^5.0.0" + } + }, + "@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmmirror.com/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "requires": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + } + }, + "@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "requires": { + "@noble/hashes": "1.4.0" + } + }, + "@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" + }, + "@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "optional": true + }, + "@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "optional": true + }, + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "optional": true + }, + "@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "optional": true + }, + "@scure/base": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/@scure/base/-/base-1.1.6.tgz", + "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==" + }, + "@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "requires": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "requires": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, + "@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "peer": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "requires": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + } + }, + "@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "requires": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + } + }, + "@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "requires": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + } + }, + "@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "requires": { + "tinyspy": "^2.2.0" + } + }, + "@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "requires": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "dependencies": { + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "requires": { + "@types/estree": "^1.0.0" + } + } + } + }, + "@volar/language-core": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.2.5.tgz", + "integrity": "sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==", + "requires": { + "@volar/source-map": "2.2.5" + } + }, + "@volar/source-map": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-2.2.5.tgz", + "integrity": "sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==", + "requires": { + "muggle-string": "^0.4.0" + } + }, + "@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "requires": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "requires": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/language-core": { + "version": "2.0.19", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-2.0.19.tgz", + "integrity": "sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==", + "requires": { + "@volar/language-core": "~2.2.4", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + } + }, + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==" + }, + "acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==" + }, + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "peer": true, + "requires": { + "dequal": "^2.0.3" + } + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "1.7.2", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "requires": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "peer": true, + "requires": { + "dequal": "^2.0.3" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==" + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "requires": { + "fill-range": "^7.1.1" + } + }, + "bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "requires": { + "base-x": "^4.0.0" + } + }, + "cac": { + "version": "6.7.14", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==" + }, + "chai": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + } + }, + "check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "requires": { + "get-func-name": "^2.0.2" + } + }, + "chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "peer": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + }, + "dependencies": { + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "requires": { + "@types/estree": "^1.0.0" + } + } + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" + }, + "confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==" + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "peer": true, + "requires": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + } + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==" + }, + "deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "requires": { + "type-detect": "^4.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "peer": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==" + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + }, + "esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "requires": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "esrun": { + "version": "3.2.26", + "resolved": "https://registry.npmmirror.com/esrun/-/esrun-3.2.26.tgz", + "integrity": "sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==", + "requires": { + "@digitak/grubber": "^3.1.4", + "chokidar": "^3.5.1", + "esbuild": "^0.17.4" + } + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "execa": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "optional": true + }, + "get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==" + }, + "get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==" + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "gql.tada": { + "version": "1.7.5", + "resolved": "https://registry.npmmirror.com/gql.tada/-/gql.tada-1.7.5.tgz", + "integrity": "sha512-GepPTee+FWSVVZQ7GiJHzsGNo7gOb59kcn4mUPYLlkbpeJfOUwpuoB05ZNaXG0W4qZVPd1I7R2UgMHBjY1lGlQ==", + "requires": { + "@0no-co/graphql.web": "^1.0.5", + "@gql.tada/cli-utils": "1.3.9", + "@gql.tada/internal": "1.0.0" + } + }, + "graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmmirror.com/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==" + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "peer": true, + "requires": { + "@types/estree": "*" + } + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==" + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + }, + "local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "requires": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + } + }, + "locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "peer": true + }, + "loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmmirror.com/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "requires": { + "get-func-name": "^2.0.1" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "peer": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==" + }, + "minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "mlly": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.0.tgz", + "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==", + "requires": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.0", + "ufo": "^1.5.3" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" + }, + "navi-sdk": { + "version": "1.1.21", + "resolved": "https://registry.npmmirror.com/navi-sdk/-/navi-sdk-1.1.21.tgz", + "integrity": "sha512-AumnovQqslq9WSUOrJiILDH/Jh/ygslJS2WNcIIfovG4HpSLx+Q8qKHjg3bydsnnFIr4o0qdPiMb1K2nB8mwMQ==", + "requires": { + "@mysten/sui.js": "^0.50.1", + "axios": "^1.6.7", + "esrun": "^3.2.26", + "tsconfig-paths": "^4.2.0", + "vitest": "^1.3.1" + } + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "requires": { + "path-key": "^4.0.0" + }, + "dependencies": { + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==" + } + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" + }, + "periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "peer": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + }, + "dependencies": { + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "requires": { + "@types/estree": "^1.0.0" + } + } + } + }, + "picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pkg-types": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", + "requires": { + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" + } + }, + "postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + } + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "requires": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "@types/estree": "1.0.5", + "fsevents": "~2.3.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" + }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" + }, + "source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==" + }, + "stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" + }, + "std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==" + }, + "strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "requires": { + "js-tokens": "^9.0.0" + } + }, + "superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==" + }, + "svelte": { + "version": "4.2.17", + "resolved": "https://registry.npmmirror.com/svelte/-/svelte-4.2.17.tgz", + "integrity": "sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==", + "peer": true, + "requires": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "dependencies": { + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "requires": { + "@types/estree": "^1.0.0" + } + } + } + }, + "svelte2tsx": { + "version": "0.7.8", + "resolved": "https://registry.npmmirror.com/svelte2tsx/-/svelte2tsx-0.7.8.tgz", + "integrity": "sha512-ABK3RDFcy59AqAiU1N5Kxu1RnKrb1GDMrQjLgNgJfE8Q+coCKpjCAPtUVKQM2HnmuqeNWcT3NqfXbE+ZmN5Pow==", + "requires": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + } + }, + "tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==" + }, + "tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==" + }, + "tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmmirror.com/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "requires": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, + "typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==" + }, + "ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" + }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "peer": true + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "vite": { + "version": "5.2.11", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.2.11.tgz", + "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", + "requires": { + "esbuild": "^0.20.1", + "fsevents": "~2.3.3", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "optional": true + }, + "esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "requires": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + } + } + }, + "vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "requires": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + } + }, + "vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "requires": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + } + }, + "vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "requires": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==" + } + } +} diff --git a/mover/fantasyni/code/task5/fantasyni_swap/scripts/package.json b/mover/fantasyni/code/task5/fantasyni_swap/scripts/package.json new file mode 100644 index 000000000..9fdb988b5 --- /dev/null +++ b/mover/fantasyni/code/task5/fantasyni_swap/scripts/package.json @@ -0,0 +1,19 @@ +{ + "name": "navisdk", + "type": "module", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "MIT", + "dependencies": { + "navi-sdk": "^1.1.21", + "ts-node": "^10.9.2" + }, + "devDependencies": { + "typescript": "^5.4.5" + } +} diff --git a/mover/fantasyni/code/task5/fantasyni_swap/sources/fantasyni_swap.move b/mover/fantasyni/code/task5/fantasyni_swap/sources/fantasyni_swap.move new file mode 100644 index 000000000..c280e8357 --- /dev/null +++ b/mover/fantasyni/code/task5/fantasyni_swap/sources/fantasyni_swap.move @@ -0,0 +1,65 @@ +/// Module: fantasyni_swap +module fantasyni_swap::fantasyni_swap { + use sui::coin::{Self, Coin}; + use sui::object::{Self, UID}; + use sui::balance::{Self, Balance}; + use sui::dynamic_field::{Self as df}; + use sui::tx_context::{TxContext, sender}; + use sui::transfer::{share_object, public_transfer}; + + const EBalanceNotEnough: u64 = 0; + + struct CoinKey has copy, drop, store { + + } + + struct CoinPool has key { + id: UID, + } + + fun init(ctx: &mut TxContext) { + let pool = CoinPool { + id: object::new(ctx), + }; + share_object(pool); + } + + public entry fun deposit_coin(pool: &mut CoinPool, coin: Coin){ + let coin_balance = coin::into_balance(coin); + let key = CoinKey {}; + + if (df::exists_(&pool.id, key)) { + let pool_coin_balance = df::borrow_mut, Balance>(&mut pool.id, key); + balance::join(pool_coin_balance, coin_balance); + } else { + df::add(&mut pool.id, key, coin_balance); + } + } + + fun withdraw_coin(pool: &mut CoinPool, amount: u64, ctx: &mut TxContext): Coin { + let key = CoinKey {}; + + if (df::exists_(&pool.id, key)) { + let pool_coin_balance = df::borrow_mut, Balance>(&mut pool.id, key); + coin::from_balance(balance::split(pool_coin_balance, amount), ctx) + } else { + abort EBalanceNotEnough + } + } + + public entry fun swap_x_y(pool: &mut CoinPool, x_coin: Coin, ctx: &mut TxContext) { + let amount = coin::value(&x_coin); + + deposit_coin(pool, x_coin); + + let coin_y = withdraw_coin(pool, amount, ctx); + + public_transfer(coin_y, sender(ctx)); + } +} + +/* +sui move build --skip-fetch-latest-git-deps +sui client publish --skip-fetch-latest-git-deps +scripts/index.js +*/ diff --git a/mover/fantasyni/code/task5/fantasyni_swap/tests/my_swap_tests.move b/mover/fantasyni/code/task5/fantasyni_swap/tests/my_swap_tests.move new file mode 100644 index 000000000..4135962fc --- /dev/null +++ b/mover/fantasyni/code/task5/fantasyni_swap/tests/my_swap_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module my_swap::my_swap_tests { + // uncomment this line to import the module + // use my_swap::my_swap; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_my_swap() { + // pass + } + + #[test, expected_failure(abort_code = ::my_swap::my_swap_tests::ENotImplemented)] + fun test_my_swap_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/fantasyni/code/task6/index.js b/mover/fantasyni/code/task6/index.js new file mode 100644 index 000000000..4e83c9b18 --- /dev/null +++ b/mover/fantasyni/code/task6/index.js @@ -0,0 +1,34 @@ + +import { NAVISDKClient } from 'navi-sdk' +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import {depositCoin, SignAndSubmitTXB, borrowCoin} from 'navi-sdk/dist/libs/PTB/index.js' +import { pool, Sui, USDC, getConfig } from 'navi-sdk/dist/address.js' +const mnemonic = ""; //Replace with your mnemonic +const client = new NAVISDKClient({mnemonic: mnemonic, networkType: "mainnet", numberOfAccounts: 5}); + +let txb = new TransactionBlock(); +const account = client.accounts[0]; +let sender = account.address; +txb.setSender(sender); + +var config = await getConfig(); + +console.log(config); + +const sui_Coin_Pool = pool[Sui.symbol]; +const usdc_Coin_Pool = pool[USDC.symbol]; + +const to_deposit = txb.splitCoins(txb.gas, [txb.pure(1_000_000_000)]); + +await depositCoin(txb, sui_Coin_Pool, to_deposit, 1_000_000_000); + +// 2024年5月27日10点 +// 0.052710 +// 52710_000 +var borrow_usdc_amount = 0.052710*1_000_000; +const [borrowed_usdc] = await borrowCoin(txb, usdc_Coin_Pool, borrow_usdc_amount); + +await depositCoin(txb, usdc_Coin_Pool, borrowed_usdc, borrow_usdc_amount); + +const result = await SignAndSubmitTXB(txb, account.client, account.keypair); +console.log("result: ", result); diff --git a/mover/fantasyni/code/task6/package-lock.json b/mover/fantasyni/code/task6/package-lock.json new file mode 100644 index 000000000..8bee373dc --- /dev/null +++ b/mover/fantasyni/code/task6/package-lock.json @@ -0,0 +1,4568 @@ +{ + "name": "navisdk", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "navisdk", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "navi-sdk": "^1.1.21", + "ts-node": "^10.9.2" + }, + "devDependencies": { + "typescript": "^5.4.5" + } + }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, + "node_modules/@0no-co/graphqlsp": { + "version": "1.12.3", + "resolved": "https://registry.npmmirror.com/@0no-co/graphqlsp/-/graphqlsp-1.12.3.tgz", + "integrity": "sha512-U0hV/FmFgm2perV+mrXKe/7Z5F4/9rmOziHJYYQgKLwzUVuN5LQG0qs3cLBGxAqoosG0HfTi2cQkgMKY1CMbYQ==", + "dependencies": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@digitak/grubber": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/@digitak/grubber/-/grubber-3.1.4.tgz", + "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@gql.tada/cli-utils": { + "version": "1.3.9", + "resolved": "https://registry.npmmirror.com/@gql.tada/cli-utils/-/cli-utils-1.3.9.tgz", + "integrity": "sha512-oRb7SG/+csx9CiypSJTI21KaLfulOUnhX1vxg4FXi2snub9XShkGR2XnnlJVTAOZXY9Vcxti1NutAElxdDkycA==", + "dependencies": { + "@0no-co/graphqlsp": "^1.12.1", + "@gql.tada/internal": "1.0.0", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@gql.tada/internal": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@gql.tada/internal/-/internal-1.0.0.tgz", + "integrity": "sha512-B55aIYyZn5ewdgMqoJciPAwF5DKYX6HBabTU+ap/dpNH3EgJrLomc8Y8w+MCxCyOx+dXL9OduT6eWnVr7J7Eyg==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmmirror.com/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "dependencies": { + "@noble/hashes": "1.4.0" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@scure/base": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/@scure/base/-/base-1.1.6.tgz", + "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==" + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "peer": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "dependencies": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + } + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "dependencies": { + "tinyspy": "^2.2.0" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + } + }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.2.5.tgz", + "integrity": "sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==", + "dependencies": { + "@volar/source-map": "2.2.5" + } + }, + "node_modules/@volar/source-map": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-2.2.5.tgz", + "integrity": "sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==", + "dependencies": { + "muggle-string": "^0.4.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dependencies": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.19", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-2.0.19.tgz", + "integrity": "sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==", + "dependencies": { + "@volar/language-core": "~2.2.4", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/code-red/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "peer": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==" + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/esrun": { + "version": "3.2.26", + "resolved": "https://registry.npmmirror.com/esrun/-/esrun-3.2.26.tgz", + "integrity": "sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==", + "dependencies": { + "@digitak/grubber": "^3.1.4", + "chokidar": "^3.5.1", + "esbuild": "^0.17.4" + }, + "bin": { + "esrun": "bin.js" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "engines": { + "node": "*" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "engines": { + "node": ">=16" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gql.tada": { + "version": "1.7.5", + "resolved": "https://registry.npmmirror.com/gql.tada/-/gql.tada-1.7.5.tgz", + "integrity": "sha512-GepPTee+FWSVVZQ7GiJHzsGNo7gOb59kcn4mUPYLlkbpeJfOUwpuoB05ZNaXG0W4qZVPd1I7R2UgMHBjY1lGlQ==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5", + "@gql.tada/cli-utils": "1.3.9", + "@gql.tada/internal": "1.0.0" + }, + "bin": { + "gql-tada": "bin/cli.js", + "gql.tada": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmmirror.com/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "peer": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "peer": true + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmmirror.com/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "peer": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mlly": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.0.tgz", + "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.0", + "ufo": "^1.5.3" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/navi-sdk": { + "version": "1.1.21", + "resolved": "https://registry.npmmirror.com/navi-sdk/-/navi-sdk-1.1.21.tgz", + "integrity": "sha512-AumnovQqslq9WSUOrJiILDH/Jh/ygslJS2WNcIIfovG4HpSLx+Q8qKHjg3bydsnnFIr4o0qdPiMb1K2nB8mwMQ==", + "dependencies": { + "@mysten/sui.js": "^0.50.1", + "axios": "^1.6.7", + "esrun": "^3.2.26", + "tsconfig-paths": "^4.2.0", + "vitest": "^1.3.1" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/periscopic/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dependencies": { + "js-tokens": "^9.0.0" + } + }, + "node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/svelte": { + "version": "4.2.17", + "resolved": "https://registry.npmmirror.com/svelte/-/svelte-4.2.17.tgz", + "integrity": "sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/svelte2tsx": { + "version": "0.7.8", + "resolved": "https://registry.npmmirror.com/svelte2tsx/-/svelte2tsx-0.7.8.tgz", + "integrity": "sha512-ABK3RDFcy59AqAiU1N5Kxu1RnKrb1GDMrQjLgNgJfE8Q+coCKpjCAPtUVKQM2HnmuqeNWcT3NqfXbE+ZmN5Pow==", + "dependencies": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + }, + "peerDependencies": { + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", + "typescript": "^4.9.4 || ^5.0.0" + } + }, + "node_modules/tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==" + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmmirror.com/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "peer": true + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/vite": { + "version": "5.2.11", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.2.11.tgz", + "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "dependencies": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "engines": { + "node": ">=12.20" + } + } + }, + "dependencies": { + "@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "requires": {} + }, + "@0no-co/graphqlsp": { + "version": "1.12.3", + "resolved": "https://registry.npmmirror.com/@0no-co/graphqlsp/-/graphqlsp-1.12.3.tgz", + "integrity": "sha512-U0hV/FmFgm2perV+mrXKe/7Z5F4/9rmOziHJYYQgKLwzUVuN5LQG0qs3cLBGxAqoosG0HfTi2cQkgMKY1CMbYQ==", + "requires": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + } + }, + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "peer": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@babel/parser": { + "version": "7.24.6", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==" + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@digitak/grubber": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/@digitak/grubber/-/grubber-3.1.4.tgz", + "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==" + }, + "@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "optional": true + }, + "@gql.tada/cli-utils": { + "version": "1.3.9", + "resolved": "https://registry.npmmirror.com/@gql.tada/cli-utils/-/cli-utils-1.3.9.tgz", + "integrity": "sha512-oRb7SG/+csx9CiypSJTI21KaLfulOUnhX1vxg4FXi2snub9XShkGR2XnnlJVTAOZXY9Vcxti1NutAElxdDkycA==", + "requires": { + "@0no-co/graphqlsp": "^1.12.1", + "@gql.tada/internal": "1.0.0", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + } + }, + "@gql.tada/internal": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@gql.tada/internal/-/internal-1.0.0.tgz", + "integrity": "sha512-B55aIYyZn5ewdgMqoJciPAwF5DKYX6HBabTU+ap/dpNH3EgJrLomc8Y8w+MCxCyOx+dXL9OduT6eWnVr7J7Eyg==", + "requires": { + "@0no-co/graphql.web": "^1.0.5" + } + }, + "@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "requires": {} + }, + "@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "peer": true, + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "peer": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "peer": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "requires": { + "bs58": "^5.0.0" + } + }, + "@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmmirror.com/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "requires": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + } + }, + "@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "requires": { + "@noble/hashes": "1.4.0" + } + }, + "@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" + }, + "@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "optional": true + }, + "@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "optional": true + }, + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "optional": true + }, + "@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "optional": true + }, + "@scure/base": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/@scure/base/-/base-1.1.6.tgz", + "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==" + }, + "@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "requires": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "requires": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, + "@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "peer": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "requires": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + } + }, + "@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "requires": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + } + }, + "@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "requires": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + } + }, + "@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "requires": { + "tinyspy": "^2.2.0" + } + }, + "@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "requires": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "dependencies": { + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "requires": { + "@types/estree": "^1.0.0" + } + } + } + }, + "@volar/language-core": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.2.5.tgz", + "integrity": "sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==", + "requires": { + "@volar/source-map": "2.2.5" + } + }, + "@volar/source-map": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-2.2.5.tgz", + "integrity": "sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==", + "requires": { + "muggle-string": "^0.4.0" + } + }, + "@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "requires": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "requires": { + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" + } + }, + "@vue/language-core": { + "version": "2.0.19", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-2.0.19.tgz", + "integrity": "sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==", + "requires": { + "@volar/language-core": "~2.2.4", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + } + }, + "@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + }, + "acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==" + }, + "acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==" + }, + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "peer": true, + "requires": { + "dequal": "^2.0.3" + } + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "1.7.2", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "requires": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "peer": true, + "requires": { + "dequal": "^2.0.3" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==" + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "requires": { + "fill-range": "^7.1.1" + } + }, + "bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "requires": { + "base-x": "^4.0.0" + } + }, + "cac": { + "version": "6.7.14", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==" + }, + "chai": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + } + }, + "check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "requires": { + "get-func-name": "^2.0.2" + } + }, + "chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "peer": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + }, + "dependencies": { + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "requires": { + "@types/estree": "^1.0.0" + } + } + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" + }, + "confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==" + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "peer": true, + "requires": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + } + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==" + }, + "deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "requires": { + "type-detect": "^4.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "peer": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==" + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + }, + "esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "requires": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "esrun": { + "version": "3.2.26", + "resolved": "https://registry.npmmirror.com/esrun/-/esrun-3.2.26.tgz", + "integrity": "sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==", + "requires": { + "@digitak/grubber": "^3.1.4", + "chokidar": "^3.5.1", + "esbuild": "^0.17.4" + } + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "execa": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "optional": true + }, + "get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==" + }, + "get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==" + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "gql.tada": { + "version": "1.7.5", + "resolved": "https://registry.npmmirror.com/gql.tada/-/gql.tada-1.7.5.tgz", + "integrity": "sha512-GepPTee+FWSVVZQ7GiJHzsGNo7gOb59kcn4mUPYLlkbpeJfOUwpuoB05ZNaXG0W4qZVPd1I7R2UgMHBjY1lGlQ==", + "requires": { + "@0no-co/graphql.web": "^1.0.5", + "@gql.tada/cli-utils": "1.3.9", + "@gql.tada/internal": "1.0.0" + } + }, + "graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmmirror.com/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==" + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "peer": true, + "requires": { + "@types/estree": "*" + } + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==" + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + }, + "local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "requires": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + } + }, + "locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "peer": true + }, + "loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmmirror.com/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "requires": { + "get-func-name": "^2.0.1" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "peer": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==" + }, + "minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "mlly": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.0.tgz", + "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==", + "requires": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.0", + "ufo": "^1.5.3" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" + }, + "navi-sdk": { + "version": "1.1.21", + "resolved": "https://registry.npmmirror.com/navi-sdk/-/navi-sdk-1.1.21.tgz", + "integrity": "sha512-AumnovQqslq9WSUOrJiILDH/Jh/ygslJS2WNcIIfovG4HpSLx+Q8qKHjg3bydsnnFIr4o0qdPiMb1K2nB8mwMQ==", + "requires": { + "@mysten/sui.js": "^0.50.1", + "axios": "^1.6.7", + "esrun": "^3.2.26", + "tsconfig-paths": "^4.2.0", + "vitest": "^1.3.1" + } + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "requires": { + "path-key": "^4.0.0" + }, + "dependencies": { + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==" + } + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" + }, + "periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "peer": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + }, + "dependencies": { + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "requires": { + "@types/estree": "^1.0.0" + } + } + } + }, + "picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pkg-types": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", + "requires": { + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" + } + }, + "postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + } + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "requires": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "@types/estree": "1.0.5", + "fsevents": "~2.3.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" + }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" + }, + "source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==" + }, + "stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" + }, + "std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==" + }, + "strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "requires": { + "js-tokens": "^9.0.0" + } + }, + "superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==" + }, + "svelte": { + "version": "4.2.17", + "resolved": "https://registry.npmmirror.com/svelte/-/svelte-4.2.17.tgz", + "integrity": "sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==", + "peer": true, + "requires": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "dependencies": { + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "requires": { + "@types/estree": "^1.0.0" + } + } + } + }, + "svelte2tsx": { + "version": "0.7.8", + "resolved": "https://registry.npmmirror.com/svelte2tsx/-/svelte2tsx-0.7.8.tgz", + "integrity": "sha512-ABK3RDFcy59AqAiU1N5Kxu1RnKrb1GDMrQjLgNgJfE8Q+coCKpjCAPtUVKQM2HnmuqeNWcT3NqfXbE+ZmN5Pow==", + "requires": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + } + }, + "tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==" + }, + "tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==" + }, + "tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmmirror.com/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "requires": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, + "typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==" + }, + "ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" + }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "peer": true + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "vite": { + "version": "5.2.11", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.2.11.tgz", + "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", + "requires": { + "esbuild": "^0.20.1", + "fsevents": "~2.3.3", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "optional": true + }, + "esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "requires": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + } + } + }, + "vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "requires": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + } + }, + "vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "requires": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + } + }, + "vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "requires": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==" + } + } +} diff --git a/mover/fantasyni/code/task6/package.json b/mover/fantasyni/code/task6/package.json new file mode 100644 index 000000000..9fdb988b5 --- /dev/null +++ b/mover/fantasyni/code/task6/package.json @@ -0,0 +1,19 @@ +{ + "name": "navisdk", + "type": "module", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "MIT", + "dependencies": { + "navi-sdk": "^1.1.21", + "ts-node": "^10.9.2" + }, + "devDependencies": { + "typescript": "^5.4.5" + } +} diff --git a/mover/fantasyni/readme.md b/mover/fantasyni/readme.md index 569fc882a..e93446e83 100644 --- a/mover/fantasyni/readme.md +++ b/mover/fantasyni/readme.md @@ -25,12 +25,12 @@ - [x] 转账 nft hash: HW6DbD6DH7cWesYS6NBWktB5A3VKMBGshn9PJJswKNgm ## 04 Move Game -- [] game package id : -- [] call game hash: +- [x] game package id : 0x5a2be34793fdb369bd35940fca6ae19db9ce59797685df30c24754d605041b42 +- [x] call game hash: 4xWfuSDm8rEpiiqvqZf14WKqDrPKfhFsUjArUuUMjDRg ## 05 Move Swap -- [] swap package id : -- [] call swap hash: +- [x] swap package id : 0x6ff4219ee3d769b8f24fbc6d0324730d44d79c50cb1e9fc7c643daef2eb8755e +- [x] call swap hash: CVCshVooReCCVwgNTViWKqDqgRcqWTBvAqJiao97gRMe ## 06 SDK PTB -- [] save hash : +- [x] save hash : BHtmbPjWEEsVxU3Sv6A7WLGZj148m3hSz8XhYkBvcby4 diff --git a/mover/fengnian9527/code/task4/test.md b/mover/fengnian9527/code/task4/test.md index 7ce8048c2..01c9ec7a5 100644 --- a/mover/fengnian9527/code/task4/test.md +++ b/mover/fengnian9527/code/task4/test.md @@ -15,7 +15,7 @@ play_coin:0x1f41ea72798403bd02da1301653314ed88f168e0beb944a2fafffae8c54ade79 sui client call --package 0x6398fc0ef890eeabb05ce1862e7c480abd8b5d1c76ab3a6d232f57fc2a1c2731 \ --module guess_number \ --function createPool \ - --gas-budget 100000000 \ + \ --args 0x942549c09dea9e8a6217b77660d11b451f42c5a1c322d0e61e91b7982487ed02 \ --type-args 0x0979c51c937edd8d13be2f1a95ce2f1c0dc6bb02b7b85b2c9f0cccc72eb4adc4::faucetcoin::FAUCETCOIN ``` @@ -26,7 +26,7 @@ sui client call --package 0x6398fc0ef890eeabb05ce1862e7c480abd8b5d1c76ab3a6d232f sui client call --package 0x6398fc0ef890eeabb05ce1862e7c480abd8b5d1c76ab3a6d232f57fc2a1c2731 \ --module guess_number \ --function depoist \ - --gas-budget 100000000 \ + \ --args 0xb688202e23d61afb92c1ef5f39eba467f4ee9f54f41cf65b40ec612d67c445f6 0x49d1314945af2f19ad7d6f008c74bc1a975c648c5fb82f90dbfcdb43a6f4288a \ --type-args 0x0979c51c937edd8d13be2f1a95ce2f1c0dc6bb02b7b85b2c9f0cccc72eb4adc4::faucetcoin::FAUCETCOIN ``` @@ -35,7 +35,7 @@ sui client call --package 0x6398fc0ef890eeabb05ce1862e7c480abd8b5d1c76ab3a6d232f sui client call --package 0x6398fc0ef890eeabb05ce1862e7c480abd8b5d1c76ab3a6d232f57fc2a1c2731\ --module guess_number \ --function play \ - --gas-budget 100000000 \ + \ --args 0x1f41ea72798403bd02da1301653314ed88f168e0beb944a2fafffae8c54ade79 \ 0xb688202e23d61afb92c1ef5f39eba467f4ee9f54f41cf65b40ec612d67c445f6 \ 4 \ @@ -49,7 +49,7 @@ sui client call --package 0x6398fc0ef890eeabb05ce1862e7c480abd8b5d1c76ab3a6d232 sui client call --package 0x6398fc0ef890eeabb05ce1862e7c480abd8b5d1c76ab3a6d232f57fc2a1c2731\ --module guess_number \ --function withdraw \ - --gas-budget 100000000 \ + \ --args 0x942549c09dea9e8a6217b77660d11b451f42c5a1c322d0e61e91b7982487ed02 \ 0xb688202e23d61afb92c1ef5f39eba467f4ee9f54f41cf65b40ec612d67c445f6 \ --type-args 0x0979c51c937edd8d13be2f1a95ce2f1c0dc6bb02b7b85b2c9f0cccc72eb4adc4::faucetcoin::FAUCETCOIN diff --git a/mover/fengnian9527/code/task5/test.md b/mover/fengnian9527/code/task5/test.md index b784f2a13..894a985be 100644 --- a/mover/fengnian9527/code/task5/test.md +++ b/mover/fengnian9527/code/task5/test.md @@ -13,7 +13,7 @@ coin: 0xb86c20ed19982f582ad3eb913cc902c8ac2293b3b44d0d6ac768cb8450db83ca sui client call --package 0x9d3fe26e16b24cbc7298e3502a559110d15bd3a4ba284fe24960f45ffc95ab50 \ --module CoinSwap \ --function createPoool \ - --gas-budget 100000000 \ + \ --type-args 0x0979c51c937edd8d13be2f1a95ce2f1c0dc6bb02b7b85b2c9f0cccc72eb4adc4::faucetcoin::FAUCETCOIN 0x0979c51c937edd8d13be2f1a95ce2f1c0dc6bb02b7b85b2c9f0cccc72eb4adc4::mycoin::MYCOIN ``` @@ -23,7 +23,7 @@ sui client call --package 0x9d3fe26e16b24cbc7298e3502a559110d15bd3a4ba284fe24960 sui client call --package 0x9d3fe26e16b24cbc7298e3502a559110d15bd3a4ba284fe24960f45ffc95ab50 \ --module CoinSwap \ --function depositA \ - --gas-budget 100000000 \ + \ --args 0xb98e23dbdc7673fea4701275683907e4b80b5aa1b124549435f6b4c116657387 0xcec60da46dfc65ad2be9d496de5cf49ea528e512173281ad32cd5a5e88c7e6c5 \ --type-args 0x0979c51c937edd8d13be2f1a95ce2f1c0dc6bb02b7b85b2c9f0cccc72eb4adc4::faucetcoin::FAUCETCOIN 0x0979c51c937edd8d13be2f1a95ce2f1c0dc6bb02b7b85b2c9f0cccc72eb4adc4::mycoin::MYCOIN @@ -35,7 +35,7 @@ sui client call --package 0x9d3fe26e16b24cbc7298e3502a559110d15bd3a4ba284fe24960 sui client call --package 0x9d3fe26e16b24cbc7298e3502a559110d15bd3a4ba284fe24960f45ffc95ab50 \ --module CoinSwap \ --function swapB_to_A \ - --gas-budget 100000000 \ + \ --args 0xb98e23dbdc7673fea4701275683907e4b80b5aa1b124549435f6b4c116657387 0xb86c20ed19982f582ad3eb913cc902c8ac2293b3b44d0d6ac768cb8450db83ca \ --type-args 0x0979c51c937edd8d13be2f1a95ce2f1c0dc6bb02b7b85b2c9f0cccc72eb4adc4::faucetcoin::FAUCETCOIN 0x0979c51c937edd8d13be2f1a95ce2f1c0dc6bb02b7b85b2c9f0cccc72eb4adc4::mycoin::MYCOIN diff --git a/mover/fishsalter/code/readme.md b/mover/fishsalter/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/fishsalter/code/task1/hello_move/Move.lock b/mover/fishsalter/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..b724aaa89 --- /dev/null +++ b/mover/fishsalter/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x8b2bbfe5b42a2c5eca314bcdaaea00d9334df9e713dcd57744601a8d7aa9b3f8" +latest-published-id = "0x8b2bbfe5b42a2c5eca314bcdaaea00d9334df9e713dcd57744601a8d7aa9b3f8" +published-version = "1" diff --git a/mover/fishsalter/code/task1/hello_move/Move.toml b/mover/fishsalter/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/fishsalter/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/fishsalter/code/task1/hello_move/sources/hello_move.move b/mover/fishsalter/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..a1be3cdd2 --- /dev/null +++ b/mover/fishsalter/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,20 @@ +module hello_move::hello_move { + + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct HelloMove has key { + id: UID, + text: string::String, + } + + fun init(ctx: &mut TxContext) { + let m = HelloMove { + id: object::new(ctx), + text: string::utf8(b"fishsalter"), + }; + transfer::transfer(m, tx_context::sender(ctx)); + } +} diff --git a/mover/fishsalter/code/task1/hello_move/tests/hello_move_tests.move b/mover/fishsalter/code/task1/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/fishsalter/code/task1/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/fishsalter/code/task2/Move.lock b/mover/fishsalter/code/task2/Move.lock new file mode 100644 index 000000000..2a0715469 --- /dev/null +++ b/mover/fishsalter/code/task2/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E7A65BF39B740E195045E87B46B06936199C063AFE29D8948B9C6B9B853033A8" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xb8dc686ca86405a8e12e831ca0d4718b5efecf290db2214c3af5f56cb6cabb7a" +latest-published-id = "0xb8dc686ca86405a8e12e831ca0d4718b5efecf290db2214c3af5f56cb6cabb7a" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x5c3a506600b897784bb53e287f80e5f4fae65d6ac4e0936dcf0a8de829879669" +latest-published-id = "0x5c3a506600b897784bb53e287f80e5f4fae65d6ac4e0936dcf0a8de829879669" +published-version = "1" diff --git a/mover/fishsalter/code/task2/Move.toml b/mover/fishsalter/code/task2/Move.toml new file mode 100644 index 000000000..6a6098d99 --- /dev/null +++ b/mover/fishsalter/code/task2/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task2" +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] +task2 = "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/fishsalter/code/task2/sources/faucet_coin.move b/mover/fishsalter/code/task2/sources/faucet_coin.move new file mode 100644 index 000000000..d3217272c --- /dev/null +++ b/mover/fishsalter/code/task2/sources/faucet_coin.move @@ -0,0 +1,33 @@ +module task2::faucet_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + + public struct FAUCET_COIN has drop {} + + fun init(witness: FAUCET_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"FISHSALTER_FAUCET_COIN", + b"FISHSALTER_FAUCET_COIN", + b"fishsalter faucet coin", + option::none(), + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury_cap); + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} diff --git a/mover/fishsalter/code/task2/sources/fishsalter_coin.move b/mover/fishsalter/code/task2/sources/fishsalter_coin.move new file mode 100644 index 000000000..6d6770d30 --- /dev/null +++ b/mover/fishsalter/code/task2/sources/fishsalter_coin.move @@ -0,0 +1,37 @@ +module task2::fishsalter_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + + public struct FISHSALTER_COIN has drop {} + + fun init(witness: FISHSALTER_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 6, + b"FISHSALTER_COIN", + b"FISHSALTER_COIN", + b"fishsalter coin", + option::none(), + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } + +} diff --git a/mover/fishsalter/code/task2/tests/task2_tests.move b/mover/fishsalter/code/task2/tests/task2_tests.move new file mode 100644 index 000000000..81e8c886d --- /dev/null +++ b/mover/fishsalter/code/task2/tests/task2_tests.move @@ -0,0 +1,19 @@ +/* +#[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 + } +} +*/ diff --git a/mover/fishsalter/images/task1-0.png b/mover/fishsalter/images/task1-0.png new file mode 100644 index 000000000..8b1567036 Binary files /dev/null and b/mover/fishsalter/images/task1-0.png differ diff --git a/mover/fishsalter/images/task1-1.png b/mover/fishsalter/images/task1-1.png new file mode 100644 index 000000000..37df7c4a4 Binary files /dev/null and b/mover/fishsalter/images/task1-1.png differ diff --git a/mover/fishsalter/images/task7.png b/mover/fishsalter/images/task7.png new file mode 100644 index 000000000..1b6dfc26f Binary files /dev/null and b/mover/fishsalter/images/task7.png differ diff --git a/mover/fishsalter/notes/readme.md b/mover/fishsalter/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/fishsalter/readme.md b/mover/fishsalter/readme.md new file mode 100644 index 000000000..38cc42c8a --- /dev/null +++ b/mover/fishsalter/readme.md @@ -0,0 +1,55 @@ +## 基本信息 +- Sui钱包地址: `0x9c94a8e7aef098f4aba15ff84202d21207f39ee5948eb4620398d284a6f9dcb4` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `fishsalter` + +## 个人简介 +- 工作经验: 3年 +- 技术栈: `Rust` `Go` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `@fishsalter` + +## 任务 + +## 01 hello move +- [x] Sui cli version: `sui 1.27.0-e5f080922d56` +- [x] Sui钱包截图: ![Sui钱包截图](./images/task1-0.png) +- [x] package id: `0x8b2bbfe5b42a2c5eca314bcdaaea00d9334df9e713dcd57744601a8d7aa9b3f8` +- [x] package id 在 scan上的查看截图:![Scan截图](./images/task1-1.png) + +## 02 move coin +- [x] My Coin package id : 0x5c3a506600b897784bb53e287f80e5f4fae65d6ac4e0936dcf0a8de829879669 +- [x] Faucet package id : 0x5c3a506600b897784bb53e287f80e5f4fae65d6ac4e0936dcf0a8de829879669 +- [x] 转账 `My Coin` hash: 7T7QNdEFoaUe5p8FJpz4UdGXngPtPfNCkfCoKXVm7sqg +- [x] `Faucet Coin` address1 mint hash: ArtRr2QNAhDCWZAHy1KK5kuk3JdXrfA4vAg6Cw59TMtk +- [x] `Faucet Coin` address2 mint hash: BbAibUhxuJCnKoSfdug5KXKje3HqUincfkxxUBSuYBdf + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/task7.png) +- [x] flag hash : 2UGD8a5KmzrARjKxzgQjSbiT4WrLh7GRr7qyvyTTPEkF + +## 08 Move CTF Lets Move +- [x] proof : 28372318 +- [x] flag hash : 0000000399b6c1251f39f4e97437b11c9cf067a9b253e053cb41249b5161f817 +- digest: 8eLAKbcQsYHgHrihHL8xuZ2hyu3NMoVhuyjjY36NYNb diff --git a/mover/flytam/code/readme.md b/mover/flytam/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/flytam/code/task1/Move.lock b/mover/flytam/code/task1/Move.lock new file mode 100644 index 000000000..f32139691 --- /dev/null +++ b/mover/flytam/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E03D8CCB139FD5AAA6C3DF53281A5C2A7267CEEDE876153DF254B492715959CB" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x31e400931ee4822f29bdbe1d53e1586e97511e4b5238c67d58f685dc420ec97f" +latest-published-id = "0x31e400931ee4822f29bdbe1d53e1586e97511e4b5238c67d58f685dc420ec97f" +published-version = "1" diff --git a/mover/flytam/code/task1/Move.toml b/mover/flytam/code/task1/Move.toml new file mode 100644 index 000000000..ade8a6442 --- /dev/null +++ b/mover/flytam/code/task1/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "hello_move" +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/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] +hello_move = "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/flytam/code/task1/sources/hello_move.move b/mover/flytam/code/task1/sources/hello_move.move new file mode 100644 index 000000000..a5fe9ca02 --- /dev/null +++ b/mover/flytam/code/task1/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"flytam"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/flytam/code/task1/tests/hello_move_tests.move b/mover/flytam/code/task1/tests/hello_move_tests.move new file mode 100644 index 000000000..07ea8bb3f --- /dev/null +++ b/mover/flytam/code/task1/tests/hello_move_tests.move @@ -0,0 +1,17 @@ +// #[test_only] +// module hello_move::hello_move_tests { +// // uncomment this line to import the module +// // use hello_move::hello_move; +// +// const ENotImplemented: u64 = 0; +// +// #[test] +// fun test_hello_move() { +// hello_move::hello_move::hello_move(); +// } +// +// #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] +// fun test_hello_move_fail() { +// abort ENotImplemented +// } +// } diff --git a/mover/flytam/code/task2/flytam_coin/Move.lock b/mover/flytam/code/task2/flytam_coin/Move.lock new file mode 100644 index 000000000..07bfa5b1c --- /dev/null +++ b/mover/flytam/code/task2/flytam_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "3A678E9B25775C8957B09DDAB8E88C26A39C499AAA4D11AAE1C9296FEE65C109" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xe16f7b9c3ddd885d7f0c7c39858515f6c5d9ac0e8f266cfad71ca8cf4370aa1e" +latest-published-id = "0xe16f7b9c3ddd885d7f0c7c39858515f6c5d9ac0e8f266cfad71ca8cf4370aa1e" +published-version = "1" diff --git a/mover/flytam/code/task2/flytam_coin/Move.toml b/mover/flytam/code/task2/flytam_coin/Move.toml new file mode 100644 index 000000000..35af4cfab --- /dev/null +++ b/mover/flytam/code/task2/flytam_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "flytam_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://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] +flytam_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/flytam/code/task2/flytam_coin/sources/flytam_coin.move b/mover/flytam/code/task2/flytam_coin/sources/flytam_coin.move new file mode 100644 index 000000000..eadd818ba --- /dev/null +++ b/mover/flytam/code/task2/flytam_coin/sources/flytam_coin.move @@ -0,0 +1,32 @@ + +/// Module: flytam_coin +module flytam_coin::flytam_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + public struct FLYTAM_COIN has drop {} + fun init(witness: FLYTAM_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, // 6 decimal places + b"flytam coin", // symbol + b"flytam coin", // name + b"Awesome Coint", // description + option:: none(), // icon + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} + diff --git a/mover/flytam/code/task2/flytam_faucet/Move.lock b/mover/flytam/code/task2/flytam_faucet/Move.lock new file mode 100644 index 000000000..1336f705e --- /dev/null +++ b/mover/flytam/code/task2/flytam_faucet/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2020BF81E1C851EB1DACF5C6201EB252530D93C6E7652E6034F3048CDCA0F183" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x8e6c8ca1d22ddc708c82e5793e7c7aa8fb6e23827df7ad0d74469e4646a040e7" +latest-published-id = "0x8e6c8ca1d22ddc708c82e5793e7c7aa8fb6e23827df7ad0d74469e4646a040e7" +published-version = "1" diff --git a/mover/flytam/code/task2/flytam_faucet/Move.toml b/mover/flytam/code/task2/flytam_faucet/Move.toml new file mode 100644 index 000000000..e841cea57 --- /dev/null +++ b/mover/flytam/code/task2/flytam_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "flytam_faucet" +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] +flytam_faucet = "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/flytam/code/task2/flytam_faucet/sources/flytam_faucet.move b/mover/flytam/code/task2/flytam_faucet/sources/flytam_faucet.move new file mode 100644 index 000000000..2d54d8b48 --- /dev/null +++ b/mover/flytam/code/task2/flytam_faucet/sources/flytam_faucet.move @@ -0,0 +1,48 @@ +/// Module: flytam_faucet +module flytam_faucet::flytam_faucet { + use sui::balance::{Balance}; + use sui::balance; + use sui::coin::{Self, TreasuryCap}; + public struct FLYTAM_FAUCET has drop {} + public struct PublicWallet has key { + id: UID, + coin: Balance, + faucet_amount: u64, + } + const AMOUNT: u64 = 10^12; + const EFaucetDry: u64 = 1; + #[allow(lint(share_owned))] + fun init(witness: FLYTAM_FAUCET, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 10, + b"Flytam Faucet", + b"Flytam Faucet", + b"Meme Coin", + option::none(), + ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + let wallet = PublicWallet { + id: object::new(ctx), + coin: balance::zero(), + faucet_amount: AMOUNT, + }; + transfer::share_object(wallet); + } + public entry fun mint_faucet( + treasury_cap: &mut TreasuryCap, + amount: u64, + wallet: &mut PublicWallet, + ctx: &mut TxContext) { + let coins = coin::mint(treasury_cap, amount, ctx); + balance::join(&mut wallet.coin, coin::into_balance(coins)); + } + public entry fun get_faucet(wallet: &mut PublicWallet, ctx: &mut TxContext) { + let balance_amount = balance::value(&wallet.coin); + assert!(balance_amount >= wallet.faucet_amount, EFaucetDry); + let mint_balance = balance::split(&mut wallet.coin, wallet.faucet_amount); + let faucet_coin = coin::from_balance(mint_balance, ctx); + transfer::public_transfer(faucet_coin, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/flytam/code/task3/nft/Move.lock b/mover/flytam/code/task3/nft/Move.lock new file mode 100644 index 000000000..8296d95ed --- /dev/null +++ b/mover/flytam/code/task3/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9D4FCF5807A34E3110DFBA44AD92FEFEC55EE3DE8CF58F3D302F55D3004E70D1" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x1b226926521da2301f8388e5d4db1e5c57ccb8d3ba122565108c342938a3d707" +latest-published-id = "0x1b226926521da2301f8388e5d4db1e5c57ccb8d3ba122565108c342938a3d707" +published-version = "1" diff --git a/mover/flytam/code/task3/nft/Move.toml b/mover/flytam/code/task3/nft/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/flytam/code/task3/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/flytam/code/task3/nft/sources/nft.move b/mover/flytam/code/task3/nft/sources/nft.move new file mode 100644 index 000000000..19b1a0e00 --- /dev/null +++ b/mover/flytam/code/task3/nft/sources/nft.move @@ -0,0 +1,61 @@ +module nft::nft { + + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"tanjiahui.flytam"), + description: string::utf8(b"tanjiahui.flytam NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/20512530?v=4" + ) + }; + transfer::public_transfer(nft, recipient); + } +} \ No newline at end of file diff --git a/mover/flytam/code/task3/nft/tests/nft_tests.move b/mover/flytam/code/task3/nft/tests/nft_tests.move new file mode 100644 index 000000000..1e3625fad --- /dev/null +++ b/mover/flytam/code/task3/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/flytam/images/nft.png b/mover/flytam/images/nft.png new file mode 100644 index 000000000..c048894d6 Binary files /dev/null and b/mover/flytam/images/nft.png differ diff --git a/mover/flytam/images/sui.png b/mover/flytam/images/sui.png new file mode 100644 index 000000000..28a61b894 Binary files /dev/null and b/mover/flytam/images/sui.png differ diff --git a/mover/flytam/images/sui_scan.png b/mover/flytam/images/sui_scan.png new file mode 100644 index 000000000..fdab6fcfb Binary files /dev/null and b/mover/flytam/images/sui_scan.png differ diff --git a/mover/flytam/images/task7.png b/mover/flytam/images/task7.png new file mode 100644 index 000000000..f4f2bb085 Binary files /dev/null and b/mover/flytam/images/task7.png differ diff --git a/mover/flytam/notes/readme.md b/mover/flytam/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/flytam/readme.md b/mover/flytam/readme.md new file mode 100644 index 000000000..0f56d93a6 --- /dev/null +++ b/mover/flytam/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xb64180f309cd0aff1c7c62084ec1469b874c6adaa402366c10e42bd2d73a3f6a` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `flytam` + +## 个人简介 +- 工作经验: 5年 +- 技术栈: TypeScript/Node +> 重要提示 请认真写自己的简介 +- 前端开发,目前在学习 web3 开发 +- 联系方式: `tanjiahui2015@foxmail.com` + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.27.0-19df63a5441d +- [x] Sui钱包截图: ![Sui钱包截图](./images/sui.png) +- [x] package id: 0x31e400931ee4822f29bdbe1d53e1586e97511e4b5238c67d58f685dc420ec97f +- [x] package id 在 scan上的查看截图:![Scan截图](./images/sui_scan.png) + +## 02 move coin +- [x] My Coin package id : 0xe16f7b9c3ddd885d7f0c7c39858515f6c5d9ac0e8f266cfad71ca8cf4370aa1e +- [x] Faucet package id : 0x8e6c8ca1d22ddc708c82e5793e7c7aa8fb6e23827df7ad0d74469e4646a040e7 +- [x] 转账 `My Coin` hash: D9hssEkGPpx2Q3yYP1TQq3RNDEA27BGRu3H2QTzQFygD +- [x] `Faucet Coin` address1 mint hash: 75rsWhYTzYd9KFuy5W9A56iGdsrxFLpXfzkNgTseiCyv +- [x] `Faucet Coin` address2 mint hash: 7Y1C9sskxXkioi14ZPcFy4SapknFkP2E7CvZY2M84Ei2 + +## 03 move NFT +- [x] nft package id : 0x1b226926521da2301f8388e5d4db1e5c57ccb8d3ba122565108c342938a3d707 +- [x] nft object id : 0x0934ff3bd9058caf8d65d99907e73aa77458e6a5e111173ba42aa28709010c1a +- [x] 转账 nft hash: 6zqKCPPtjiTRcGqYcaiY8yew1gKnzsrT4xbxL3ZwAnAU +- [x] scan上的NFT截图:![Scan截图](./images/nft.png) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/task7.png) +- [x] flag hash : BuJqF376gacwCDW6e3iBgjNzJ5rYum7U1bHRp9PqaeUb + +## 08 Move CTF Lets Move +- [x] proof : 59457696 +- [x] flag hash : 35wfMug2Qqa47EKahjbTwDuyC9s78X9KrXGU76WHWWYS diff --git a/mover/foxmoon/code/readme.md b/mover/foxmoon/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/foxmoon/code/task_01/hello_move/Move.lock b/mover/foxmoon/code/task_01/hello_move/Move.lock new file mode 100644 index 000000000..59beba3e7 --- /dev/null +++ b/mover/foxmoon/code/task_01/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "89394AB8ED83F066E26279B2C842CD9371F7C0605EDF6D32EC2BD964DAD8671A" +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.25.3" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xadc762018ef909e918db3214fea0c1e7130e57501316aa28d25f889fee109332" +latest-published-id = "0xadc762018ef909e918db3214fea0c1e7130e57501316aa28d25f889fee109332" +published-version = "1" diff --git a/mover/foxmoon/code/task_01/hello_move/Move.toml b/mover/foxmoon/code/task_01/hello_move/Move.toml new file mode 100644 index 000000000..663149288 --- /dev/null +++ b/mover/foxmoon/code/task_01/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "0xa7110cb126d5553ff02616f9100cb385db200b2368766903b707b4275baa09c7" + +# 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/foxmoon/code/task_01/hello_move/result.txt b/mover/foxmoon/code/task_01/hello_move/result.txt new file mode 100644 index 000000000..57946a455 --- /dev/null +++ b/mover/foxmoon/code/task_01/hello_move/result.txt @@ -0,0 +1,144 @@ +Transaction Digest: MBc76mJZuvz9PwMPMs9DRc5Vajob29v6rePjsjtFdmn +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xa7110cb126d5553ff02616f9100cb385db200b2368766903b707b4275baa09c7 │ +│ Gas Owner: 0xa7110cb126d5553ff02616f9100cb385db200b2368766903b707b4275baa09c7 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x59eb6217aad7a7dfaab4ea95a46357fecb5b87122feb44e9f79eb98513ff7ec6 │ +│ │ Version: 30259276 │ +│ │ Digest: ApnmfmgCVVRbcVDiHxtCmZAjGVvQDpvdqXBQgwyFFuUo │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xa7110cb126d5553ff02616f9100cb385db200b2368766903b707b4275baa09c7" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ ectkYUCjQF0xDPef4iEf154tKUlxi1YTTRTxjKPBDte/qcc+fvXgchDA5bn1HhSEe9AHa74dV4/mRDCdi+LcAA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: MBc76mJZuvz9PwMPMs9DRc5Vajob29v6rePjsjtFdmn │ +│ Status: Success │ +│ Executed Epoch: 385 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x64623175450829d5f649091d3cf0ee6d3c6c8e0f161aae7e0672096abb838f1b │ +│ │ Owner: Account Address ( 0xa7110cb126d5553ff02616f9100cb385db200b2368766903b707b4275baa09c7 ) │ +│ │ Version: 30259277 │ +│ │ Digest: 534m7v4eNerRvDgser8ECfHJ8LWq72F5hXqVM7HV7ZiY │ +│ └── │ +│ ┌── │ +│ │ ID: 0x7409559a3539f18f81738d6bc02bacf18c9f47f54600c0348e9552d751eaf7d1 │ +│ │ Owner: Account Address ( 0xa7110cb126d5553ff02616f9100cb385db200b2368766903b707b4275baa09c7 ) │ +│ │ Version: 30259277 │ +│ │ Digest: 3pLaTVNvQAdVFZpTA6h5N8jmG8QEGcuLR38hxTcxcSEG │ +│ └── │ +│ ┌── │ +│ │ ID: 0xae9009bd854abbbb5ee6feeefbb583c8c052fa4a8a9ae3e3bd5b7f4a9af10da3 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 7W5RaTFRnVtbVCkH1qDrRz7AXRsJZsVHhBgkiha2TUwS │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x59eb6217aad7a7dfaab4ea95a46357fecb5b87122feb44e9f79eb98513ff7ec6 │ +│ │ Owner: Account Address ( 0xa7110cb126d5553ff02616f9100cb385db200b2368766903b707b4275baa09c7 ) │ +│ │ Version: 30259277 │ +│ │ Digest: 5BL5cymCBaChmAoQPfEWY3HHNgszjn55KQabm1KGLKmG │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x59eb6217aad7a7dfaab4ea95a46357fecb5b87122feb44e9f79eb98513ff7ec6 │ +│ │ Owner: Account Address ( 0xa7110cb126d5553ff02616f9100cb385db200b2368766903b707b4275baa09c7 ) │ +│ │ Version: 30259277 │ +│ │ Digest: 5BL5cymCBaChmAoQPfEWY3HHNgszjn55KQabm1KGLKmG │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 8770400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ 9au69QfQwHHNVKsoW4QinXXmXxzSZMzJHepyoJPdsr9o │ +│ CUntECbqC1YLfYwt5uABPGPx289azU1i1HnCNJeE1oVK │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x64623175450829d5f649091d3cf0ee6d3c6c8e0f161aae7e0672096abb838f1b │ +│ │ Sender: 0xa7110cb126d5553ff02616f9100cb385db200b2368766903b707b4275baa09c7 │ +│ │ Owner: Account Address ( 0xa7110cb126d5553ff02616f9100cb385db200b2368766903b707b4275baa09c7 ) │ +│ │ ObjectType: 0xae9009bd854abbbb5ee6feeefbb583c8c052fa4a8a9ae3e3bd5b7f4a9af10da3::hello::Hello │ +│ │ Version: 30259277 │ +│ │ Digest: 534m7v4eNerRvDgser8ECfHJ8LWq72F5hXqVM7HV7ZiY │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x7409559a3539f18f81738d6bc02bacf18c9f47f54600c0348e9552d751eaf7d1 │ +│ │ Sender: 0xa7110cb126d5553ff02616f9100cb385db200b2368766903b707b4275baa09c7 │ +│ │ Owner: Account Address ( 0xa7110cb126d5553ff02616f9100cb385db200b2368766903b707b4275baa09c7 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 30259277 │ +│ │ Digest: 3pLaTVNvQAdVFZpTA6h5N8jmG8QEGcuLR38hxTcxcSEG │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x59eb6217aad7a7dfaab4ea95a46357fecb5b87122feb44e9f79eb98513ff7ec6 │ +│ │ Sender: 0xa7110cb126d5553ff02616f9100cb385db200b2368766903b707b4275baa09c7 │ +│ │ Owner: Account Address ( 0xa7110cb126d5553ff02616f9100cb385db200b2368766903b707b4275baa09c7 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 30259277 │ +│ │ Digest: 5BL5cymCBaChmAoQPfEWY3HHNgszjn55KQabm1KGLKmG │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xae9009bd854abbbb5ee6feeefbb583c8c052fa4a8a9ae3e3bd5b7f4a9af10da3 │ +│ │ Version: 1 │ +│ │ Digest: 7W5RaTFRnVtbVCkH1qDrRz7AXRsJZsVHhBgkiha2TUwS │ +│ │ Modules: hello │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xa7110cb126d5553ff02616f9100cb385db200b2368766903b707b4275baa09c7 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -8792280 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/foxmoon/code/task_01/hello_move/sources/hello_move.move b/mover/foxmoon/code/task_01/hello_move/sources/hello_move.move new file mode 100644 index 000000000..463a37233 --- /dev/null +++ b/mover/foxmoon/code/task_01/hello_move/sources/hello_move.move @@ -0,0 +1,19 @@ +module 0x0::hello { + use std::ascii::{String, string}; + use sui::object::UID; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key { + id: UID, + say: String, + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id: sui::object::new(ctx), + say: string(b"foxmoon"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/foxmoon/code/task_01/hello_move/tests/hello_move_tests.move b/mover/foxmoon/code/task_01/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/foxmoon/code/task_01/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/foxmoon/images/suirun.png b/mover/foxmoon/images/suirun.png new file mode 100644 index 000000000..5675586ad Binary files /dev/null and b/mover/foxmoon/images/suirun.png differ diff --git a/mover/foxmoon/images/suiwallet.png b/mover/foxmoon/images/suiwallet.png new file mode 100644 index 000000000..940be4e02 Binary files /dev/null and b/mover/foxmoon/images/suiwallet.png differ diff --git a/mover/foxmoon/notes/readme.md b/mover/foxmoon/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/foxmoon/readme.md b/mover/foxmoon/readme.md new file mode 100644 index 000000000..16d395ff6 --- /dev/null +++ b/mover/foxmoon/readme.md @@ -0,0 +1,46 @@ +## 基本信息 +- Sui钱包地址: `0x7865c7cbd6dc262645ba44713f260e62a66ea99d74746e8823658270cb4a4398` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `foxmoon` + +## 个人简介 +- 工作经验: 18年 +- 技术栈: `nextjs``Python``Rust` `C++` +> 重要提示 请认真写自己的简介 +- 多年大数据架构经验,web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `@moon2me` + +## 任务 + +## 01 hello move +- [] Sui cli version:1.25.3 +- [] Sui钱包截图: ![Sui钱包截图](./images/suiwallet.png) +- [] package id: 0xadc762018ef909e918db3214fea0c1e7130e57501316aa28d25f889fee109332 +- [] package id 在 scan上的查看截图:![Scan截图](./images/suirun.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : diff --git a/mover/foxyyyyyyyyyyyyyy/code/1_hello_world.move b/mover/foxyyyyyyyyyyyyyy/code/1_hello_world.move new file mode 100644 index 000000000..2a6301973 --- /dev/null +++ b/mover/foxyyyyyyyyyyyyyy/code/1_hello_world.move @@ -0,0 +1,20 @@ +/// 原本项目里叫hello_world +module hello_world::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_world = Hello { + id:object::new(ctx), + say: string(b"hello foxyyyyyyyyyyyyyy"), + }; + transfer(hello_world, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/foxyyyyyyyyyyyyyy/code/readme.md b/mover/foxyyyyyyyyyyyyyy/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/foxyyyyyyyyyyyyyy/image/account.png b/mover/foxyyyyyyyyyyyyyy/image/account.png new file mode 100644 index 000000000..a917840ab Binary files /dev/null and b/mover/foxyyyyyyyyyyyyyy/image/account.png differ diff --git a/mover/foxyyyyyyyyyyyyyy/image/package_id.png b/mover/foxyyyyyyyyyyyyyy/image/package_id.png new file mode 100644 index 000000000..3a8ded57a Binary files /dev/null and b/mover/foxyyyyyyyyyyyyyy/image/package_id.png differ diff --git a/mover/foxyyyyyyyyyyyyyy/notes/readme.md b/mover/foxyyyyyyyyyyyyyy/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/foxyyyyyyyyyyyyyy/readme.md b/mover/foxyyyyyyyyyyyyyy/readme.md new file mode 100644 index 000000000..df9c8db2b --- /dev/null +++ b/mover/foxyyyyyyyyyyyyyy/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xb847afac9bf0da045eeb61ba9b41f12709bc3a46a589b34a7cd4b2b806856cac` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `foxyyyyyyyyyyyyyy` + +## 个人简介 +- 工作经验: 0.5年 +- 技术栈: `Python` `C++` +> 重要提示 请认真写自己的简介 +- 想通过Move入门区块链,研究研究链游 +- 联系方式: v: `w15327972377` + +## 任务 + +## 01 hello move +- [x] Sui cli version:sui 1.28.3-3781a7e6b56c +- [x] Sui钱包截图: ![Sui钱包截图](./image/account.png) +- [x] package id: 0x63de7a98499bbe42e19ae67dc696d6fa1fdfabc123dfa9ac6afb3c78b8430f7e +- [x] package id 在 scan上的查看截图:![Scan截图](./image/package_id.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/fundgao/notes/task2.md b/mover/fundgao/notes/task2.md index abdbe12a6..b90779d3d 100644 --- a/mover/fundgao/notes/task2.md +++ b/mover/fundgao/notes/task2.md @@ -72,10 +72,10 @@ sui move build ``` 4. 发布 ``` -sui client publish --gas-budget 100000000 +sui client publish # 成功后信息如下: -fund@Fund-Ubuntu:~/Learn/Code/Github/move_coin_sui$ sui client publish --gas-budget 100000000 +fund@Fund-Ubuntu:~/Learn/Code/Github/move_coin_sui$ sui client publish UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git INCLUDING DEPENDENCY Sui INCLUDING DEPENDENCY MoveStdlib @@ -279,7 +279,7 @@ export TO_ADDRESS=0xfb475459e707aedac09d2fa15cff75b87a5dd7aa13e3684a87e739062974 6. 发布者交互 发布者调用`apt`模块,向指定地址转移1个coin ``` -sui client call --package $PACKAGE_ID --module apt --function mint --args $APT_TREASURYCAP 1 $TO_ADDRESS --gas-budget 100000000 +sui client call --package $PACKAGE_ID --module apt --function mint --args $APT_TREASURYCAP 1 $TO_ADDRESS # 成功后信息如下: Transaction Digest: 5Tp7Wjz8M8vcPdsaF4aNLFGqr1SrBBWdJfeBiWjizwAV diff --git a/mover/futuwxq/notes/readme.md b/mover/futuwxq/notes/readme.md index 7699f8c69..87cd8d55e 100644 --- a/mover/futuwxq/notes/readme.md +++ b/mover/futuwxq/notes/readme.md @@ -9,7 +9,7 @@ mac安装sui 直接使用brew安装 1.23.0版本,然后配置测试rpc地址 创建出的项目需要在sources下创建一个move文件,创建一个Hello结构体,has key表示拥有key ablity,每次实例化Hello结构体都会通过 object::new(ctx)创建一个新的id,init方法会在部署时触发。 -最后先通过sui move build构建 看有没有问题,没问题后通过sui client publish --gas-budget 100000000部署到测试网。 +最后先通过sui move build构建 看有没有问题,没问题后通过sui client publish 部署到测试网。 ## 02 move coin diff --git a/mover/fyh2001/code/readme.md b/mover/fyh2001/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/fyh2001/code/task1/hello_move/Move.lock b/mover/fyh2001/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..80e3cc74f --- /dev/null +++ b/mover/fyh2001/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "29687A574A62E70BEF8FC304806C64AA4E79BAEBA3E4B04FA13B3E64D1DE583A" +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.26.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x5f395f211f7f43a4cba1c44c236cb2648cb7681c6b907b1f5d8571fba79d9031" +latest-published-id = "0x5f395f211f7f43a4cba1c44c236cb2648cb7681c6b907b1f5d8571fba79d9031" +published-version = "1" diff --git a/mover/fyh2001/code/task1/hello_move/Move.toml b/mover/fyh2001/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/fyh2001/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/fyh2001/code/task1/hello_move/sources/hello_move.move b/mover/fyh2001/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..b8d5713aa --- /dev/null +++ b/mover/fyh2001/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,23 @@ +module hello_move::hello_move { + use std::string; + use sui::object; + use sui::object::UID; + use sui::transfer; + use sui::tx_context; + use sui::tx_context::TxContext; + + public struct HelloMoveObject has key, store { + id: UID, + /// 被 object 包含的字符串 + text: string::String + } + + public entry fun mint(ctx: &mut TxContext) { + let object = HelloMoveObject { + id: object::new(ctx), + text: string::utf8(b"Hello fyh2001") + }; + transfer::transfer(object, tx_context::sender(ctx)); + } +} + diff --git a/mover/fyh2001/code/task1/hello_move/tests/hello_move_tests.move b/mover/fyh2001/code/task1/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..6db1eea3a --- /dev/null +++ b/mover/fyh2001/code/task1/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/fyh2001/code/task2/fyh2001_coin/Move.lock b/mover/fyh2001/code/task2/fyh2001_coin/Move.lock new file mode 100644 index 000000000..a227de506 --- /dev/null +++ b/mover/fyh2001/code/task2/fyh2001_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "5727531B33702C0DDA344774FDF62136112DD25BE3E2D2C28A581E41DFBFB64F" +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.mainnet] +chain-id = "4c78adac" +original-published-id = "0x21fe0d4c77778143b3c2111ff1d443b0e8baf09272bdb723f156e72962f56be8" +latest-published-id = "0x21fe0d4c77778143b3c2111ff1d443b0e8baf09272bdb723f156e72962f56be8" +published-version = "1" diff --git a/mover/fyh2001/code/task2/fyh2001_coin/Move.toml b/mover/fyh2001/code/task2/fyh2001_coin/Move.toml new file mode 100644 index 000000000..8b2a07229 --- /dev/null +++ b/mover/fyh2001/code/task2/fyh2001_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "fyh2001_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://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] +fyh2001_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/fyh2001/code/task2/fyh2001_coin/sources/fyh2001_coin.move b/mover/fyh2001/code/task2/fyh2001_coin/sources/fyh2001_coin.move new file mode 100644 index 000000000..c69b97457 --- /dev/null +++ b/mover/fyh2001/code/task2/fyh2001_coin/sources/fyh2001_coin.move @@ -0,0 +1,31 @@ + +/// Module: fyh2001_coin +module fyh2001_coin::fyh2001_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + public struct FYH2001_COIN has drop {} + fun init(witness: FYH2001_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, // decimals + b"fyh2001 COIN", // symbol + b"fyh2001 COIN", // name + b"Amazing Coin", // description + option:: none(), // icon url + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} diff --git a/mover/fyh2001/code/task2/fyh2001_coin/tests/fyh2001_coin_test.move b/mover/fyh2001/code/task2/fyh2001_coin/tests/fyh2001_coin_test.move new file mode 100644 index 000000000..34238253b --- /dev/null +++ b/mover/fyh2001/code/task2/fyh2001_coin/tests/fyh2001_coin_test.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module fyh2001_coin::fyh2001_coin_tests { + // uncomment this line to import the module + // use fyh2001_coin::fyh2001_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_fyh2001_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::fyh2001_coin::fyh2001_coin_tests::ENotImplemented)] + fun test_fyh2001_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/fyh2001/code/task2/fyh2001_faucet/Move.lock b/mover/fyh2001/code/task2/fyh2001_faucet/Move.lock new file mode 100644 index 000000000..3cb1ef72b --- /dev/null +++ b/mover/fyh2001/code/task2/fyh2001_faucet/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C17605F16D96F0CDF4F20CF61E9BE9D3E7146A1128316280E2143342095019FA" +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.mainnet] +chain-id = "4c78adac" +original-published-id = "0x5c1cc812361e8334abc1e018b3739c304f1ea3bf93cc45193b3fa1bf04ffb751" +latest-published-id = "0x5c1cc812361e8334abc1e018b3739c304f1ea3bf93cc45193b3fa1bf04ffb751" +published-version = "1" diff --git a/mover/fyh2001/code/task2/fyh2001_faucet/Move.toml b/mover/fyh2001/code/task2/fyh2001_faucet/Move.toml new file mode 100644 index 000000000..c0112e68d --- /dev/null +++ b/mover/fyh2001/code/task2/fyh2001_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "fyh2001_faucet" +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] +fyh2001_faucet = "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/fyh2001/code/task2/fyh2001_faucet/sources/fyh2001_faucet.move b/mover/fyh2001/code/task2/fyh2001_faucet/sources/fyh2001_faucet.move new file mode 100644 index 000000000..c6109d1cb --- /dev/null +++ b/mover/fyh2001/code/task2/fyh2001_faucet/sources/fyh2001_faucet.move @@ -0,0 +1,48 @@ +/// Module: fyh2001_faucet +module fyh2001_faucet::fyh2001_faucet { + use sui::balance::{Balance}; + use sui::balance; + use sui::coin::{Self, TreasuryCap}; + public struct FYH2001_FAUCET has drop {} + public struct PublicWallet has key { + id: UID, + coin: Balance, + faucet_amount: u64, + } + const AMOUNT: u64 = 10^12; + const EFaucetDry: u64 = 1; + #[allow(lint(share_owned))] + fun init(witness: FYH2001_FAUCET, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 10, + b"Fyh2001 Faucet", + b"Fyh2001 Faucet", + b"Get some free coin", + option::none(), + ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + let wallet = PublicWallet { + id: object::new(ctx), + coin: balance::zero(), + faucet_amount: AMOUNT, + }; + transfer::share_object(wallet); + } + public entry fun mint_faucet( + treasury_cap: &mut TreasuryCap, + amount: u64, + wallet: &mut PublicWallet, + ctx: &mut TxContext) { + let coins = coin::mint(treasury_cap, amount, ctx); + balance::join(&mut wallet.coin, coin::into_balance(coins)); + } + public entry fun get_faucet(wallet: &mut PublicWallet, ctx: &mut TxContext) { + let balance_amount = balance::value(&wallet.coin); + assert!(balance_amount >= wallet.faucet_amount, EFaucetDry); + let mint_balance = balance::split(&mut wallet.coin, wallet.faucet_amount); + let faucet_coin = coin::from_balance(mint_balance, ctx); + transfer::public_transfer(faucet_coin, tx_context::sender(ctx)); + } +} diff --git a/mover/fyh2001/code/task2/fyh2001_faucet/tests/fyh2001_faucet_test.move b/mover/fyh2001/code/task2/fyh2001_faucet/tests/fyh2001_faucet_test.move new file mode 100644 index 000000000..611052a25 --- /dev/null +++ b/mover/fyh2001/code/task2/fyh2001_faucet/tests/fyh2001_faucet_test.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module fyh2001_faucet::fyh2001_faucet_tests { + // uncomment this line to import the module + // use fyh2001_faucet::fyh2001_faucet; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_fyh2001_faucet() { + // pass + } + + #[test, expected_failure(abort_code = ::fyh2001_faucet::fyh2001_faucet_tests::ENotImplemented)] + fun test_fyh2001_faucet_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/fyh2001/code/task7/check_in/Move.lock b/mover/fyh2001/code/task7/check_in/Move.lock new file mode 100644 index 000000000..5a3c80829 --- /dev/null +++ b/mover/fyh2001/code/task7/check_in/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "985592830698B83A046D05D5943901382ACEF5EFBD095F1265E6AB43BE09801D" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.26.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x60695ee31f93add1f79909c884a55dff7e5f140bbd2e495819966bd2f7971d42" +latest-published-id = "0x60695ee31f93add1f79909c884a55dff7e5f140bbd2e495819966bd2f7971d42" +published-version = "1" diff --git a/mover/fyh2001/code/task7/check_in/Move.toml b/mover/fyh2001/code/task7/check_in/Move.toml new file mode 100644 index 000000000..3e11a52d3 --- /dev/null +++ b/mover/fyh2001/code/task7/check_in/Move.toml @@ -0,0 +1,36 @@ +[package] +name = "check_in" +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/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] +check_in = "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" \ No newline at end of file diff --git a/mover/fyh2001/code/task7/check_in/sources/check_in.move b/mover/fyh2001/code/task7/check_in/sources/check_in.move new file mode 100644 index 000000000..4d76aa28b --- /dev/null +++ b/mover/fyh2001/code/task7/check_in/sources/check_in.move @@ -0,0 +1,77 @@ +module check_in::check_in { + use std::ascii::{String, string}; + use std::string; + use std::vector; + use sui::event; + use sui::object; + use sui::random; + use sui::random::Random; + use sui::transfer::share_object; + use sui::tx_context::{Self, TxContext}; + + const ESTRING: u64 = 0; + + public struct Flag has copy, drop { + sender: address, + flag: bool, + ture_num: u64, + github_id: String + } + + + public struct FlagString has key { + id: UID, + str: String, + ture_num: u64 + } + + fun init(ctx: &mut TxContext) { + let flag_str = FlagString { + id: object::new(ctx), + str: string(b"LetsMoveCTF"), + ture_num: 0 + }; + share_object(flag_str); + } + + + entry fun get_flag( + flag: vector, + github_id: String, + flag_str: &mut FlagString, + rand: &Random, + ctx: &mut TxContext + ) { + let mut bcs_flag = bcs::to_bytes(&flag_str.str); + vector::append(&mut bcs_flag, *github_id.as_bytes()); + + assert!(flag == sha3_256(bcs_flag), ESTRING); + + flag_str.str = getRandomString(rand, ctx); + + flag_str.ture_num = flag_str.ture_num + 1; + + event::emit(Flag { + sender: tx_context::sender(ctx), + flag: true, + ture_num: flag_str.ture_num, + github_id + }); + } + + + fun getRandomString(rand: &Random, ctx: &mut TxContext): String { + let mut gen = random::new_generator(rand, ctx); + + let mut str_len = random::generate_u8_in_range(&mut gen, 4, 30); + + let mut rand: vector = b""; + while (str_len != 0) { + let rand_num = random::generate_u8_in_range(&mut gen, 34, 126); + vector::push_back(&mut rand, rand_num); + str_len = str_len - 1; + }; + + string(rand) + } +} \ No newline at end of file diff --git a/mover/fyh2001/code/task7/check_in/tests/check_in_tests.move b/mover/fyh2001/code/task7/check_in/tests/check_in_tests.move new file mode 100644 index 000000000..1bee8375c --- /dev/null +++ b/mover/fyh2001/code/task7/check_in/tests/check_in_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module check_in::check_in_tests { + // uncomment this line to import the module + // use check_in::check_in; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_check_in() { + // pass + } + + #[test, expected_failure(abort_code = ::check_in::check_in_tests::ENotImplemented)] + fun test_check_in_fail() { + abort ENotImplemented + } +} +*/ \ No newline at end of file diff --git a/mover/fyh2001/code/task8/lets_move/Move.lock b/mover/fyh2001/code/task8/lets_move/Move.lock new file mode 100644 index 000000000..da0ecb91e --- /dev/null +++ b/mover/fyh2001/code/task8/lets_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E1285BBC5CD93FFFE2710251F35E17A5C2EE5FFDEB31279CE4236C68BDE6B1EA" +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 = "0xf2502b8510d877fa5f7f7feacdcbb0d8a4ff01831296525a5383cea6d33c4da3" +latest-published-id = "0xf2502b8510d877fa5f7f7feacdcbb0d8a4ff01831296525a5383cea6d33c4da3" +published-version = "1" diff --git a/mover/fyh2001/code/task8/lets_move/Move.toml b/mover/fyh2001/code/task8/lets_move/Move.toml new file mode 100644 index 000000000..84094e6a3 --- /dev/null +++ b/mover/fyh2001/code/task8/lets_move/Move.toml @@ -0,0 +1,36 @@ +[package] +name = "lets_move" +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] +lets_move = "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" \ No newline at end of file diff --git a/mover/fyh2001/code/task8/lets_move/sources/lets_move.move b/mover/fyh2001/code/task8/lets_move/sources/lets_move.move new file mode 100644 index 000000000..53f609b9a --- /dev/null +++ b/mover/fyh2001/code/task8/lets_move/sources/lets_move.move @@ -0,0 +1,86 @@ +module lets_move::lets_move { + use std::ascii::{String, string}; + use std::hash; + use sui::event; + use sui::bcs; + use sui::random; + use sui::random::Random; + use sui::transfer::share_object; + + const EPROOF: u64 = 0; + + public struct Flag has copy, drop { + sender: address, + flag: bool, + ture_num: u64, + github_id: String + } + + public struct Challenge has key { + id: UID, + str: String, + difficulity: u64, + ture_num: u64 + } + + fun init(ctx: &mut TxContext) { + let flag_str = Challenge { + id: object::new(ctx), + str: string(b"LetsMoveCTF"), + difficulity: 3, + ture_num: 0, + }; + share_object(flag_str); + } + + + entry fun get_flag( + proof: vector, + github_id: String, + challenge: &mut Challenge, + rand: &Random, + ctx: &mut TxContext + ) { + let mut full_proof: vector = vector::empty(); + vector::append(&mut full_proof, proof); + vector::append(&mut full_proof, tx_context::sender(ctx).to_bytes()); + vector::append(&mut full_proof, bcs::to_bytes(challenge)); + + let hash: vector = hash::sha3_256(full_proof); + + let mut prefix_sum: u32 = 0; + let mut i: u64 = 0; + while (i < challenge.difficulity) { + prefix_sum = prefix_sum + (*vector::borrow(&hash, i) as u32); + i = i + 1; + }; + + assert!(prefix_sum == 0, EPROOF); + + challenge.str = getRandomString(rand, ctx); + challenge.ture_num = challenge.ture_num + 1; + + event::emit(Flag { + sender: tx_context::sender(ctx), + flag: true, + ture_num: challenge.ture_num, + github_id + }); + } + + + fun getRandomString(rand: &Random, ctx: &mut TxContext): String { + let mut gen = random::new_generator(rand, ctx); + + let mut str_len = random::generate_u8_in_range(&mut gen, 4, 30); + + let mut rand: vector = b""; + while (str_len != 0) { + let rand_num = random::generate_u8_in_range(&mut gen, 34, 126); + vector::push_back(&mut rand, rand_num); + str_len = str_len - 1; + }; + + string(rand) + } +} \ No newline at end of file diff --git a/mover/fyh2001/code/task8/lets_move/tests/lets_move_tests.move b/mover/fyh2001/code/task8/lets_move/tests/lets_move_tests.move new file mode 100644 index 000000000..b90843d44 --- /dev/null +++ b/mover/fyh2001/code/task8/lets_move/tests/lets_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module lets_move::lets_move_tests { + // uncomment this line to import the module + // use lets_move::lets_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_lets_move() { + // pass + } + + #[test, expected_failure(abort_code = ::lets_move::lets_move_tests::ENotImplemented)] + fun test_lets_move_fail() { + abort ENotImplemented + } +} +*/ \ No newline at end of file diff --git a/mover/fyh2001/notes/readme.md b/mover/fyh2001/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/fyh2001/notes/task7/image.png b/mover/fyh2001/notes/task7/image.png new file mode 100644 index 000000000..7c178cdd6 Binary files /dev/null and b/mover/fyh2001/notes/task7/image.png differ diff --git a/mover/fyh2001/notes/task8/image.png b/mover/fyh2001/notes/task8/image.png new file mode 100644 index 000000000..78e778f93 Binary files /dev/null and b/mover/fyh2001/notes/task8/image.png differ diff --git a/mover/fyh2001/readme.md b/mover/fyh2001/readme.md new file mode 100644 index 000000000..12307bc31 --- /dev/null +++ b/mover/fyh2001/readme.md @@ -0,0 +1,44 @@ +## 基本信息 +- Sui钱包地址: `0x7245ac7492713a33034d05df74dfbe82cc4b06bceaa7441ec20775b47212aae1` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `fyh2001` + +## 个人简介 +- 工作经验: 5年 +- 技术栈: `Rust` `java` `python` `go` +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: email: `325936216@qq.com` + +## 任务 + +## 01 hello move +- [x] package id: 0x5f395f211f7f43a4cba1c44c236cb2648cb7681c6b907b1f5d8571fba79d9031 + +## 02 move coin +- [x] My Coin package id : 0x21fe0d4c77778143b3c2111ff1d443b0e8baf09272bdb723f156e72962f56be8 +- [x] Faucet package id : 0x5c1cc812361e8334abc1e018b3739c304f1ea3bf93cc45193b3fa1bf04ffb751 +- [x] 转账 `My Coin` hash: GJy44YjzRrLwdFCdCnasiDA4buQp7VjqhJs5BHWwg3GJ + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: + +## 04 Move Game +- [] game package id : +- [] call game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap hash: + +## 06 SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图: ![CLI](./notes/task7/image.png) +- [x] flag hash: 7noqrbhrfwqjZ4axsYAnUHBqDCnewnVL3WjYAqUmm58F + +## 08 Move CTF Lets Move +- [x] CLI call 截图: ![CLI](./notes/task8/image.png) +- [x] Transaction block: 4uwn6yeqnMULa8ZFckWQX7aHTvek3aGFRx42Yr3nHnwU diff --git a/mover/fyj1230/code/coin/Move.lock b/mover/fyj1230/code/coin/Move.lock new file mode 100644 index 000000000..6ab2a1376 --- /dev/null +++ b/mover/fyj1230/code/coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "759D5BBA961C7BD0C265B42CE2CE995EB9A05D5E4C74EAF83D084518BD03BB0F" +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.25.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xc60adef0aaa6304737d333161c096ec51077e33cde1074a7a9fdd298a013d391" +latest-published-id = "0xc60adef0aaa6304737d333161c096ec51077e33cde1074a7a9fdd298a013d391" +published-version = "1" diff --git a/mover/fyj1230/code/coin/Move.toml b/mover/fyj1230/code/coin/Move.toml new file mode 100644 index 000000000..71b700d06 --- /dev/null +++ b/mover/fyj1230/code/coin/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "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)"] +published-at = "0xb55889372046c7044dc483b777c70eb215808c44bf64453938758942933de6d9" + +[dependencies] +Sui = { git = "https://github.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] +coin = "0xb55889372046c7044dc483b777c70eb215808c44bf64453938758942933de6d9" + +# 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/fyj1230/code/coin/sources/coin.move b/mover/fyj1230/code/coin/sources/coin.move new file mode 100644 index 000000000..1e75600a0 --- /dev/null +++ b/mover/fyj1230/code/coin/sources/coin.move @@ -0,0 +1,34 @@ +module coin::fyj1230_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct FYJ1230_COIN has drop {} + + fun init(witness: FYJ1230_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"FYJ1230_COIN", + b"fyj1230", + b"virtual coin", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/167277561")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/fyj1230/code/coin/sources/faucet.move b/mover/fyj1230/code/coin/sources/faucet.move new file mode 100644 index 000000000..7926f021f --- /dev/null +++ b/mover/fyj1230/code/coin/sources/faucet.move @@ -0,0 +1,35 @@ +module coin::fyj1230_faucet_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct FYJ1230_FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: FYJ1230_FAUCET_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"FYJ1230_FAUCET", + b"FYJ1230_FAUCET", + b"fyj1230's faucet coin, everyone can access and mutate.", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/167277561")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury_cap) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/fyj1230/code/dappkit/index.html b/mover/fyj1230/code/dappkit/index.html new file mode 100644 index 000000000..190cd3bbe --- /dev/null +++ b/mover/fyj1230/code/dappkit/index.html @@ -0,0 +1,12 @@ + + + + + + dappkit navi ptb + + +
+ + + diff --git a/mover/fyj1230/code/dappkit/package.json b/mover/fyj1230/code/dappkit/package.json new file mode 100644 index 000000000..076a96228 --- /dev/null +++ b/mover/fyj1230/code/dappkit/package.json @@ -0,0 +1,24 @@ +{ + "name": "with-vite", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --port 3000" + }, + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@suiet/wallet-kit": "0.2.24", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tweetnacl": "^1.0.3", + "navi-sdk": "^1.1.21" + }, + "devDependencies": { + "@types/react": "^18.0.22", + "@types/react-dom": "^18.0.7", + "@vitejs/plugin-react": "^2.2.0", + "typescript": "^5.4.3", + "vite": "^3.2.7" + } +} diff --git a/mover/fyj1230/code/dappkit/src/index.css b/mover/fyj1230/code/dappkit/src/index.css new file mode 100644 index 000000000..0bd7f432d --- /dev/null +++ b/mover/fyj1230/code/dappkit/src/index.css @@ -0,0 +1,108 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} + + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} + +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +.card { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 2em; +} + +.read-the-docs { + color: #888; +} + +.btn-group button+button{ + margin-left: 12px; +} \ No newline at end of file diff --git a/mover/fyj1230/code/dappkit/src/main.tsx b/mover/fyj1230/code/dappkit/src/main.tsx new file mode 100644 index 000000000..9f536f683 --- /dev/null +++ b/mover/fyj1230/code/dappkit/src/main.tsx @@ -0,0 +1,113 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import { + WalletProvider, +} from '@suiet/wallet-kit'; +import { + ConnectButton, + useAccountBalance, + useWallet, + ErrorCode, + formatSUI, +} from "@suiet/wallet-kit"; +import './index.css'; +import "@suiet/wallet-kit/style.css"; +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import { depositCoin, borrowCoin } from 'navi-sdk/dist/libs/PTB' +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from 'navi-sdk/dist/address' +import { Sui, USDC } from 'navi-sdk/dist/address'; + +function App() { + const wallet = useWallet(); + const { balance } = useAccountBalance(); + + async function handleNAVISDK() { + if (!wallet.account) return; + const account = wallet.account; + const sender = account.address; + try { + let txb = new TransactionBlock(); + txb.setSender(sender); + + let getCoinInfo = balance; + if (!getCoinInfo) { + throw new Error("Insufficient balance"); + } + + let deposit_amount = 1e9; + let sui_symbol = Sui.symbol; + const pool_sui: PoolConfig = pool[sui_symbol as keyof Pool]; + const [to_deposit] = txb.splitCoins(txb.gas, [deposit_amount]); + await depositCoin(txb, pool_sui, to_deposit, deposit_amount); + + let borrow_amount = 0.053022 * 1e6; + let usdc_symbol = USDC.symbol; + const pool_usdc: PoolConfig = pool[usdc_symbol as keyof Pool]; + const [borrow_coin] = await borrowCoin(txb, pool_usdc, borrow_amount); + + await depositCoin(txb, pool_usdc, borrow_coin, borrow_amount); + + const resData = await wallet.signAndExecuteTransactionBlock({ + transactionBlock: txb, + }); + console.log("transaction digest: " + JSON.stringify(resData)); + } catch (e) { + console.error("Operation failed (see response in the console)", e); + } + } + + return ( +
+
+ { + if (error.code === ErrorCode.WALLET__CONNECT_ERROR__USER_REJECTED) { + console.warn( + "user rejected the connection to " + error.details?.wallet + ); + } else { + console.warn("unknown connect error: ", error); + } + }} + /> + {!wallet.connected ? ( +

Connect wallet from now!

+ ) : ( +
+
+

current wallet: {wallet.adapter?.name}

+

+ wallet status:{" "} + {wallet.connecting + ? "connecting" + : wallet.connected + ? "connected" + : "disconnected"} +

+

current network: {wallet.chain?.name}

+

+ wallet balance:{" "} + {formatSUI(balance ?? 0, { + withAbbr: false, + })}{" "} + SUI +

+
+
+ +
+
+ )} +
+
+ ); +} + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + + + +) \ No newline at end of file diff --git a/mover/fyj1230/code/dappkit/vite.config.ts b/mover/fyj1230/code/dappkit/vite.config.ts new file mode 100644 index 000000000..55ef63119 --- /dev/null +++ b/mover/fyj1230/code/dappkit/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + build: { + target: 'es2020' + }, + optimizeDeps: { + esbuildOptions: { + target: 'es2020', + define: { + global: 'globalThis', + }, + }, + }, +}) diff --git a/mover/fyj1230/code/game/Move.lock b/mover/fyj1230/code/game/Move.lock new file mode 100644 index 000000000..43b5fa4a7 --- /dev/null +++ b/mover/fyj1230/code/game/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "4554113985E6EA210AE01CE985D9E1C3CAD6C234EDD70C961AEF41650A56C0AA" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "coin" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "coin" +source = { local = "../coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.25.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xc8db55d6147b27a33e2a64b23062feec3f563e35e006e1e1fd9ad4a5a5ab7a99" +latest-published-id = "0xc8db55d6147b27a33e2a64b23062feec3f563e35e006e1e1fd9ad4a5a5ab7a99" +published-version = "1" diff --git a/mover/fyj1230/code/game/Move.toml b/mover/fyj1230/code/game/Move.toml new file mode 100644 index 000000000..7a2808b1e --- /dev/null +++ b/mover/fyj1230/code/game/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "game" +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/mainnet" } +coin = { local = "../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] +game = "0x0" +coin = "0xb55889372046c7044dc483b777c70eb215808c44bf64453938758942933de6d9" +# 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/fyj1230/code/game/sources/game.move b/mover/fyj1230/code/game/sources/game.move new file mode 100644 index 000000000..c200bd28e --- /dev/null +++ b/mover/fyj1230/code/game/sources/game.move @@ -0,0 +1,187 @@ +module game::fyj1230_game { + use std::string::{Self, String}; + use sui::clock::{Self, Clock}; + use sui::event; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::tx_context::sender; + use coin::fyj1230_faucet_coin::{Self, FYJ1230_FAUCET_COIN}; + use std::hash; + use std::vector; + + use sui::bcs; + use sui::object; + use sui::tx_context::TxContext; + + const ERR_HIGH_ARG_GREATER_THAN_LOW_ARG: u64 = 101; + const EInvalidNumber: u64 = 0; + const EPoolNotEnough: u64 = 1; + const EInputNotEnough: u64 = 2; + + public struct GameResult has copy, drop { + your_roll: u64, + npc_roll: u64, + result: String, + is_winner: bool, + } + + public struct Game has key { + id: UID, + pool: Balance, + ticket: u64, + reward: u64, + } + + public fun game_pool(game: &Game): u64 { + balance::value(&game.pool) + } + + public fun game_ticket(game: &Game): u64 { + game.ticket + } + + public fun game_reward(game: &Game): u64 { + game.reward + } + + public struct AdminCap has key { + id: UID, + } + + fun init(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + pool: balance::zero(), + ticket: 1_000, + reward: 2_000, + }; + transfer::share_object(game); + + let admin_cap = AdminCap { id: object::new(ctx) }; + transfer::transfer(admin_cap, sender(ctx)); + } + + fun get_random_roll(ctx: &mut TxContext) : u64 { + rand_u64_range(0, 3, ctx) + } + + fun get_random_roll_2(ctx: &mut TxContext) : u64 { + rand_u64_range(0, 3, ctx) + } + + public entry fun play(game: &mut Game, input: Coin, ctx: &mut TxContext) { + + assert!(balance::value(&game.pool) >= game.reward - game.ticket, EPoolNotEnough); + + let input_value = coin::value(&input); + assert!(input_value >= game.ticket, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > game.ticket) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, game.ticket) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + }; + + let player_roll = get_random_roll_2(ctx); + let npc_roll = get_random_roll(ctx); + let (result, is_winner) = if (player_roll > npc_roll) { + (string::utf8(b"Win"), true) + } else if (player_roll == npc_roll) { + (string::utf8(b"Draw"), false) + } else { + (string::utf8(b"Lose"), false) + }; + + if (is_winner) { + let reward_balance = balance::split(&mut game.pool, game.reward); + let reward = coin::from_balance(reward_balance, ctx); + transfer::public_transfer(reward, sender(ctx)); + }; + + event::emit(GameResult { + your_roll: player_roll, + npc_roll: npc_roll, + result, + is_winner, + }); + } + + public entry fun deposit(game: &mut Game, input: Coin, amount: u64, ctx: &mut TxContext) { + let input_value = coin::value(&input); + assert!(input_value >= amount, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > amount) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, amount) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + } + } + + public entry fun withdraw(_: &AdminCap, game: &mut Game, amount: u64, ctx: &mut TxContext) { + let output_balance = balance::split(&mut game.pool, amount); + let output = coin::from_balance(output_balance, ctx); + transfer::public_transfer(output, sender(ctx)); + } + + public entry fun set_ticket(_: &AdminCap, game: &mut Game, ticket: u64, _: &mut TxContext) { + game.ticket = ticket; + } + + public entry fun set_reward(_: &AdminCap, game: &mut Game, reward: u64, _: &mut TxContext) { + game.reward = reward; + } + + public entry fun get_faucet_coin(treasury_cap: &mut TreasuryCap, amount: u64, ctx: &mut TxContext) { + fyj1230_faucet_coin::mint(treasury_cap, amount, sender(ctx), ctx); + } + + fun seed(ctx: &mut TxContext): vector { + let ctx_bytes = bcs::to_bytes(ctx); + let uid = object::new(ctx); + let uid_bytes: vector = object::uid_to_bytes(&uid); + object::delete(uid); + + let mut info: vector = vector::empty(); + vector::append(&mut info, ctx_bytes); + vector::append(&mut info, uid_bytes); + + let hash: vector = hash::sha3_256(info); + hash + } + + fun bytes_to_u64(bytes: vector): u64 { + let mut value = 0u64; + let mut i = 0u64; + while (i < 8) { + value = value | ((*vector::borrow(&bytes, i) as u64) << ((8 * (7 - i)) as u8)); + i = i + 1; + }; + return value + } + + fun rand_u64_with_seed(_seed: vector): u64 { + bytes_to_u64(_seed) + } + + fun rand_u64_range_with_seed(_seed: vector, low: u64, high: u64): u64 { + assert!(high > low, ERR_HIGH_ARG_GREATER_THAN_LOW_ARG); + let value = rand_u64_with_seed(_seed); + (value % (high - low)) + low + } + + public fun rand_u64_range(low: u64, high: u64, ctx: &mut TxContext): u64 { + rand_u64_range_with_seed(seed(ctx), low, high) + } +} diff --git a/mover/fyj1230/code/nft/Move.lock b/mover/fyj1230/code/nft/Move.lock new file mode 100644 index 000000000..829acef49 --- /dev/null +++ b/mover/fyj1230/code/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9D4FCF5807A34E3110DFBA44AD92FEFEC55EE3DE8CF58F3D302F55D3004E70D1" +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.25.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x2bbc352ad25968a113a406be478300c445f1155f342afb24b71b8a6478b4d9c3" +latest-published-id = "0x2bbc352ad25968a113a406be478300c445f1155f342afb24b71b8a6478b4d9c3" +published-version = "1" diff --git a/mover/fyj1230/code/nft/Move.toml b/mover/fyj1230/code/nft/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/fyj1230/code/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/fyj1230/code/nft/sources/nft.move b/mover/fyj1230/code/nft/sources/nft.move new file mode 100644 index 000000000..101487cbb --- /dev/null +++ b/mover/fyj1230/code/nft/sources/nft.move @@ -0,0 +1,50 @@ +module nft::yemachinenft { + use std::ascii::String; + use std::string::utf8; + use sui::display; + use sui::object; + use sui::object::{UID}; + use sui::package; + use sui::transfer; + use sui::transfer::public_transfer; + use sui::tx_context; + use sui::tx_context::{TxContext}; + + // otw + public struct YEMACHINENFT has drop {} + + public struct NFT has key,store { + id: UID, + name: String, + } + + fun init(otw: YEMACHINENFT, ctx: &mut sui::tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://avatars.githubusercontent.com/u/167276459"), + ]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values,ctx); + + // update version to 1 + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + // every one can mint + public entry fun mint_to(name: String, recipient: address,ctx: &mut TxContext) { + let nft = NFT{ + id: object::new(ctx), + name, + }; + public_transfer(nft, recipient) + } +} diff --git a/mover/fyj1230/code/swap/Move.lock b/mover/fyj1230/code/swap/Move.lock new file mode 100644 index 000000000..7aa997a7f --- /dev/null +++ b/mover/fyj1230/code/swap/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "954803A4E4D0F3B9D09380C69CD35DA3C00498847713BEC127AC1FC11B5C687C" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.25.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x34c13155276a9ccee1638abc1c25b259e4ce32d3917249386908a115d85f8f2f" +latest-published-id = "0x34c13155276a9ccee1638abc1c25b259e4ce32d3917249386908a115d85f8f2f" +published-version = "1" diff --git a/mover/fyj1230/code/swap/Move.toml b/mover/fyj1230/code/swap/Move.toml new file mode 100644 index 000000000..8f0439c31 --- /dev/null +++ b/mover/fyj1230/code/swap/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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 (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/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] +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" + diff --git a/mover/fyj1230/code/swap/sources/swap.move b/mover/fyj1230/code/swap/sources/swap.move new file mode 100644 index 000000000..175812204 --- /dev/null +++ b/mover/fyj1230/code/swap/sources/swap.move @@ -0,0 +1,199 @@ +module swap::fyj1230_swap { + use sui::object::{Self, UID}; + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply, Balance}; + use sui::transfer; + use sui::math; + use sui::tx_context::{Self, TxContext}; + + const E_ZERO_AMOUNT: u64 = 0; + const E_RESERVES_EMPTY: u64 = 2; + const E_POOL_FULL: u64 = 4; + const FEE_SCALING: u128 = 10000; + const FEE_PERCENT: u128 = 30; + const MAX_POOL_VALUE: u64 = 18446744073709551615 / 10000; + + public struct LSP has drop {} + + public struct Pool has key { + id: UID, + token_a: Balance, + token_b: Balance, + lsp_supply: Supply>, + fee_percent: u64 + } + + fun init(_: &mut TxContext) {} + + entry fun create_pool( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + let fee_percent = FEE_PERCENT as u64; + let token_a_amt = coin::value(&token_a); + let token_b_amt = coin::value(&token_b); + + assert!(token_a_amt > 0 && token_b_amt > 0, E_ZERO_AMOUNT); + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, E_POOL_FULL); + + let share = math::sqrt(token_a_amt) * math::sqrt(token_b_amt); + let mut lsp_supply = balance::create_supply(LSP {}); + let lsp = balance::increase_supply(&mut lsp_supply, share); + + let pool = Pool { + id: object::new(ctx), + token_a: coin::into_balance(token_a), + token_b: coin::into_balance(token_b), + lsp_supply, + fee_percent, + }; + + transfer::share_object(pool); + + transfer::public_transfer( + coin::from_balance(lsp, ctx), + tx_context::sender(ctx) + ); + } + + entry fun add_liquidity( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + assert!(coin::value(&token_a) > 0 && coin::value(&token_b) > 0, E_ZERO_AMOUNT); + + let (token_a_amt, token_b_amt, lsp_supply) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, E_RESERVES_EMPTY); + + let token_a_balance = coin::into_balance(token_a); + let token_b_balance = coin::into_balance(token_b); + let token_a_added = balance::value(&token_a_balance); + let token_b_added = balance::value(&token_b_balance); + + let share_minted = math::min( + (token_a_added * lsp_supply) / token_a_amt, + (token_b_added * lsp_supply) / token_b_amt + ); + + balance::join(&mut pool.token_a, token_a_balance); + balance::join(&mut pool.token_b, token_b_balance); + + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, E_POOL_FULL); + + let lsp = balance::increase_supply(&mut pool.lsp_supply, share_minted); + + transfer::public_transfer( + coin::from_balance(lsp, ctx), + tx_context::sender(ctx) + ) + } + + entry fun remove_liquidity( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ) { + let lsp_amount = coin::value(&lsp); + assert!(lsp_amount > 0, E_ZERO_AMOUNT); + + let (token_a_amt, token_b_amt, total_supply) = get_amounts(pool); + let token_a_share = (token_a_amt * lsp_amount) / total_supply; + let token_b_share = (token_b_amt * lsp_amount) / total_supply; + + balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); + + transfer::public_transfer(coin::take(&mut pool.token_a, token_a_share, ctx), tx_context::sender(ctx)); + transfer::public_transfer(coin::take(&mut pool.token_b, token_b_share, ctx), tx_context::sender(ctx)); + } + + entry fun swap_a_to_b( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ) { + let token_a_amt = coin::value(&token_a); + assert!(token_a_amt > 0, E_ZERO_AMOUNT); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, E_RESERVES_EMPTY); + + let token_b_amt = sell_token_a(pool, token_a_amt); + balance::join(&mut pool.token_a, coin::into_balance(token_a)); + + transfer::public_transfer(coin::take(&mut pool.token_b, token_b_amt, ctx), tx_context::sender(ctx)); + } + + entry fun swap_b_to_a( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ) { + let token_b_amt = coin::value(&token_b); + assert!(token_b_amt > 0, E_ZERO_AMOUNT); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, E_RESERVES_EMPTY); + + let token_a_amt = sell_token_b(pool, token_b_amt); + balance::join(&mut pool.token_b, coin::into_balance(token_b)); + + transfer::public_transfer(coin::take(&mut pool.token_a, token_a_amt, ctx), tx_context::sender(ctx)); + } + + public fun sell_token_a(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_a_amt, + token_b_amt, + pool.fee_percent + ) + } + + public fun sell_token_b(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_b_amt, + token_a_amt, + pool.fee_percent + ) + } + + public fun get_amounts(pool: &Pool): (u64, u64, u64) { + ( + balance::value(&pool.token_a), + balance::value(&pool.token_b), + balance::supply_value(&pool.lsp_supply), + ) + } + + public fun calc_output_amount( + input_amount: u64, + input_reserve: u64, + output_reserve: u64, + fee_percent: u64 + ): u64 { + let ( + input_amount, + input_reserve, + output_reserve, + fee_percent + ) = ( + (input_amount as u128), + (input_reserve as u128), + (output_reserve as u128), + (fee_percent as u128), + ); + + let input_with_fee = input_amount * FEE_SCALING / (FEE_SCALING - fee_percent); + + let total = input_reserve * output_reserve; + let output_amount = output_reserve - total / (input_reserve + input_with_fee); + + (output_amount as u64) + } +} diff --git a/mover/fyj1230/notes/54.png b/mover/fyj1230/notes/54.png new file mode 100644 index 000000000..1a37da613 Binary files /dev/null and b/mover/fyj1230/notes/54.png differ diff --git a/mover/fyj1230/readme.md b/mover/fyj1230/readme.md index 72b43c24b..12011b452 100644 --- a/mover/fyj1230/readme.md +++ b/mover/fyj1230/readme.md @@ -19,28 +19,36 @@ - [x] package id 在 scan上的查看截图:![Scan截图](./notes/53.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 : 0xb55889372046c7044dc483b777c70eb215808c44bf64453938758942933de6d9 +- [x] Faucet package id : 0xb55889372046c7044dc483b777c70eb215808c44bf64453938758942933de6d9 +- [x] 转账 `My Coin` hash: 6j8dnzmXQM61pSKfnGKq3seytPyRzNEMrB6MRpJVNfuy +- [x] `Faucet Coin` address1 mint hash: 3bX18AJ7cMjybbJMw3tHNszvkHaexRhhvhyQVX2vKyTP +- [x] `Faucet Coin` address2 mint hash: 6eeDatrKve2VtmB2QifDNCPe6MViphCA3BSSxtYwUnzW ## 03 move NFT -- [] nft package id : -- [] nft object id : -- [] 转账 nft hash: -- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) +- [x] nft package id : 0x449752fde6a5ac6742e186c9c7ed98cac142b129750e0c053bdfe04dc917203c +- [x] nft object id : 0x6eca257e6258d7ddfd85c84d19f7a04ecf24078a06e24c342223b43d028084df +- [x] 转账 nft hash: B6w5J6NygjGkmhCdY5pr84t8WzqAYoBKakWTLTZpPdyq +- [x] scan上的NFT截图:![Scan截图](./notes/54.jpg) ## 04 Move Game -- [] game package id : -- [] deposit Coin hash: -- [] withdraw `Coin` hash: -- [] play game hash: +- [x] game package id : 0xc8db55d6147b27a33e2a64b23062feec3f563e35e006e1e1fd9ad4a5a5ab7a99 +- [x] deposit Coin hash: 3vKz4FXkcdRLxkd9MhLsbWduXRuxUs7vFKHaMMZBUmm4 +- [x] withdraw `Coin` hash: Bt4iaikKpvbQSQ5Nf9MdfHzrqFLLR93BcSUhF8BwBRyR +- [x] play game hash: 8VPc2w7YKfLwrRJ5senXWN3uMY4VJS6k7umo4Xz38ZRf ## 05 Move Swap -- [] swap package id : -- [] call swap CoinA-> CoinB hash : -- [] call swap CoinB-> CoinA hash : +- [x] swap package id : 0x34c13155276a9ccee1638abc1c25b259e4ce32d3917249386908a115d85f8f2f +- [x] call swap CoinA-> CoinB hash : 3ezfN4unn4ML4HKTzX2thGsYdaS1GxDnrbF4QtVHn59W +- [x] call swap CoinB-> CoinA hash : BJKPPqXRKunM5Ndsqw8H8EcherP8fJMVWgVuPPFiB4sA ## 06 Dapp-kit SDK PTB -- [] save hash : +- [x] save hash : 7vHD9XctZ6kcfapUmFaCZ8CHpcsRFUY8HKTo2zjzMx1Y + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./notes/54.png) +- [x] flag hash : H6rTN42N3WyZHU2DHCizUYRwr319h3MwG65GypqXP6vs + +## 08 Move CTF Lets Move +- [x] proof : 3f306002c8309be9c540 +- [x] flag hash : 27BaJFRk3bPBptrNRMvogDib7N7AxT2n9vFYH3t4r5Gx \ No newline at end of file diff --git a/mover/gaowanlang/code/t2/sources/faucet_coin.sh b/mover/gaowanlang/code/t2/sources/faucet_coin.sh index 07816f79d..c9c2df56f 100644 --- a/mover/gaowanlang/code/t2/sources/faucet_coin.sh +++ b/mover/gaowanlang/code/t2/sources/faucet_coin.sh @@ -2,7 +2,7 @@ export PACKAGE_ID=0xf5fc96c2d88805b5b04194ea78b4fedca229a7a50d32e17321455527dcc6 export TREASURY_CAP_ID=0xaabfdf1cea18431b6ddec1b8c720160d9c730305c49b5c2019c2818621457799 #export RECIPIENT_ADDRESS=0x30e31ca5c530bf113cf8cf5fd3160a3057db6cbe379f0c9db240b5bf90826ac4 export RECIPIENT_ADDRESS=0xbee56cf9521c1184e27925041a64e83143d9a34cc315c3f9184806e29dab6e3f -sui client call --gas-budget 100000000 \ +sui client call \ --package $PACKAGE_ID \ --module faucet_coin \ --function mint \ diff --git a/mover/gaowanlang/code/t2/sources/my_coin.sh b/mover/gaowanlang/code/t2/sources/my_coin.sh index 3878cf6c3..a54a60150 100644 --- a/mover/gaowanlang/code/t2/sources/my_coin.sh +++ b/mover/gaowanlang/code/t2/sources/my_coin.sh @@ -1,7 +1,7 @@ export PACKAGE_ID=0xf5fc96c2d88805b5b04194ea78b4fedca229a7a50d32e17321455527dcc63901 export TREASURY_CAP_ID=0x7e72c9a58e3ffada512f824892d9755c813231664f2b91a793445ea20507e769 export RECIPIENT_ADDRESS=0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 -sui client call --gas-budget 100000000 \ +sui client call \ --package $PACKAGE_ID \ --module my_coin \ --function mint \ diff --git a/mover/gaowanlang/code/t5/sources/t5.move b/mover/gaowanlang/code/t5/sources/t5.move index 3214df511..5ef38f0e2 100644 --- a/mover/gaowanlang/code/t5/sources/t5.move +++ b/mover/gaowanlang/code/t5/sources/t5.move @@ -159,8 +159,8 @@ module t5::gaowanlang_swap { assert!(lsp_value > 0, EZeroAmount); let (pool_a_value, pool_b_value, lsp_supply) = get_amounts(pool); - let a_value = pool_b_value * lsp_value / lsp_supply; - let b_value = pool_a_value * lsp_value / lsp_supply; + let a_value = pool_a_value * lsp_value / lsp_supply; + let b_value = pool_b_value * lsp_value / lsp_supply; //移除LSP供应 balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); ( diff --git a/mover/gaowanlang/code/t6/.gitignore b/mover/gaowanlang/code/t6/.gitignore new file mode 100644 index 000000000..e2a60979c --- /dev/null +++ b/mover/gaowanlang/code/t6/.gitignore @@ -0,0 +1,29 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Exclude IntelliJ files, they will be recreated from the build files. +.idea/* +# But keep dictionaries to have less false positives in spellcheck inspection. +!.idea/dictionaries \ No newline at end of file diff --git a/mover/gaowanlang/code/t6/README.md b/mover/gaowanlang/code/t6/README.md new file mode 100644 index 000000000..0d6babedd --- /dev/null +++ b/mover/gaowanlang/code/t6/README.md @@ -0,0 +1,30 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default { + // other rules... + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + project: ['./tsconfig.json', './tsconfig.node.json'], + tsconfigRootDir: __dirname, + }, +} +``` + +- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked` +- Optionally add `plugin:@typescript-eslint/stylistic-type-checked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list diff --git a/mover/gaowanlang/code/t6/components.json b/mover/gaowanlang/code/t6/components.json new file mode 100644 index 000000000..39a4fd3e8 --- /dev/null +++ b/mover/gaowanlang/code/t6/components.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "default", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.js", + "css": "app/globals.css", + "baseColor": "slate", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils" + } +} diff --git a/mover/gaowanlang/code/t6/eslint.config.js b/mover/gaowanlang/code/t6/eslint.config.js new file mode 100644 index 000000000..853f2a124 --- /dev/null +++ b/mover/gaowanlang/code/t6/eslint.config.js @@ -0,0 +1,4 @@ +// eslint.config.js +import antfu from '@antfu/eslint-config' + +export default antfu() diff --git a/mover/gaowanlang/code/t6/index.html b/mover/gaowanlang/code/t6/index.html new file mode 100644 index 000000000..e4b78eae1 --- /dev/null +++ b/mover/gaowanlang/code/t6/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + TS + + +
+ + + diff --git a/mover/gaowanlang/code/t6/package.json b/mover/gaowanlang/code/t6/package.json new file mode 100644 index 000000000..2dc418a2d --- /dev/null +++ b/mover/gaowanlang/code/t6/package.json @@ -0,0 +1,52 @@ +{ + "name": "ton-game-1", + "type": "module", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview", + "lint": "eslint .", + "lint:fix": "eslint . --fix" + }, + "dependencies": { + "@mysten/dapp-kit": "0.13.2", + "@mysten/sui.js": "0.54.1", + "@radix-ui/react-slot": "^1.0.2", + "@tanstack/react-query": "^5.39.0", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "dayjs": "^1.11.11", + "lucide-react": "^0.379.0", + "navi-sdk": "^1.1.21", + "react": "19.0.0-beta-26f2496093-20240514", + "react-dom": "19.0.0-beta-26f2496093-20240514", + "tailwind-merge": "^2.3.0", + "tailwindcss-animate": "^1.0.7" + }, + "devDependencies": { + "@antfu/eslint-config": "^2.18.1", + "@types/node": "^20.12.12", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@typescript-eslint/eslint-plugin": "^7.2.0", + "@typescript-eslint/parser": "^7.2.0", + "@vitejs/plugin-react": "^4.2.1", + "autoprefixer": "^10.4.19", + "babel-plugin-react-compiler": "0.0.0-experimental-592953e-20240517", + "eslint": "^8.57.0", + "eslint-plugin-react-compiler": "0.0.0-experimental-c8b3f72-20240517", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.6", + "postcss": "^8.4.38", + "tailwindcss": "^3.4.3", + "typescript": "^5.2.2", + "vite": "^5.2.0" + }, + "pnpm": { + "overrides": { + "@mysten/sui.js": "0.54.1" + } + } +} diff --git a/mover/gaowanlang/code/t6/package.json5 b/mover/gaowanlang/code/t6/package.json5 new file mode 100644 index 000000000..2c96cf5d4 --- /dev/null +++ b/mover/gaowanlang/code/t6/package.json5 @@ -0,0 +1,55 @@ +{ + "name": "ton-game-1", + "type": "module", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview", + "lint": "eslint .", + "lint:fix": "eslint . --fix" + }, + "pnpm": { + "overrides": { + // 强行都使用0.54.1版本,避免navi-sdk中使用低版本而造成对象不一致 + "@mysten/sui.js": "0.54.1" + } + }, + "dependencies": { + // 这个似乎和suiet钱包交互有问题 + "@mysten/dapp-kit": "0.13.2", + // 将版本定在0.54.1,和navi-sdk中兼容. + "@mysten/sui.js": "0.54.1", + "navi-sdk": "^1.1.21", + "@radix-ui/react-slot": "^1.0.2", + "@tanstack/react-query": "^5.39.0", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "dayjs": "^1.11.11", + "lucide-react": "^0.379.0", + "react": "19.0.0-beta-26f2496093-20240514", + "react-dom": "19.0.0-beta-26f2496093-20240514", + "tailwind-merge": "^2.3.0", + "tailwindcss-animate": "^1.0.7" + }, + "devDependencies": { + "@antfu/eslint-config": "^2.18.1", + "@types/node": "^20.12.12", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@typescript-eslint/eslint-plugin": "^7.2.0", + "@typescript-eslint/parser": "^7.2.0", + "@vitejs/plugin-react": "^4.2.1", + "autoprefixer": "^10.4.19", + "babel-plugin-react-compiler": "0.0.0-experimental-592953e-20240517", + "eslint": "^8.57.0", + "eslint-plugin-react-compiler": "0.0.0-experimental-c8b3f72-20240517", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.6", + "postcss": "^8.4.38", + "tailwindcss": "^3.4.3", + "typescript": "^5.2.2", + "vite": "^5.2.0" + } +} diff --git a/mover/gaowanlang/code/t6/pnpm-lock.yaml b/mover/gaowanlang/code/t6/pnpm-lock.yaml new file mode 100644 index 000000000..489fc904c --- /dev/null +++ b/mover/gaowanlang/code/t6/pnpm-lock.yaml @@ -0,0 +1,6509 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +overrides: + '@mysten/sui.js': 0.54.1 + +importers: + + .: + dependencies: + '@mysten/dapp-kit': + specifier: 0.13.2 + version: 0.13.2(@tanstack/react-query@5.39.0(react@19.0.0-beta-26f2496093-20240514))(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514)(svelte@4.2.17)(typescript@5.4.5) + '@mysten/sui.js': + specifier: 0.54.1 + version: 0.54.1(svelte@4.2.17)(typescript@5.4.5) + '@radix-ui/react-slot': + specifier: ^1.0.2 + version: 1.0.2(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@tanstack/react-query': + specifier: ^5.39.0 + version: 5.39.0(react@19.0.0-beta-26f2496093-20240514) + class-variance-authority: + specifier: ^0.7.0 + version: 0.7.0 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + dayjs: + specifier: ^1.11.11 + version: 1.11.11 + lucide-react: + specifier: ^0.379.0 + version: 0.379.0(react@19.0.0-beta-26f2496093-20240514) + navi-sdk: + specifier: ^1.1.21 + version: 1.1.21(@types/node@20.12.12)(svelte@4.2.17)(typescript@5.4.5) + react: + specifier: 19.0.0-beta-26f2496093-20240514 + version: 19.0.0-beta-26f2496093-20240514 + react-dom: + specifier: 19.0.0-beta-26f2496093-20240514 + version: 19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514) + tailwind-merge: + specifier: ^2.3.0 + version: 2.3.0 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@3.4.3) + devDependencies: + '@antfu/eslint-config': + specifier: ^2.18.1 + version: 2.18.1(@vue/compiler-sfc@3.4.27)(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react-refresh@0.4.7(eslint@8.57.0))(eslint@8.57.0)(svelte@4.2.17)(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.12)) + '@types/node': + specifier: ^20.12.12 + version: 20.12.12 + '@types/react': + specifier: ^18.3.3 + version: 18.3.3 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.0 + '@typescript-eslint/eslint-plugin': + specifier: ^7.2.0 + version: 7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': + specifier: ^7.2.0 + version: 7.10.0(eslint@8.57.0)(typescript@5.4.5) + '@vitejs/plugin-react': + specifier: ^4.2.1 + version: 4.3.0(vite@5.2.11(@types/node@20.12.12)) + autoprefixer: + specifier: ^10.4.19 + version: 10.4.19(postcss@8.4.38) + babel-plugin-react-compiler: + specifier: 0.0.0-experimental-592953e-20240517 + version: 0.0.0-experimental-592953e-20240517 + eslint: + specifier: ^8.57.0 + version: 8.57.0 + eslint-plugin-react-compiler: + specifier: 0.0.0-experimental-c8b3f72-20240517 + version: 0.0.0-experimental-c8b3f72-20240517(eslint@8.57.0) + eslint-plugin-react-hooks: + specifier: ^4.6.0 + version: 4.6.2(eslint@8.57.0) + eslint-plugin-react-refresh: + specifier: ^0.4.6 + version: 0.4.7(eslint@8.57.0) + postcss: + specifier: ^8.4.38 + version: 8.4.38 + tailwindcss: + specifier: ^3.4.3 + version: 3.4.3 + typescript: + specifier: ^5.2.2 + version: 5.4.5 + vite: + specifier: ^5.2.0 + version: 5.2.11(@types/node@20.12.12) + +packages: + + '@0no-co/graphql.web@1.0.7': + resolution: {integrity: sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + graphql: + optional: true + + '@0no-co/graphqlsp@1.12.3': + resolution: {integrity: sha512-U0hV/FmFgm2perV+mrXKe/7Z5F4/9rmOziHJYYQgKLwzUVuN5LQG0qs3cLBGxAqoosG0HfTi2cQkgMKY1CMbYQ==} + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + typescript: ^5.0.0 + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@antfu/eslint-config@2.18.1': + resolution: {integrity: sha512-6LkzQa96SHt47ZCvAcLJbQLUXmcpl9wI+eo5OeyB2YhHbsUBX7ufT0r4x6fx6Ci2694HRNLl8wY42LUvwidduw==} + hasBin: true + peerDependencies: + '@eslint-react/eslint-plugin': ^1.5.8 + '@prettier/plugin-xml': ^3.4.1 + '@unocss/eslint-plugin': '>=0.50.0' + astro-eslint-parser: ^0.16.3 + eslint: '>=8.40.0' + eslint-plugin-astro: ^0.31.4 + eslint-plugin-format: '>=0.1.0' + eslint-plugin-react-hooks: ^4.6.0 + eslint-plugin-react-refresh: ^0.4.4 + eslint-plugin-solid: ^0.13.2 + eslint-plugin-svelte: '>=2.35.1' + prettier-plugin-astro: ^0.13.0 + prettier-plugin-slidev: ^1.0.5 + svelte-eslint-parser: ^0.33.1 + peerDependenciesMeta: + '@eslint-react/eslint-plugin': + optional: true + '@prettier/plugin-xml': + optional: true + '@unocss/eslint-plugin': + optional: true + astro-eslint-parser: + optional: true + eslint-plugin-astro: + optional: true + eslint-plugin-format: + optional: true + eslint-plugin-react-hooks: + optional: true + eslint-plugin-react-refresh: + optional: true + eslint-plugin-solid: + optional: true + eslint-plugin-svelte: + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-slidev: + optional: true + svelte-eslint-parser: + optional: true + + '@antfu/install-pkg@0.3.3': + resolution: {integrity: sha512-nHHsk3NXQ6xkCfiRRC8Nfrg8pU5kkr3P3Y9s9dKqiuRmBD0Yap7fymNDjGFKeWhZQHqqbCS5CfeMy9wtExM24w==} + + '@antfu/utils@0.7.8': + resolution: {integrity: sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==} + + '@babel/code-frame@7.24.6': + resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.24.6': + resolution: {integrity: sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.24.6': + resolution: {integrity: sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.2.0': + resolution: {integrity: sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg==} + + '@babel/generator@7.24.6': + resolution: {integrity: sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.24.6': + resolution: {integrity: sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.24.6': + resolution: {integrity: sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.24.6': + resolution: {integrity: sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-environment-visitor@7.24.6': + resolution: {integrity: sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-function-name@7.24.6': + resolution: {integrity: sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-hoist-variables@7.24.6': + resolution: {integrity: sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.24.6': + resolution: {integrity: sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.24.6': + resolution: {integrity: sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.24.6': + resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.24.6': + resolution: {integrity: sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.24.6': + resolution: {integrity: sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-replace-supers@7.24.6': + resolution: {integrity: sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-simple-access@7.24.6': + resolution: {integrity: sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-skip-transparent-expression-wrappers@7.24.6': + resolution: {integrity: sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-split-export-declaration@7.24.6': + resolution: {integrity: sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.24.6': + resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.24.6': + resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.24.6': + resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.24.6': + resolution: {integrity: sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.24.6': + resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.24.6': + resolution: {integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-proposal-private-methods@7.18.6': + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-self@7.24.6': + resolution: {integrity: sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-source@7.24.6': + resolution: {integrity: sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/runtime@7.24.6': + resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.24.6': + resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.24.6': + resolution: {integrity: sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.24.6': + resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==} + engines: {node: '>=6.9.0'} + + '@clack/core@0.3.4': + resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} + + '@clack/prompts@0.7.0': + resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} + bundledDependencies: + - is-unicode-supported + + '@digitak/grubber@3.1.4': + resolution: {integrity: sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==} + + '@emotion/hash@0.9.1': + resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} + + '@es-joy/jsdoccomment@0.43.0': + resolution: {integrity: sha512-Q1CnsQrytI3TlCB1IVWXWeqUIPGVEKGaE7IbVdt13Nq/3i0JESAkQQERrfiQkmlpijl+++qyqPgaS31Bvc1jRQ==} + engines: {node: '>=16'} + + '@esbuild/aix-ppc64@0.20.2': + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.17.19': + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.20.2': + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.17.19': + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.20.2': + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.17.19': + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.20.2': + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.17.19': + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.20.2': + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.17.19': + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.20.2': + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.17.19': + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.20.2': + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.17.19': + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.20.2': + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.17.19': + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.20.2': + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.17.19': + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.20.2': + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.17.19': + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.20.2': + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.17.19': + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.20.2': + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.17.19': + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.20.2': + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.17.19': + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.20.2': + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.17.19': + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.20.2': + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.17.19': + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.20.2': + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.17.19': + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.20.2': + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.17.19': + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.20.2': + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.17.19': + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.20.2': + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.17.19': + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.20.2': + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.17.19': + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.20.2': + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.17.19': + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.20.2': + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.17.19': + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.20.2': + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.10.0': + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@8.57.0': + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@floating-ui/core@1.6.2': + resolution: {integrity: sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==} + + '@floating-ui/dom@1.6.5': + resolution: {integrity: sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==} + + '@floating-ui/react-dom@2.1.0': + resolution: {integrity: sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.2': + resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} + + '@gql.tada/cli-utils@1.3.9': + resolution: {integrity: sha512-oRb7SG/+csx9CiypSJTI21KaLfulOUnhX1vxg4FXi2snub9XShkGR2XnnlJVTAOZXY9Vcxti1NutAElxdDkycA==} + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + typescript: ^5.0.0 + + '@gql.tada/internal@1.0.0': + resolution: {integrity: sha512-B55aIYyZn5ewdgMqoJciPAwF5DKYX6HBabTU+ap/dpNH3EgJrLomc8Y8w+MCxCyOx+dXL9OduT6eWnVr7J7Eyg==} + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + typescript: ^5.0.0 + + '@graphql-typed-document-node/core@3.2.0': + resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@humanwhocodes/config-array@0.11.14': + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@24.9.0': + resolution: {integrity: sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==} + engines: {node: '>= 6'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.4.15': + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@jsdevtools/ez-spawn@3.0.4': + resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} + engines: {node: '>=10'} + + '@mysten/bcs@0.11.1': + resolution: {integrity: sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==} + + '@mysten/dapp-kit@0.13.2': + resolution: {integrity: sha512-YO4DTKwF0CiUjiB4As3tnHHbD30/9ZNIe1nXScXCl8KJEe0A0uuoLlTP9y6xVn84VftJGek7WmsIeuEq6wFZ0w==} + peerDependencies: + '@tanstack/react-query': ^5.0.0 + react: '*' + + '@mysten/sui.js@0.54.1': + resolution: {integrity: sha512-TSmGIX7U9O/uS9EKIQdv7/S69KTbBhMJVelXCafJE6IJw8iB9cN9uLu0+uklkBSDrbRmLSEY70jMr3uRFjReIg==} + engines: {node: '>=16'} + + '@mysten/wallet-standard@0.11.6': + resolution: {integrity: sha512-iG/O+Al2oxYb+Cf1si8BzfvEGZoupHWjCxxeJHuk3BQhmaffkDe3JXy6AgCW2u+ZJm/sfO7Uva0Q4FAVt0WMZQ==} + + '@mysten/zksend@0.8.2': + resolution: {integrity: sha512-XsQsxJm3QHjq4CcsR2vwYvmWhWw20AwFfJuDe6wbDGhpMUN91R8A055IVCr4OBmM1+48u0IgTsVyUrYJ4wAa+Q==} + + '@noble/curves@1.4.0': + resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==} + + '@noble/hashes@1.4.0': + resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} + engines: {node: '>= 16'} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@radix-ui/primitive@1.0.1': + resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} + + '@radix-ui/react-arrow@1.0.3': + resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collection@1.0.3': + resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-compose-refs@1.0.1': + resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context@1.0.1': + resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dialog@1.0.5': + resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-direction@1.0.1': + resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dismissable-layer@1.0.5': + resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-dropdown-menu@2.0.6': + resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-focus-guards@1.0.1': + resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-focus-scope@1.0.4': + resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-id@1.0.1': + resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-menu@2.0.6': + resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popper@1.1.3': + resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.0.4': + resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.0.1': + resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@1.0.3': + resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.0.4': + resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.0.2': + resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-callback-ref@1.0.1': + resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.0.1': + resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.0.3': + resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.0.1': + resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.0.1': + resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.0.1': + resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/rect@1.0.1': + resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} + + '@rollup/rollup-android-arm-eabi@4.18.0': + resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.18.0': + resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.18.0': + resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.18.0': + resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.18.0': + resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.18.0': + resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.18.0': + resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.18.0': + resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': + resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.18.0': + resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.18.0': + resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.18.0': + resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.18.0': + resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.18.0': + resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.18.0': + resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.18.0': + resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} + cpu: [x64] + os: [win32] + + '@scure/base@1.1.6': + resolution: {integrity: sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==} + + '@scure/bip32@1.4.0': + resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} + + '@scure/bip39@1.3.0': + resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@stylistic/eslint-plugin-js@2.1.0': + resolution: {integrity: sha512-gdXUjGNSsnY6nPyqxu6lmDTtVrwCOjun4x8PUn0x04d5ucLI74N3MT1Q0UhdcOR9No3bo5PGDyBgXK+KmD787A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' + + '@stylistic/eslint-plugin-jsx@2.1.0': + resolution: {integrity: sha512-mMD7S+IndZo2vxmwpHVTCwx2O1VdtE5tmpeNwgaEcXODzWV1WTWpnsc/PECQKIr/mkLPFWiSIqcuYNhQ/3l6AQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' + + '@stylistic/eslint-plugin-plus@2.1.0': + resolution: {integrity: sha512-S5QAlgYXESJaSBFhBSBLZy9o36gXrXQwWSt6QkO+F0SrT9vpV5JF/VKoh+ojO7tHzd8Ckmyouq02TT9Sv2B0zQ==} + peerDependencies: + eslint: '*' + + '@stylistic/eslint-plugin-ts@2.1.0': + resolution: {integrity: sha512-2ioFibufHYBALx2TBrU4KXovCkN8qCqcb9yIHc0fyOfTaO5jw4d56WW7YRcF3Zgde6qFyXwAN6z/+w4pnmos1g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' + + '@stylistic/eslint-plugin@2.1.0': + resolution: {integrity: sha512-cBBowKP2u/+uE5CzgH5w8pE9VKqcM7BXdIDPIbGt2rmLJGnA6MJPr9vYGaqgMoJFs7R/FzsMQerMvvEP40g2uw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' + + '@suchipi/femver@1.0.0': + resolution: {integrity: sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==} + + '@tanstack/query-core@5.38.0': + resolution: {integrity: sha512-QtkoxvFcu52mNpp3+qOo9H265m3rt83Dgbw5WnNyJvr83cegrQ7zT8haHhL4Rul6ZQkeovxyWbXVW9zI0WYx6g==} + + '@tanstack/react-query@5.39.0': + resolution: {integrity: sha512-zc0WnyEffyTgG+myLv8cY2tJOUT6jOprCiprpbMqylCaCFipSDUPCYCt2AC+qxgk2CFuqiI/fjb1u5/HhLkrPg==} + peerDependencies: + react: ^18.0.0 + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + + '@types/eslint@8.56.10': + resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@1.1.2': + resolution: {integrity: sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/mdast@3.0.15': + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + + '@types/node@20.12.12': + resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/prop-types@15.7.12': + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + + '@types/react-dom@18.3.0': + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + + '@types/react@18.3.3': + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} + + '@types/unist@2.0.10': + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@13.0.12': + resolution: {integrity: sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==} + + '@typescript-eslint/eslint-plugin@7.10.0': + resolution: {integrity: sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@7.10.0': + resolution: {integrity: sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@7.10.0': + resolution: {integrity: sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/type-utils@7.10.0': + resolution: {integrity: sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@7.10.0': + resolution: {integrity: sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/typescript-estree@7.10.0': + resolution: {integrity: sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@7.10.0': + resolution: {integrity: sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + + '@typescript-eslint/visitor-keys@7.10.0': + resolution: {integrity: sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@vanilla-extract/css@1.15.2': + resolution: {integrity: sha512-Bi61iCAtojCuqvV+FYaF5i69vBjuMQJpHPdpgKYyQvx+e2Hp79V0ELglyYOdcyg9Wh0k0MFwgCDipVd7EloTXQ==} + + '@vanilla-extract/dynamic@2.1.1': + resolution: {integrity: sha512-iqf736036ujEIKsIq28UsBEMaLC2vR2DhwKyrG3NDb/fRy9qL9FKl1TqTtBV4daU30Uh3saeik4vRzN8bzQMbw==} + + '@vanilla-extract/private@1.0.5': + resolution: {integrity: sha512-6YXeOEKYTA3UV+RC8DeAjFk+/okoNz/h88R+McnzA2zpaVqTR/Ep+vszkWYlGBcMNO7vEkqbq5nT/JMMvhi+tw==} + + '@vanilla-extract/recipes@0.5.3': + resolution: {integrity: sha512-SPREq1NmaoKuvJeOV0pppOkwy3pWZUoDufsyQ6iHrbkHhAU7XQqG9o0iZSmg5JoVgDLIiOr9djQb0x9wuxig7A==} + peerDependencies: + '@vanilla-extract/css': ^1.0.0 + + '@vitejs/plugin-react@4.3.0': + resolution: {integrity: sha512-KcEbMsn4Dpk+LIbHMj7gDPRKaTMStxxWRkRmxsg/jVdFdJCZWt1SchZcf0M4t8lIKdwwMsEyzhrcOXRrDPtOBw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + + '@vitest/expect@1.6.0': + resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} + + '@vitest/runner@1.6.0': + resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} + + '@vitest/snapshot@1.6.0': + resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} + + '@vitest/spy@1.6.0': + resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} + + '@vitest/utils@1.6.0': + resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} + + '@volar/language-core@2.2.5': + resolution: {integrity: sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==} + + '@volar/source-map@2.2.5': + resolution: {integrity: sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==} + + '@vue/compiler-core@3.4.27': + resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} + + '@vue/compiler-dom@3.4.27': + resolution: {integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==} + + '@vue/compiler-sfc@3.4.27': + resolution: {integrity: sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==} + + '@vue/compiler-ssr@3.4.27': + resolution: {integrity: sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==} + + '@vue/language-core@2.0.19': + resolution: {integrity: sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/shared@3.4.27': + resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==} + + '@wallet-standard/app@1.0.1': + resolution: {integrity: sha512-LnLYq2Vy2guTZ8GQKKSXQK3+FRGPil75XEdkZqE6fiLixJhZJoJa5hT7lXxwe0ykVTt9LEThdTbOpT7KadS26Q==} + engines: {node: '>=16'} + + '@wallet-standard/base@1.0.1': + resolution: {integrity: sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w==} + engines: {node: '>=16'} + + '@wallet-standard/core@1.0.3': + resolution: {integrity: sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==} + engines: {node: '>=16'} + + '@wallet-standard/features@1.0.3': + resolution: {integrity: sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==} + engines: {node: '>=16'} + + '@wallet-standard/wallet@1.0.1': + resolution: {integrity: sha512-qkhJeuQU2afQTZ02yMZE5SFc91Fo3hyFjFkpQglHudENNyiSG0oUKcIjky8X32xVSaumgTZSQUAzpXnCTWHzKQ==} + engines: {node: '>=16'} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + + acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + are-docs-informative@0.0.2: + resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} + engines: {node: '>=14'} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-hidden@1.2.4: + resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} + engines: {node: '>=10'} + + aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + autoprefixer@10.4.19: + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + axios@1.7.2: + resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} + + axobject-query@4.0.0: + resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} + + babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517: + resolution: {integrity: sha512-OjG1SVaeQZaJrqkMFJatg8W/MTow8Ak5rx2SI0ETQBO1XvOk/XZGMbltNCPdFJLKghBYoBjC+Y3Ap/Xr7B01mA==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base-x@4.0.0: + resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==} + + bech32@2.0.0: + resolution: {integrity: sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bs58@5.0.0: + resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==} + + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + caniuse-lite@1.0.30001621: + resolution: {integrity: sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==} + + chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + engines: {node: '>=4'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + + character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + + character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + + check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + + class-variance-authority@0.7.0: + resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} + + clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clsx@2.0.0: + resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} + engines: {node: '>=6'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + code-red@1.0.4: + resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + engines: {node: '>= 12.0.0'} + + computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + core-js-compat@3.37.1: + resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + dayjs@1.11.11: + resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==} + + de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + dedent-js@1.0.1: + resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} + + dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + + deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deep-object-diff@1.1.9: + resolution: {integrity: sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + electron-to-chromium@1.4.783: + resolution: {integrity: sha512-bT0jEz/Xz1fahQpbZ1D7LgmPYZ3iHVY39NcWWro1+hA2IvjiPeaXtfSqrQ+nXjApMvQRE2ASt1itSLRrebHMRQ==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + enhanced-resolve@5.16.1: + resolution: {integrity: sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==} + engines: {node: '>=10.13.0'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-compat-utils@0.5.0: + resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-config-flat-gitignore@0.1.5: + resolution: {integrity: sha512-hEZLwuZjDBGDERA49c2q7vxc8sCGv8EdBp6PQYzGOMcHIgrfG9YOM6s/4jx24zhD+wnK9AI8mgN5RxSss5nClQ==} + + eslint-flat-config-utils@0.2.5: + resolution: {integrity: sha512-iO+yLZtC/LKgACerkpvsZ6NoRVB2sxT04mOpnNcEM1aTwKy+6TsT46PUvrML4y2uVBS6I67hRCd2JiKAPaL/Uw==} + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-merge-processors@0.1.0: + resolution: {integrity: sha512-IvRXXtEajLeyssvW4wJcZ2etxkR9mUf4zpNwgI+m/Uac9RfXHskuJefkHUcawVzePnd6xp24enp5jfgdHzjRdQ==} + peerDependencies: + eslint: '*' + + eslint-plugin-antfu@2.2.0: + resolution: {integrity: sha512-QHzHYP+fyfhSkIdcuT9JZ4rCPuJOoHRE27gglPYHlJ6lxB7pO9i45yAy4aurx/rleBuEC27U4c//1Nwtbasj4Q==} + peerDependencies: + eslint: '*' + + eslint-plugin-command@0.2.3: + resolution: {integrity: sha512-1bBYNfjZg60N2ZpLV5ATYSYyueIJ+zl5yKrTs0UFDdnyu07dNSZ7Xplnc+Wb6SXTdc1sIaoIrnuyhvztcltX6A==} + peerDependencies: + eslint: '*' + + eslint-plugin-es-x@7.6.0: + resolution: {integrity: sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' + + eslint-plugin-eslint-comments@3.2.0: + resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} + engines: {node: '>=6.5.0'} + peerDependencies: + eslint: '>=4.19.1' + + eslint-plugin-import-x@0.5.0: + resolution: {integrity: sha512-C7R8Z4IzxmsoOPMtSzwuOBW5FH6iRlxHR6iTks+MzVlrk3r3TUxokkWTx3ypdj9nGOEP+CG/5e6ebZzHbxgbbQ==} + engines: {node: '>=16'} + peerDependencies: + eslint: ^8.56.0 || ^9.0.0-0 + + eslint-plugin-jsdoc@48.2.6: + resolution: {integrity: sha512-GNk9jtpYmoEVeD/U6yYYmd6T8vSOoPs7CL8ZeX85iD8P3qifDdLQGze6+cw9boobDthmYnnxvIoHrhuSffj09g==} + engines: {node: '>=18'} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-jsonc@2.16.0: + resolution: {integrity: sha512-Af/ZL5mgfb8FFNleH6KlO4/VdmDuTqmM+SPnWcdoWywTetv7kq+vQe99UyQb9XO3b0OWLVuTH7H0d/PXYCMdSg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-markdown@5.0.0: + resolution: {integrity: sha512-kY2u9yDhzvfZ0kmRTsvgm3mTnvZgTSGIIPeHg3yesSx4R5CTCnITUjCPhzCD1MUhNcqHU5Tr6lzx+02EclVPbw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8' + + eslint-plugin-n@17.7.0: + resolution: {integrity: sha512-4Jg4ZKVE4VjHig2caBqPHYNW5na84RVufUuipFLJbgM/G57O6FdpUKJbHakCDJb/yjQuyqVzYWRtU3HNYaZUwg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.23.0' + + eslint-plugin-no-only-tests@3.1.0: + resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} + engines: {node: '>=5.0.0'} + + eslint-plugin-perfectionist@2.10.0: + resolution: {integrity: sha512-P+tdrkHeMWBc55+DZsoDOAftV1WCsEoHaKm6JC7zajFus/syfT4vUPBFb3atGFSuyaVnGQGHlcKpP9X3Q0gH/w==} + peerDependencies: + astro-eslint-parser: ^0.16.0 + eslint: '>=8.0.0' + svelte: '>=3.0.0' + svelte-eslint-parser: ^0.33.0 + vue-eslint-parser: '>=9.0.0' + peerDependenciesMeta: + astro-eslint-parser: + optional: true + svelte: + optional: true + svelte-eslint-parser: + optional: true + vue-eslint-parser: + optional: true + + eslint-plugin-react-compiler@0.0.0-experimental-c8b3f72-20240517: + resolution: {integrity: sha512-cxUTFNMEKiLX6uFaRfrr2GHnB7KUHDMYLjEGzDec82ka6WyBCHg906nGSf3JvVnQKHaBDfUk7Mmv/JMvdgQB8Q==} + engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} + peerDependencies: + eslint: '>=7' + + eslint-plugin-react-hooks@4.6.2: + resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + + eslint-plugin-react-refresh@0.4.7: + resolution: {integrity: sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==} + peerDependencies: + eslint: '>=7' + + eslint-plugin-regexp@2.6.0: + resolution: {integrity: sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==} + engines: {node: ^18 || >=20} + peerDependencies: + eslint: '>=8.44.0' + + eslint-plugin-toml@0.11.0: + resolution: {integrity: sha512-sau+YvPU4fWTjB+qtBt3n8WS87aoDCs+BVbSUAemGaIsRNbvR9uEk+Tt892iLHTGvp/DPWYoCX4/8DoyAbB+sQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-unicorn@53.0.0: + resolution: {integrity: sha512-kuTcNo9IwwUCfyHGwQFOK/HjJAYzbODHN3wP0PgqbW+jbXqpNWxNVpVhj2tO9SixBwuAdmal8rVcWKBxwFnGuw==} + engines: {node: '>=18.18'} + peerDependencies: + eslint: '>=8.56.0' + + eslint-plugin-unused-imports@3.2.0: + resolution: {integrity: sha512-6uXyn6xdINEpxE1MtDjxQsyXB37lfyO2yKGVVgtD7WEWQGORSOZjgrD6hBhvGv4/SO+TOlS+UnC6JppRqbuwGQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': 6 - 7 + eslint: '8' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + + eslint-plugin-vitest@0.5.4: + resolution: {integrity: sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==} + engines: {node: ^18.0.0 || >= 20.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': '*' + eslint: ^8.57.0 || ^9.0.0 + vitest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + vitest: + optional: true + + eslint-plugin-vue@9.26.0: + resolution: {integrity: sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-yml@1.14.0: + resolution: {integrity: sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-processor-vue-blocks@0.1.2: + resolution: {integrity: sha512-PfpJ4uKHnqeL/fXUnzYkOax3aIenlwewXRX8jFinA1a2yCFnLgMuiH3xvCgvHHUlV2xJWQHbCTdiJWGwb3NqpQ==} + peerDependencies: + '@vue/compiler-sfc': ^3.3.0 + eslint: ^8.50.0 || ^9.0.0 + + eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + + espree@10.0.1: + resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + esrun@3.2.26: + resolution: {integrity: sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==} + engines: {node: '>=14.0'} + hasBin: true + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + find-up@7.0.0: + resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} + engines: {node: '>=18'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-tsconfig@4.7.5: + resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.4.1: + resolution: {integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==} + engines: {node: '>=16 || 14 >=14.18'} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.3.0: + resolution: {integrity: sha512-cCdyVjIUVTtX8ZsPkq1oCsOsLmGIswqnjZYMJJTGaNApj1yHtLSymKhwH51ttirREn75z3p4k051clwg7rvNKA==} + engines: {node: '>=18'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + gql.tada@1.7.5: + resolution: {integrity: sha512-GepPTee+FWSVVZQ7GiJHzsGNo7gOb59kcn4mUPYLlkbpeJfOUwpuoB05ZNaXG0W4qZVPd1I7R2UgMHBjY1lGlQ==} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + graphql@16.8.1: + resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + hermes-estree@0.20.1: + resolution: {integrity: sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg==} + + hermes-parser@0.20.1: + resolution: {integrity: sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA==} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + + is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + + is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + + is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + + is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jackspeak@3.1.2: + resolution: {integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==} + engines: {node: '>=14'} + + jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsdoc-type-pratt-parser@4.0.0: + resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} + engines: {node: '>=12.0.0'} + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-eslint-parser@2.4.0: + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lru-cache@10.2.2: + resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} + engines: {node: 14 || >=16.14} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lucide-react@0.379.0: + resolution: {integrity: sha512-KcdeVPqmhRldldAAgptb8FjIunM2x2Zy26ZBh1RsEUcdLIvsEmbcw7KpzFYUy5BbpGeWhPu9Z9J5YXfStiXwhg==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 + + magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + + mdast-util-from-markdown@0.8.5: + resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} + + mdast-util-to-string@2.0.0: + resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + media-query-parser@2.0.2: + resolution: {integrity: sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromark@2.11.4: + resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} + + micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + mlly@1.7.0: + resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} + + modern-ahocorasick@1.0.1: + resolution: {integrity: sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanostores@0.9.5: + resolution: {integrity: sha512-Z+p+g8E7yzaWwOe5gEUB2Ox0rCEeXWYIZWmYvw/ajNYX8DlXdMvMDj8DWfM/subqPAcsf8l8Td4iAwO1DeIIRQ==} + engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} + + natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + navi-sdk@1.1.21: + resolution: {integrity: sha512-AumnovQqslq9WSUOrJiILDH/Jh/ygslJS2WNcIIfovG4HpSLx+Q8qKHjg3bydsnnFIr4o0qdPiMb1K2nB8mwMQ==} + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + + parse-gitignore@2.0.0: + resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} + engines: {node: '>=14'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + + periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + pkg-types@1.1.1: + resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-nested@6.0.1: + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.1.0: + resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + pretty-format@24.9.0: + resolution: {integrity: sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==} + engines: {node: '>= 6'} + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + react-dom@19.0.0-beta-26f2496093-20240514: + resolution: {integrity: sha512-UvQ+K1l3DFQ34LDgfFSNuUGi9EC+yfE9tS6MdpNTd5fx7qC7KLfepfC/KpxWMQZ7JfE3axD4ZO6H4cBSpAZpqw==} + peerDependencies: + react: 19.0.0-beta-26f2496093-20240514 + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + engines: {node: '>=0.10.0'} + + react-remove-scroll-bar@2.3.6: + resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.5.5: + resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-style-singleton@2.2.1: + resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react@19.0.0-beta-26f2496093-20240514: + resolution: {integrity: sha512-ZsU/WjNZ6GfzMWsq2DcGjElpV9it8JmETHm9mAJuOJNhuJcWJxt8ltCJabONFRpDFq1A/DP0d0KFj9CTJVM4VA==} + engines: {node: '>=0.10.0'} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + refa@0.12.1: + resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regexp-ast-analysis@0.7.1: + resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + + rollup@4.18.0: + resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + scheduler@0.25.0-beta-26f2496093-20240514: + resolution: {integrity: sha512-vDwOytLHFnA3SW2B1lNcbO+/qKVyLCX+KLpm+tRGNDsXpyxzRgkIaYGWmX+S70AJGchUHCtuqQ50GFeFgDbXUw==} + + scslre@0.3.0: + resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} + engines: {node: ^14.0.0 || >=16.0.0} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} + hasBin: true + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + + spdx-license-ids@3.0.18: + resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + superstruct@1.0.4: + resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==} + engines: {node: '>=14.0.0'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svelte2tsx@0.7.8: + resolution: {integrity: sha512-ABK3RDFcy59AqAiU1N5Kxu1RnKrb1GDMrQjLgNgJfE8Q+coCKpjCAPtUVKQM2HnmuqeNWcT3NqfXbE+ZmN5Pow==} + peerDependencies: + svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 + typescript: ^4.9.4 || ^5.0.0 + + svelte@4.2.17: + resolution: {integrity: sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==} + engines: {node: '>=16'} + + synckit@0.6.2: + resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==} + engines: {node: '>=12.20'} + + tailwind-merge@2.3.0: + resolution: {integrity: sha512-vkYrLpIP+lgR0tQCG6AP7zZXCTLc1Lnv/CCRT3BqJ9CZ3ui2++GPaGb1x/ILsINIMSYqqvrpqjUFsMNLlW99EA==} + + tailwindcss-animate@1.0.7: + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + + tailwindcss@3.4.3: + resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} + engines: {node: '>=14.0.0'} + hasBin: true + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + + tinypool@0.8.4: + resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + engines: {node: '>=14.0.0'} + + tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + engines: {node: '>=14.0.0'} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toml-eslint-parser@0.9.3: + resolution: {integrity: sha512-moYoCvkNUAPCxSW9jmHmRElhm4tVJpHL8ItC/+uYD0EpPSFXbck7yREz9tNdJVTSpHVod8+HoipcpbQ0oE6gsw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + trim-right@1.0.1: + resolution: {integrity: sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==} + engines: {node: '>=0.10.0'} + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + tsconfig-paths@4.2.0: + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + engines: {node: '>=6'} + + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + unist-util-stringify-position@2.0.3: + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + + update-browserslist-db@1.0.16: + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + use-callback-ref@1.3.2: + resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.2: + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-sync-external-store@1.2.0: + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + valibot@0.25.0: + resolution: {integrity: sha512-cmD0ca15oyAbT75iYLNW6uU6doAeIwYfOshpXka/E1Bx4frzbkrgb7gvkI7K0YK/DVOksei4FfxWfRoBP3NFTg==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + vite-node@1.6.0: + resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + vite@5.2.11: + resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vitest@1.6.0: + resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.6.0 + '@vitest/ui': 1.6.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + vue-eslint-parser@9.4.2: + resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yaml-eslint-parser@1.2.3: + resolution: {integrity: sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==} + engines: {node: ^14.17.0 || >=16.0.0} + + yaml@2.4.2: + resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + + zod-validation-error@2.1.0: + resolution: {integrity: sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.18.0 + + zod-validation-error@3.3.0: + resolution: {integrity: sha512-Syib9oumw1NTqEv4LT0e6U83Td9aVRk9iTXPUQr1otyV1PuXQKOvOwhMNqZIq5hluzHP2pMgnOmHEo7kPdI2mw==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.18.0 + + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + + zustand@4.5.2: + resolution: {integrity: sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0.6' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + +snapshots: + + '@0no-co/graphql.web@1.0.7(graphql@16.8.1)': + optionalDependencies: + graphql: 16.8.1 + + '@0no-co/graphqlsp@1.12.3(graphql@16.8.1)(typescript@5.4.5)': + dependencies: + '@gql.tada/internal': 1.0.0(graphql@16.8.1)(typescript@5.4.5) + graphql: 16.8.1 + typescript: 5.4.5 + + '@alloc/quick-lru@5.2.0': {} + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@antfu/eslint-config@2.18.1(@vue/compiler-sfc@3.4.27)(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react-refresh@0.4.7(eslint@8.57.0))(eslint@8.57.0)(svelte@4.2.17)(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.12))': + dependencies: + '@antfu/install-pkg': 0.3.3 + '@clack/prompts': 0.7.0 + '@stylistic/eslint-plugin': 2.1.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + eslint: 8.57.0 + eslint-config-flat-gitignore: 0.1.5 + eslint-flat-config-utils: 0.2.5 + eslint-merge-processors: 0.1.0(eslint@8.57.0) + eslint-plugin-antfu: 2.2.0(eslint@8.57.0) + eslint-plugin-command: 0.2.3(eslint@8.57.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0) + eslint-plugin-import-x: 0.5.0(eslint@8.57.0)(typescript@5.4.5) + eslint-plugin-jsdoc: 48.2.6(eslint@8.57.0) + eslint-plugin-jsonc: 2.16.0(eslint@8.57.0) + eslint-plugin-markdown: 5.0.0(eslint@8.57.0) + eslint-plugin-n: 17.7.0(eslint@8.57.0) + eslint-plugin-no-only-tests: 3.1.0 + eslint-plugin-perfectionist: 2.10.0(eslint@8.57.0)(svelte@4.2.17)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@8.57.0)) + eslint-plugin-regexp: 2.6.0(eslint@8.57.0) + eslint-plugin-toml: 0.11.0(eslint@8.57.0) + eslint-plugin-unicorn: 53.0.0(eslint@8.57.0) + eslint-plugin-unused-imports: 3.2.0(@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) + eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.12)) + eslint-plugin-vue: 9.26.0(eslint@8.57.0) + eslint-plugin-yml: 1.14.0(eslint@8.57.0) + eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.27)(eslint@8.57.0) + globals: 15.3.0 + jsonc-eslint-parser: 2.4.0 + local-pkg: 0.5.0 + parse-gitignore: 2.0.0 + picocolors: 1.0.1 + toml-eslint-parser: 0.9.3 + vue-eslint-parser: 9.4.2(eslint@8.57.0) + yaml-eslint-parser: 1.2.3 + yargs: 17.7.2 + optionalDependencies: + eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) + eslint-plugin-react-refresh: 0.4.7(eslint@8.57.0) + transitivePeerDependencies: + - '@vue/compiler-sfc' + - supports-color + - svelte + - typescript + - vitest + + '@antfu/install-pkg@0.3.3': + dependencies: + '@jsdevtools/ez-spawn': 3.0.4 + + '@antfu/utils@0.7.8': {} + + '@babel/code-frame@7.24.6': + dependencies: + '@babel/highlight': 7.24.6 + picocolors: 1.0.1 + + '@babel/compat-data@7.24.6': {} + + '@babel/core@7.24.6': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.6 + '@babel/generator': 7.24.6 + '@babel/helper-compilation-targets': 7.24.6 + '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) + '@babel/helpers': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/template': 7.24.6 + '@babel/traverse': 7.24.6 + '@babel/types': 7.24.6 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.2.0': + dependencies: + '@babel/types': 7.24.6 + jsesc: 2.5.2 + lodash: 4.17.21 + source-map: 0.5.7 + trim-right: 1.0.1 + + '@babel/generator@7.24.6': + dependencies: + '@babel/types': 7.24.6 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + '@babel/helper-annotate-as-pure@7.24.6': + dependencies: + '@babel/types': 7.24.6 + + '@babel/helper-compilation-targets@7.24.6': + dependencies: + '@babel/compat-data': 7.24.6 + '@babel/helper-validator-option': 7.24.6 + browserslist: 4.23.0 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-function-name': 7.24.6 + '@babel/helper-member-expression-to-functions': 7.24.6 + '@babel/helper-optimise-call-expression': 7.24.6 + '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.6) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 + '@babel/helper-split-export-declaration': 7.24.6 + semver: 6.3.1 + + '@babel/helper-environment-visitor@7.24.6': {} + + '@babel/helper-function-name@7.24.6': + dependencies: + '@babel/template': 7.24.6 + '@babel/types': 7.24.6 + + '@babel/helper-hoist-variables@7.24.6': + dependencies: + '@babel/types': 7.24.6 + + '@babel/helper-member-expression-to-functions@7.24.6': + dependencies: + '@babel/types': 7.24.6 + + '@babel/helper-module-imports@7.24.6': + dependencies: + '@babel/types': 7.24.6 + + '@babel/helper-module-transforms@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-module-imports': 7.24.6 + '@babel/helper-simple-access': 7.24.6 + '@babel/helper-split-export-declaration': 7.24.6 + '@babel/helper-validator-identifier': 7.24.6 + + '@babel/helper-optimise-call-expression@7.24.6': + dependencies: + '@babel/types': 7.24.6 + + '@babel/helper-plugin-utils@7.24.6': {} + + '@babel/helper-replace-supers@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-member-expression-to-functions': 7.24.6 + '@babel/helper-optimise-call-expression': 7.24.6 + + '@babel/helper-simple-access@7.24.6': + dependencies: + '@babel/types': 7.24.6 + + '@babel/helper-skip-transparent-expression-wrappers@7.24.6': + dependencies: + '@babel/types': 7.24.6 + + '@babel/helper-split-export-declaration@7.24.6': + dependencies: + '@babel/types': 7.24.6 + + '@babel/helper-string-parser@7.24.6': {} + + '@babel/helper-validator-identifier@7.24.6': {} + + '@babel/helper-validator-option@7.24.6': {} + + '@babel/helpers@7.24.6': + dependencies: + '@babel/template': 7.24.6 + '@babel/types': 7.24.6 + + '@babel/highlight@7.24.6': + dependencies: + '@babel/helper-validator-identifier': 7.24.6 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 + + '@babel/parser@7.24.6': + dependencies: + '@babel/types': 7.24.6 + + '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/plugin-transform-react-jsx-self@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/plugin-transform-react-jsx-source@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/runtime@7.24.6': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/template@7.24.6': + dependencies: + '@babel/code-frame': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/types': 7.24.6 + + '@babel/traverse@7.24.6': + dependencies: + '@babel/code-frame': 7.24.6 + '@babel/generator': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-function-name': 7.24.6 + '@babel/helper-hoist-variables': 7.24.6 + '@babel/helper-split-export-declaration': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/types': 7.24.6 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.24.6': + dependencies: + '@babel/helper-string-parser': 7.24.6 + '@babel/helper-validator-identifier': 7.24.6 + to-fast-properties: 2.0.0 + + '@clack/core@0.3.4': + dependencies: + picocolors: 1.0.1 + sisteransi: 1.0.5 + + '@clack/prompts@0.7.0': + dependencies: + '@clack/core': 0.3.4 + picocolors: 1.0.1 + sisteransi: 1.0.5 + + '@digitak/grubber@3.1.4': {} + + '@emotion/hash@0.9.1': {} + + '@es-joy/jsdoccomment@0.43.0': + dependencies: + '@types/eslint': 8.56.10 + '@types/estree': 1.0.5 + '@typescript-eslint/types': 7.10.0 + comment-parser: 1.4.1 + esquery: 1.5.0 + jsdoc-type-pratt-parser: 4.0.0 + + '@esbuild/aix-ppc64@0.20.2': + optional: true + + '@esbuild/android-arm64@0.17.19': + optional: true + + '@esbuild/android-arm64@0.20.2': + optional: true + + '@esbuild/android-arm@0.17.19': + optional: true + + '@esbuild/android-arm@0.20.2': + optional: true + + '@esbuild/android-x64@0.17.19': + optional: true + + '@esbuild/android-x64@0.20.2': + optional: true + + '@esbuild/darwin-arm64@0.17.19': + optional: true + + '@esbuild/darwin-arm64@0.20.2': + optional: true + + '@esbuild/darwin-x64@0.17.19': + optional: true + + '@esbuild/darwin-x64@0.20.2': + optional: true + + '@esbuild/freebsd-arm64@0.17.19': + optional: true + + '@esbuild/freebsd-arm64@0.20.2': + optional: true + + '@esbuild/freebsd-x64@0.17.19': + optional: true + + '@esbuild/freebsd-x64@0.20.2': + optional: true + + '@esbuild/linux-arm64@0.17.19': + optional: true + + '@esbuild/linux-arm64@0.20.2': + optional: true + + '@esbuild/linux-arm@0.17.19': + optional: true + + '@esbuild/linux-arm@0.20.2': + optional: true + + '@esbuild/linux-ia32@0.17.19': + optional: true + + '@esbuild/linux-ia32@0.20.2': + optional: true + + '@esbuild/linux-loong64@0.17.19': + optional: true + + '@esbuild/linux-loong64@0.20.2': + optional: true + + '@esbuild/linux-mips64el@0.17.19': + optional: true + + '@esbuild/linux-mips64el@0.20.2': + optional: true + + '@esbuild/linux-ppc64@0.17.19': + optional: true + + '@esbuild/linux-ppc64@0.20.2': + optional: true + + '@esbuild/linux-riscv64@0.17.19': + optional: true + + '@esbuild/linux-riscv64@0.20.2': + optional: true + + '@esbuild/linux-s390x@0.17.19': + optional: true + + '@esbuild/linux-s390x@0.20.2': + optional: true + + '@esbuild/linux-x64@0.17.19': + optional: true + + '@esbuild/linux-x64@0.20.2': + optional: true + + '@esbuild/netbsd-x64@0.17.19': + optional: true + + '@esbuild/netbsd-x64@0.20.2': + optional: true + + '@esbuild/openbsd-x64@0.17.19': + optional: true + + '@esbuild/openbsd-x64@0.20.2': + optional: true + + '@esbuild/sunos-x64@0.17.19': + optional: true + + '@esbuild/sunos-x64@0.20.2': + optional: true + + '@esbuild/win32-arm64@0.17.19': + optional: true + + '@esbuild/win32-arm64@0.20.2': + optional: true + + '@esbuild/win32-ia32@0.17.19': + optional: true + + '@esbuild/win32-ia32@0.20.2': + optional: true + + '@esbuild/win32-x64@0.17.19': + optional: true + + '@esbuild/win32-x64@0.20.2': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.10.0': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@3.1.0': + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 10.0.1 + globals: 14.0.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.0': {} + + '@floating-ui/core@1.6.2': + dependencies: + '@floating-ui/utils': 0.2.2 + + '@floating-ui/dom@1.6.5': + dependencies: + '@floating-ui/core': 1.6.2 + '@floating-ui/utils': 0.2.2 + + '@floating-ui/react-dom@2.1.0(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@floating-ui/dom': 1.6.5 + react: 19.0.0-beta-26f2496093-20240514 + react-dom: 19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514) + + '@floating-ui/utils@0.2.2': {} + + '@gql.tada/cli-utils@1.3.9(graphql@16.8.1)(svelte@4.2.17)(typescript@5.4.5)': + dependencies: + '@0no-co/graphqlsp': 1.12.3(graphql@16.8.1)(typescript@5.4.5) + '@gql.tada/internal': 1.0.0(graphql@16.8.1)(typescript@5.4.5) + '@vue/compiler-dom': 3.4.27 + '@vue/language-core': 2.0.19(typescript@5.4.5) + graphql: 16.8.1 + svelte2tsx: 0.7.8(svelte@4.2.17)(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - svelte + + '@gql.tada/internal@1.0.0(graphql@16.8.1)(typescript@5.4.5)': + dependencies: + '@0no-co/graphql.web': 1.0.7(graphql@16.8.1) + graphql: 16.8.1 + typescript: 5.4.5 + + '@graphql-typed-document-node/core@3.2.0(graphql@16.8.1)': + dependencies: + graphql: 16.8.1 + + '@humanwhocodes/config-array@0.11.14': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jest/types@24.9.0': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 1.1.2 + '@types/yargs': 13.0.12 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.4.15': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + + '@jsdevtools/ez-spawn@3.0.4': + dependencies: + call-me-maybe: 1.0.2 + cross-spawn: 7.0.3 + string-argv: 0.3.2 + type-detect: 4.0.8 + + '@mysten/bcs@0.11.1': + dependencies: + bs58: 5.0.0 + + '@mysten/dapp-kit@0.13.2(@tanstack/react-query@5.39.0(react@19.0.0-beta-26f2496093-20240514))(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514)(svelte@4.2.17)(typescript@5.4.5)': + dependencies: + '@mysten/sui.js': 0.54.1(svelte@4.2.17)(typescript@5.4.5) + '@mysten/wallet-standard': 0.11.6(svelte@4.2.17)(typescript@5.4.5) + '@mysten/zksend': 0.8.2(svelte@4.2.17)(typescript@5.4.5) + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-dropdown-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@tanstack/react-query': 5.39.0(react@19.0.0-beta-26f2496093-20240514) + '@vanilla-extract/css': 1.15.2 + '@vanilla-extract/dynamic': 2.1.1 + '@vanilla-extract/recipes': 0.5.3(@vanilla-extract/css@1.15.2) + clsx: 2.1.1 + react: 19.0.0-beta-26f2496093-20240514 + zustand: 4.5.2(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - babel-plugin-macros + - immer + - react-dom + - svelte + - typescript + + '@mysten/sui.js@0.54.1(svelte@4.2.17)(typescript@5.4.5)': + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + '@mysten/bcs': 0.11.1 + '@noble/curves': 1.4.0 + '@noble/hashes': 1.4.0 + '@scure/bip32': 1.4.0 + '@scure/bip39': 1.3.0 + '@suchipi/femver': 1.0.0 + bech32: 2.0.0 + gql.tada: 1.7.5(graphql@16.8.1)(svelte@4.2.17)(typescript@5.4.5) + graphql: 16.8.1 + superstruct: 1.0.4 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - svelte + - typescript + + '@mysten/wallet-standard@0.11.6(svelte@4.2.17)(typescript@5.4.5)': + dependencies: + '@mysten/sui.js': 0.54.1(svelte@4.2.17)(typescript@5.4.5) + '@wallet-standard/core': 1.0.3 + transitivePeerDependencies: + - svelte + - typescript + + '@mysten/zksend@0.8.2(svelte@4.2.17)(typescript@5.4.5)': + dependencies: + '@mysten/sui.js': 0.54.1(svelte@4.2.17)(typescript@5.4.5) + '@mysten/wallet-standard': 0.11.6(svelte@4.2.17)(typescript@5.4.5) + mitt: 3.0.1 + nanostores: 0.9.5 + valibot: 0.25.0 + transitivePeerDependencies: + - svelte + - typescript + + '@noble/curves@1.4.0': + dependencies: + '@noble/hashes': 1.4.0 + + '@noble/hashes@1.4.0': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@radix-ui/primitive@1.0.1': + dependencies: + '@babel/runtime': 7.24.6 + + '@radix-ui/react-arrow@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + react: 19.0.0-beta-26f2496093-20240514 + react-dom: 19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-collection@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + react: 19.0.0-beta-26f2496093-20240514 + react-dom: 19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + react: 19.0.0-beta-26f2496093-20240514 + optionalDependencies: + '@types/react': 18.3.3 + + '@radix-ui/react-context@1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + react: 19.0.0-beta-26f2496093-20240514 + optionalDependencies: + '@types/react': 18.3.3 + + '@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + aria-hidden: 1.2.4 + react: 19.0.0-beta-26f2496093-20240514 + react-dom: 19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514) + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-direction@1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + react: 19.0.0-beta-26f2496093-20240514 + optionalDependencies: + '@types/react': 18.3.3 + + '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + react: 19.0.0-beta-26f2496093-20240514 + react-dom: 19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + react: 19.0.0-beta-26f2496093-20240514 + react-dom: 19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + react: 19.0.0-beta-26f2496093-20240514 + optionalDependencies: + '@types/react': 18.3.3 + + '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + react: 19.0.0-beta-26f2496093-20240514 + react-dom: 19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-id@1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + react: 19.0.0-beta-26f2496093-20240514 + optionalDependencies: + '@types/react': 18.3.3 + + '@radix-ui/react-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + aria-hidden: 1.2.4 + react: 19.0.0-beta-26f2496093-20240514 + react-dom: 19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514) + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-popper@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@floating-ui/react-dom': 2.1.0(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/rect': 1.0.1 + react: 19.0.0-beta-26f2496093-20240514 + react-dom: 19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + react: 19.0.0-beta-26f2496093-20240514 + react-dom: 19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + react: 19.0.0-beta-26f2496093-20240514 + react-dom: 19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + react: 19.0.0-beta-26f2496093-20240514 + react-dom: 19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514))(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + react: 19.0.0-beta-26f2496093-20240514 + react-dom: 19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-slot@1.0.2(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + react: 19.0.0-beta-26f2496093-20240514 + optionalDependencies: + '@types/react': 18.3.3 + + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + react: 19.0.0-beta-26f2496093-20240514 + optionalDependencies: + '@types/react': 18.3.3 + + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + react: 19.0.0-beta-26f2496093-20240514 + optionalDependencies: + '@types/react': 18.3.3 + + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + react: 19.0.0-beta-26f2496093-20240514 + optionalDependencies: + '@types/react': 18.3.3 + + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + react: 19.0.0-beta-26f2496093-20240514 + optionalDependencies: + '@types/react': 18.3.3 + + '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/rect': 1.0.1 + react: 19.0.0-beta-26f2496093-20240514 + optionalDependencies: + '@types/react': 18.3.3 + + '@radix-ui/react-use-size@1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@babel/runtime': 7.24.6 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + react: 19.0.0-beta-26f2496093-20240514 + optionalDependencies: + '@types/react': 18.3.3 + + '@radix-ui/rect@1.0.1': + dependencies: + '@babel/runtime': 7.24.6 + + '@rollup/rollup-android-arm-eabi@4.18.0': + optional: true + + '@rollup/rollup-android-arm64@4.18.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.18.0': + optional: true + + '@rollup/rollup-darwin-x64@4.18.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.18.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.18.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.18.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.18.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.18.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.18.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.18.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.18.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.18.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.18.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.18.0': + optional: true + + '@scure/base@1.1.6': {} + + '@scure/bip32@1.4.0': + dependencies: + '@noble/curves': 1.4.0 + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.6 + + '@scure/bip39@1.3.0': + dependencies: + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.6 + + '@sinclair/typebox@0.27.8': {} + + '@stylistic/eslint-plugin-js@2.1.0(eslint@8.57.0)': + dependencies: + '@types/eslint': 8.56.10 + acorn: 8.11.3 + eslint: 8.57.0 + eslint-visitor-keys: 4.0.0 + espree: 10.0.1 + + '@stylistic/eslint-plugin-jsx@2.1.0(eslint@8.57.0)': + dependencies: + '@stylistic/eslint-plugin-js': 2.1.0(eslint@8.57.0) + '@types/eslint': 8.56.10 + eslint: 8.57.0 + estraverse: 5.3.0 + picomatch: 4.0.2 + + '@stylistic/eslint-plugin-plus@2.1.0(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@types/eslint': 8.56.10 + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + eslint: 8.57.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@stylistic/eslint-plugin-ts@2.1.0(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@stylistic/eslint-plugin-js': 2.1.0(eslint@8.57.0) + '@types/eslint': 8.56.10 + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + eslint: 8.57.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@stylistic/eslint-plugin@2.1.0(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@stylistic/eslint-plugin-js': 2.1.0(eslint@8.57.0) + '@stylistic/eslint-plugin-jsx': 2.1.0(eslint@8.57.0) + '@stylistic/eslint-plugin-plus': 2.1.0(eslint@8.57.0)(typescript@5.4.5) + '@stylistic/eslint-plugin-ts': 2.1.0(eslint@8.57.0)(typescript@5.4.5) + '@types/eslint': 8.56.10 + eslint: 8.57.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@suchipi/femver@1.0.0': {} + + '@tanstack/query-core@5.38.0': {} + + '@tanstack/react-query@5.39.0(react@19.0.0-beta-26f2496093-20240514)': + dependencies: + '@tanstack/query-core': 5.38.0 + react: 19.0.0-beta-26f2496093-20240514 + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.24.6 + '@babel/types': 7.24.6 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 + + '@types/babel__generator@7.6.8': + dependencies: + '@babel/types': 7.24.6 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.24.6 + '@babel/types': 7.24.6 + + '@types/babel__traverse@7.20.6': + dependencies: + '@babel/types': 7.24.6 + + '@types/eslint@8.56.10': + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + + '@types/estree@1.0.5': {} + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@1.1.2': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-lib-report': 3.0.3 + + '@types/json-schema@7.0.15': {} + + '@types/mdast@3.0.15': + dependencies: + '@types/unist': 2.0.10 + + '@types/node@20.12.12': + dependencies: + undici-types: 5.26.5 + + '@types/normalize-package-data@2.4.4': {} + + '@types/prop-types@15.7.12': {} + + '@types/react-dom@18.3.0': + dependencies: + '@types/react': 18.3.3 + + '@types/react@18.3.3': + dependencies: + '@types/prop-types': 15.7.12 + csstype: 3.1.3 + + '@types/unist@2.0.10': {} + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@13.0.12': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.10.0 + '@typescript-eslint/type-utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.10.0 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@typescript-eslint/scope-manager': 7.10.0 + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.10.0 + debug: 4.3.4 + eslint: 8.57.0 + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@7.10.0': + dependencies: + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/visitor-keys': 7.10.0 + + '@typescript-eslint/type-utils@7.10.0(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + debug: 4.3.4 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@7.10.0': {} + + '@typescript-eslint/typescript-estree@7.10.0(typescript@5.4.5)': + dependencies: + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/visitor-keys': 7.10.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.4 + semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@7.10.0(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@typescript-eslint/scope-manager': 7.10.0 + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5) + eslint: 8.57.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@7.10.0': + dependencies: + '@typescript-eslint/types': 7.10.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.2.0': {} + + '@vanilla-extract/css@1.15.2': + dependencies: + '@emotion/hash': 0.9.1 + '@vanilla-extract/private': 1.0.5 + css-what: 6.1.0 + cssesc: 3.0.0 + csstype: 3.1.3 + dedent: 1.5.3 + deep-object-diff: 1.1.9 + deepmerge: 4.3.1 + media-query-parser: 2.0.2 + modern-ahocorasick: 1.0.1 + picocolors: 1.0.1 + transitivePeerDependencies: + - babel-plugin-macros + + '@vanilla-extract/dynamic@2.1.1': + dependencies: + '@vanilla-extract/private': 1.0.5 + + '@vanilla-extract/private@1.0.5': {} + + '@vanilla-extract/recipes@0.5.3(@vanilla-extract/css@1.15.2)': + dependencies: + '@vanilla-extract/css': 1.15.2 + + '@vitejs/plugin-react@4.3.0(vite@5.2.11(@types/node@20.12.12))': + dependencies: + '@babel/core': 7.24.6 + '@babel/plugin-transform-react-jsx-self': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-react-jsx-source': 7.24.6(@babel/core@7.24.6) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 5.2.11(@types/node@20.12.12) + transitivePeerDependencies: + - supports-color + + '@vitest/expect@1.6.0': + dependencies: + '@vitest/spy': 1.6.0 + '@vitest/utils': 1.6.0 + chai: 4.4.1 + + '@vitest/runner@1.6.0': + dependencies: + '@vitest/utils': 1.6.0 + p-limit: 5.0.0 + pathe: 1.1.2 + + '@vitest/snapshot@1.6.0': + dependencies: + magic-string: 0.30.10 + pathe: 1.1.2 + pretty-format: 29.7.0 + + '@vitest/spy@1.6.0': + dependencies: + tinyspy: 2.2.1 + + '@vitest/utils@1.6.0': + dependencies: + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + + '@volar/language-core@2.2.5': + dependencies: + '@volar/source-map': 2.2.5 + + '@volar/source-map@2.2.5': + dependencies: + muggle-string: 0.4.1 + + '@vue/compiler-core@3.4.27': + dependencies: + '@babel/parser': 7.24.6 + '@vue/shared': 3.4.27 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + + '@vue/compiler-dom@3.4.27': + dependencies: + '@vue/compiler-core': 3.4.27 + '@vue/shared': 3.4.27 + + '@vue/compiler-sfc@3.4.27': + dependencies: + '@babel/parser': 7.24.6 + '@vue/compiler-core': 3.4.27 + '@vue/compiler-dom': 3.4.27 + '@vue/compiler-ssr': 3.4.27 + '@vue/shared': 3.4.27 + estree-walker: 2.0.2 + magic-string: 0.30.10 + postcss: 8.4.38 + source-map-js: 1.2.0 + + '@vue/compiler-ssr@3.4.27': + dependencies: + '@vue/compiler-dom': 3.4.27 + '@vue/shared': 3.4.27 + + '@vue/language-core@2.0.19(typescript@5.4.5)': + dependencies: + '@volar/language-core': 2.2.5 + '@vue/compiler-dom': 3.4.27 + '@vue/shared': 3.4.27 + computeds: 0.0.1 + minimatch: 9.0.4 + path-browserify: 1.0.1 + vue-template-compiler: 2.7.16 + optionalDependencies: + typescript: 5.4.5 + + '@vue/shared@3.4.27': {} + + '@wallet-standard/app@1.0.1': + dependencies: + '@wallet-standard/base': 1.0.1 + + '@wallet-standard/base@1.0.1': {} + + '@wallet-standard/core@1.0.3': + dependencies: + '@wallet-standard/app': 1.0.1 + '@wallet-standard/base': 1.0.1 + '@wallet-standard/features': 1.0.3 + '@wallet-standard/wallet': 1.0.1 + + '@wallet-standard/features@1.0.3': + dependencies: + '@wallet-standard/base': 1.0.1 + + '@wallet-standard/wallet@1.0.1': + dependencies: + '@wallet-standard/base': 1.0.1 + + acorn-jsx@5.3.2(acorn@8.11.3): + dependencies: + acorn: 8.11.3 + + acorn-walk@8.3.2: {} + + acorn@8.11.3: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@4.1.1: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + are-docs-informative@0.0.2: {} + + arg@5.0.2: {} + + argparse@2.0.1: {} + + aria-hidden@1.2.4: + dependencies: + tslib: 2.6.2 + + aria-query@5.3.0: + dependencies: + dequal: 2.0.3 + + array-union@2.1.0: {} + + assertion-error@1.1.0: {} + + asynckit@0.4.0: {} + + autoprefixer@10.4.19(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + caniuse-lite: 1.0.30001621 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.1 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + axios@1.7.2: + dependencies: + follow-redirects: 1.15.6 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + axobject-query@4.0.0: + dependencies: + dequal: 2.0.3 + + babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517: + dependencies: + '@babel/generator': 7.2.0 + '@babel/types': 7.24.6 + chalk: 4.1.2 + invariant: 2.2.4 + pretty-format: 24.9.0 + zod: 3.23.8 + zod-validation-error: 2.1.0(zod@3.23.8) + + balanced-match@1.0.2: {} + + base-x@4.0.0: {} + + bech32@2.0.0: {} + + binary-extensions@2.3.0: {} + + boolbase@1.0.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.23.0: + dependencies: + caniuse-lite: 1.0.30001621 + electron-to-chromium: 1.4.783 + node-releases: 2.0.14 + update-browserslist-db: 1.0.16(browserslist@4.23.0) + + bs58@5.0.0: + dependencies: + base-x: 4.0.0 + + builtin-modules@3.3.0: {} + + cac@6.7.14: {} + + call-me-maybe@1.0.2: {} + + callsites@3.1.0: {} + + camelcase-css@2.0.1: {} + + caniuse-lite@1.0.30001621: {} + + chai@4.4.1: + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + character-entities-legacy@1.1.4: {} + + character-entities@1.2.4: {} + + character-reference-invalid@1.1.4: {} + + check-error@1.0.3: + dependencies: + get-func-name: 2.0.2 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + ci-info@4.0.0: {} + + class-variance-authority@0.7.0: + dependencies: + clsx: 2.0.0 + + clean-regexp@1.0.0: + dependencies: + escape-string-regexp: 1.0.5 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clsx@2.0.0: {} + + clsx@2.1.1: {} + + code-red@1.0.4: + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + '@types/estree': 1.0.5 + acorn: 8.11.3 + estree-walker: 3.0.3 + periscopic: 3.1.0 + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@4.1.1: {} + + comment-parser@1.4.1: {} + + computeds@0.0.1: {} + + concat-map@0.0.1: {} + + confbox@0.1.7: {} + + convert-source-map@2.0.0: {} + + core-js-compat@3.37.1: + dependencies: + browserslist: 4.23.0 + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.0 + + css-what@6.1.0: {} + + cssesc@3.0.0: {} + + csstype@3.1.3: {} + + dayjs@1.11.11: {} + + de-indent@1.0.2: {} + + debug@3.2.7: + dependencies: + ms: 2.1.2 + + debug@4.3.4: + dependencies: + ms: 2.1.2 + + dedent-js@1.0.1: {} + + dedent@1.5.3: {} + + deep-eql@4.1.3: + dependencies: + type-detect: 4.0.8 + + deep-is@0.1.4: {} + + deep-object-diff@1.1.9: {} + + deepmerge@4.3.1: {} + + delayed-stream@1.0.0: {} + + dequal@2.0.3: {} + + detect-node-es@1.1.0: {} + + didyoumean@1.2.2: {} + + diff-sequences@29.6.3: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dlv@1.1.3: {} + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + eastasianwidth@0.2.0: {} + + electron-to-chromium@1.4.783: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + enhanced-resolve@5.16.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + entities@4.5.0: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + esbuild@0.17.19: + optionalDependencies: + '@esbuild/android-arm': 0.17.19 + '@esbuild/android-arm64': 0.17.19 + '@esbuild/android-x64': 0.17.19 + '@esbuild/darwin-arm64': 0.17.19 + '@esbuild/darwin-x64': 0.17.19 + '@esbuild/freebsd-arm64': 0.17.19 + '@esbuild/freebsd-x64': 0.17.19 + '@esbuild/linux-arm': 0.17.19 + '@esbuild/linux-arm64': 0.17.19 + '@esbuild/linux-ia32': 0.17.19 + '@esbuild/linux-loong64': 0.17.19 + '@esbuild/linux-mips64el': 0.17.19 + '@esbuild/linux-ppc64': 0.17.19 + '@esbuild/linux-riscv64': 0.17.19 + '@esbuild/linux-s390x': 0.17.19 + '@esbuild/linux-x64': 0.17.19 + '@esbuild/netbsd-x64': 0.17.19 + '@esbuild/openbsd-x64': 0.17.19 + '@esbuild/sunos-x64': 0.17.19 + '@esbuild/win32-arm64': 0.17.19 + '@esbuild/win32-ia32': 0.17.19 + '@esbuild/win32-x64': 0.17.19 + + esbuild@0.20.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 + + escalade@3.1.2: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + eslint-compat-utils@0.5.0(eslint@8.57.0): + dependencies: + eslint: 8.57.0 + semver: 7.6.2 + + eslint-config-flat-gitignore@0.1.5: + dependencies: + find-up: 7.0.0 + parse-gitignore: 2.0.0 + + eslint-flat-config-utils@0.2.5: + dependencies: + '@types/eslint': 8.56.10 + pathe: 1.1.2 + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + eslint-merge-processors@0.1.0(eslint@8.57.0): + dependencies: + eslint: 8.57.0 + + eslint-plugin-antfu@2.2.0(eslint@8.57.0): + dependencies: + '@antfu/utils': 0.7.8 + eslint: 8.57.0 + + eslint-plugin-command@0.2.3(eslint@8.57.0): + dependencies: + '@es-joy/jsdoccomment': 0.43.0 + eslint: 8.57.0 + + eslint-plugin-es-x@7.6.0(eslint@8.57.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 + eslint: 8.57.0 + eslint-compat-utils: 0.5.0(eslint@8.57.0) + + eslint-plugin-eslint-comments@3.2.0(eslint@8.57.0): + dependencies: + escape-string-regexp: 1.0.5 + eslint: 8.57.0 + ignore: 5.3.1 + + eslint-plugin-import-x@0.5.0(eslint@8.57.0)(typescript@5.4.5): + dependencies: + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + debug: 4.3.4 + doctrine: 3.0.0 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + get-tsconfig: 4.7.5 + is-glob: 4.0.3 + minimatch: 9.0.4 + semver: 7.6.2 + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-jsdoc@48.2.6(eslint@8.57.0): + dependencies: + '@es-joy/jsdoccomment': 0.43.0 + are-docs-informative: 0.0.2 + comment-parser: 1.4.1 + debug: 4.3.4 + escape-string-regexp: 4.0.0 + eslint: 8.57.0 + esquery: 1.5.0 + semver: 7.6.2 + spdx-expression-parse: 4.0.0 + transitivePeerDependencies: + - supports-color + + eslint-plugin-jsonc@2.16.0(eslint@8.57.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + eslint: 8.57.0 + eslint-compat-utils: 0.5.0(eslint@8.57.0) + espree: 9.6.1 + graphemer: 1.4.0 + jsonc-eslint-parser: 2.4.0 + natural-compare: 1.4.0 + synckit: 0.6.2 + + eslint-plugin-markdown@5.0.0(eslint@8.57.0): + dependencies: + eslint: 8.57.0 + mdast-util-from-markdown: 0.8.5 + transitivePeerDependencies: + - supports-color + + eslint-plugin-n@17.7.0(eslint@8.57.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + enhanced-resolve: 5.16.1 + eslint: 8.57.0 + eslint-plugin-es-x: 7.6.0(eslint@8.57.0) + get-tsconfig: 4.7.5 + globals: 15.3.0 + ignore: 5.3.1 + minimatch: 9.0.4 + semver: 7.6.2 + + eslint-plugin-no-only-tests@3.1.0: {} + + eslint-plugin-perfectionist@2.10.0(eslint@8.57.0)(svelte@4.2.17)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@8.57.0)): + dependencies: + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + eslint: 8.57.0 + minimatch: 9.0.4 + natural-compare-lite: 1.4.0 + optionalDependencies: + svelte: 4.2.17 + vue-eslint-parser: 9.4.2(eslint@8.57.0) + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-react-compiler@0.0.0-experimental-c8b3f72-20240517(eslint@8.57.0): + dependencies: + '@babel/core': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.24.6) + eslint: 8.57.0 + hermes-parser: 0.20.1 + zod: 3.23.8 + zod-validation-error: 3.3.0(zod@3.23.8) + transitivePeerDependencies: + - supports-color + + eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): + dependencies: + eslint: 8.57.0 + + eslint-plugin-react-refresh@0.4.7(eslint@8.57.0): + dependencies: + eslint: 8.57.0 + + eslint-plugin-regexp@2.6.0(eslint@8.57.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 + comment-parser: 1.4.1 + eslint: 8.57.0 + jsdoc-type-pratt-parser: 4.0.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + scslre: 0.3.0 + + eslint-plugin-toml@0.11.0(eslint@8.57.0): + dependencies: + debug: 4.3.4 + eslint: 8.57.0 + eslint-compat-utils: 0.5.0(eslint@8.57.0) + lodash: 4.17.21 + toml-eslint-parser: 0.9.3 + transitivePeerDependencies: + - supports-color + + eslint-plugin-unicorn@53.0.0(eslint@8.57.0): + dependencies: + '@babel/helper-validator-identifier': 7.24.6 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint/eslintrc': 3.1.0 + ci-info: 4.0.0 + clean-regexp: 1.0.0 + core-js-compat: 3.37.1 + eslint: 8.57.0 + esquery: 1.5.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.0.2 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + regjsparser: 0.10.0 + semver: 7.6.2 + strip-indent: 3.0.0 + transitivePeerDependencies: + - supports-color + + eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0): + dependencies: + eslint: 8.57.0 + eslint-rule-composer: 0.3.0 + optionalDependencies: + '@typescript-eslint/eslint-plugin': 7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) + + eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.12)): + dependencies: + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + eslint: 8.57.0 + optionalDependencies: + '@typescript-eslint/eslint-plugin': 7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) + vitest: 1.6.0(@types/node@20.12.12) + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-vue@9.26.0(eslint@8.57.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + eslint: 8.57.0 + globals: 13.24.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.1.0 + semver: 7.6.2 + vue-eslint-parser: 9.4.2(eslint@8.57.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + + eslint-plugin-yml@1.14.0(eslint@8.57.0): + dependencies: + debug: 4.3.4 + eslint: 8.57.0 + eslint-compat-utils: 0.5.0(eslint@8.57.0) + lodash: 4.17.21 + natural-compare: 1.4.0 + yaml-eslint-parser: 1.2.3 + transitivePeerDependencies: + - supports-color + + eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.27)(eslint@8.57.0): + dependencies: + '@vue/compiler-sfc': 3.4.27 + eslint: 8.57.0 + + eslint-rule-composer@0.3.0: {} + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.0.0: {} + + eslint@8.57.0: + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@10.0.1: + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 4.0.0 + + espree@9.6.1: + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 + + esquery@1.5.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + esrun@3.2.26: + dependencies: + '@digitak/grubber': 3.1.4 + chokidar: 3.6.0 + esbuild: 0.17.19 + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.5 + + esutils@2.0.3: {} + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.7 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + find-up@7.0.0: + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + unicorn-magic: 0.1.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatted@3.3.1: {} + + follow-redirects@1.15.6: {} + + foreground-child@3.1.1: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + fraction.js@4.3.7: {} + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-func-name@2.0.2: {} + + get-nonce@1.0.1: {} + + get-stream@8.0.1: {} + + get-tsconfig@4.7.5: + dependencies: + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.1: + dependencies: + foreground-child: 3.1.1 + jackspeak: 3.1.2 + minimatch: 9.0.4 + minipass: 7.1.2 + path-scurry: 1.11.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@11.12.0: {} + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globals@14.0.0: {} + + globals@15.3.0: {} + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + + gql.tada@1.7.5(graphql@16.8.1)(svelte@4.2.17)(typescript@5.4.5): + dependencies: + '@0no-co/graphql.web': 1.0.7(graphql@16.8.1) + '@gql.tada/cli-utils': 1.3.9(graphql@16.8.1)(svelte@4.2.17)(typescript@5.4.5) + '@gql.tada/internal': 1.0.0(graphql@16.8.1)(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - graphql + - svelte + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + graphql@16.8.1: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + he@1.2.0: {} + + hermes-estree@0.20.1: {} + + hermes-parser@0.20.1: + dependencies: + hermes-estree: 0.20.1 + + hosted-git-info@2.8.9: {} + + human-signals@5.0.0: {} + + ignore@5.3.1: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + invariant@2.2.4: + dependencies: + loose-envify: 1.4.0 + + is-alphabetical@1.0.4: {} + + is-alphanumerical@1.0.4: + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + + is-arrayish@0.2.1: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-builtin-module@3.2.1: + dependencies: + builtin-modules: 3.3.0 + + is-core-module@2.13.1: + dependencies: + hasown: 2.0.2 + + is-decimal@1.0.4: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hexadecimal@1.0.4: {} + + is-number@7.0.0: {} + + is-path-inside@3.0.3: {} + + is-reference@3.0.2: + dependencies: + '@types/estree': 1.0.5 + + is-stream@3.0.0: {} + + isexe@2.0.0: {} + + jackspeak@3.1.2: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jiti@1.21.0: {} + + js-tokens@4.0.0: {} + + js-tokens@9.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsdoc-type-pratt-parser@4.0.0: {} + + jsesc@0.5.0: {} + + jsesc@2.5.2: {} + + jsesc@3.0.2: {} + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@2.2.3: {} + + jsonc-eslint-parser@2.4.0: + dependencies: + acorn: 8.11.3 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.6.2 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lilconfig@2.1.0: {} + + lilconfig@3.1.1: {} + + lines-and-columns@1.2.4: {} + + local-pkg@0.5.0: + dependencies: + mlly: 1.7.0 + pkg-types: 1.1.1 + + locate-character@3.0.0: {} + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + locate-path@7.2.0: + dependencies: + p-locate: 6.0.0 + + lodash.merge@4.6.2: {} + + lodash@4.17.21: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + loupe@2.3.7: + dependencies: + get-func-name: 2.0.2 + + lower-case@2.0.2: + dependencies: + tslib: 2.6.2 + + lru-cache@10.2.2: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lucide-react@0.379.0(react@19.0.0-beta-26f2496093-20240514): + dependencies: + react: 19.0.0-beta-26f2496093-20240514 + + magic-string@0.30.10: + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + + mdast-util-from-markdown@0.8.5: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-string: 2.0.0 + micromark: 2.11.4 + parse-entities: 2.0.0 + unist-util-stringify-position: 2.0.3 + transitivePeerDependencies: + - supports-color + + mdast-util-to-string@2.0.0: {} + + mdn-data@2.0.30: {} + + media-query-parser@2.0.2: + dependencies: + '@babel/runtime': 7.24.6 + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + micromark@2.11.4: + dependencies: + debug: 4.3.4 + parse-entities: 2.0.0 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.7: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mimic-fn@4.0.0: {} + + min-indent@1.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.4: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minipass@7.1.2: {} + + mitt@3.0.1: {} + + mlly@1.7.0: + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.1.1 + ufo: 1.5.3 + + modern-ahocorasick@1.0.1: {} + + ms@2.1.2: {} + + muggle-string@0.4.1: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.7: {} + + nanostores@0.9.5: {} + + natural-compare-lite@1.4.0: {} + + natural-compare@1.4.0: {} + + navi-sdk@1.1.21(@types/node@20.12.12)(svelte@4.2.17)(typescript@5.4.5): + dependencies: + '@mysten/sui.js': 0.54.1(svelte@4.2.17)(typescript@5.4.5) + axios: 1.7.2 + esrun: 3.2.26 + tsconfig-paths: 4.2.0 + vitest: 1.6.0(@types/node@20.12.12) + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@types/node' + - '@vitest/browser' + - '@vitest/ui' + - debug + - happy-dom + - jsdom + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - svelte + - terser + - typescript + + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.6.2 + + node-releases@2.0.14: {} + + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-limit@4.0.0: + dependencies: + yocto-queue: 1.0.0 + + p-limit@5.0.0: + dependencies: + yocto-queue: 1.0.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-locate@6.0.0: + dependencies: + p-limit: 4.0.0 + + p-try@2.2.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-entities@2.0.0: + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + + parse-gitignore@2.0.0: {} + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.24.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + pascal-case@3.1.2: + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + + path-browserify@1.0.1: {} + + path-exists@4.0.0: {} + + path-exists@5.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.2.2 + minipass: 7.1.2 + + path-type@4.0.0: {} + + pathe@1.1.2: {} + + pathval@1.1.1: {} + + periscopic@3.1.0: + dependencies: + '@types/estree': 1.0.5 + estree-walker: 3.0.3 + is-reference: 3.0.2 + + picocolors@1.0.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + pify@2.3.0: {} + + pirates@4.0.6: {} + + pkg-types@1.1.1: + dependencies: + confbox: 0.1.7 + mlly: 1.7.0 + pathe: 1.1.2 + + pluralize@8.0.0: {} + + postcss-import@15.1.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + + postcss-js@4.0.1(postcss@8.4.38): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.38 + + postcss-load-config@4.0.2(postcss@8.4.38): + dependencies: + lilconfig: 3.1.1 + yaml: 2.4.2 + optionalDependencies: + postcss: 8.4.38 + + postcss-nested@6.0.1(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.1.0 + + postcss-selector-parser@6.1.0: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.38: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + + prelude-ls@1.2.1: {} + + pretty-format@24.9.0: + dependencies: + '@jest/types': 24.9.0 + ansi-regex: 4.1.1 + ansi-styles: 3.2.1 + react-is: 16.13.1 + + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + + proxy-from-env@1.1.0: {} + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + react-dom@19.0.0-beta-26f2496093-20240514(react@19.0.0-beta-26f2496093-20240514): + dependencies: + react: 19.0.0-beta-26f2496093-20240514 + scheduler: 0.25.0-beta-26f2496093-20240514 + + react-is@16.13.1: {} + + react-is@18.3.1: {} + + react-refresh@0.14.2: {} + + react-remove-scroll-bar@2.3.6(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514): + dependencies: + react: 19.0.0-beta-26f2496093-20240514 + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + tslib: 2.6.2 + optionalDependencies: + '@types/react': 18.3.3 + + react-remove-scroll@2.5.5(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514): + dependencies: + react: 19.0.0-beta-26f2496093-20240514 + react-remove-scroll-bar: 2.3.6(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + tslib: 2.6.2 + use-callback-ref: 1.3.2(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + use-sidecar: 1.1.2(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514) + optionalDependencies: + '@types/react': 18.3.3 + + react-style-singleton@2.2.1(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514): + dependencies: + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 19.0.0-beta-26f2496093-20240514 + tslib: 2.6.2 + optionalDependencies: + '@types/react': 18.3.3 + + react@19.0.0-beta-26f2496093-20240514: {} + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + read-pkg-up@7.0.1: + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + refa@0.12.1: + dependencies: + '@eslint-community/regexpp': 4.10.0 + + regenerator-runtime@0.14.1: {} + + regexp-ast-analysis@0.7.1: + dependencies: + '@eslint-community/regexpp': 4.10.0 + refa: 0.12.1 + + regexp-tree@0.1.27: {} + + regjsparser@0.10.0: + dependencies: + jsesc: 0.5.0 + + require-directory@2.1.1: {} + + resolve-from@4.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.0.4: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rollup@4.18.0: + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.18.0 + '@rollup/rollup-android-arm64': 4.18.0 + '@rollup/rollup-darwin-arm64': 4.18.0 + '@rollup/rollup-darwin-x64': 4.18.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 + '@rollup/rollup-linux-arm-musleabihf': 4.18.0 + '@rollup/rollup-linux-arm64-gnu': 4.18.0 + '@rollup/rollup-linux-arm64-musl': 4.18.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 + '@rollup/rollup-linux-riscv64-gnu': 4.18.0 + '@rollup/rollup-linux-s390x-gnu': 4.18.0 + '@rollup/rollup-linux-x64-gnu': 4.18.0 + '@rollup/rollup-linux-x64-musl': 4.18.0 + '@rollup/rollup-win32-arm64-msvc': 4.18.0 + '@rollup/rollup-win32-ia32-msvc': 4.18.0 + '@rollup/rollup-win32-x64-msvc': 4.18.0 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + scheduler@0.25.0-beta-26f2496093-20240514: {} + + scslre@0.3.0: + dependencies: + '@eslint-community/regexpp': 4.10.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + + semver@5.7.2: {} + + semver@6.3.1: {} + + semver@7.6.2: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + siginfo@2.0.0: {} + + signal-exit@4.1.0: {} + + sisteransi@1.0.5: {} + + slash@3.0.0: {} + + source-map-js@1.2.0: {} + + source-map@0.5.7: {} + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.18 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.18 + + spdx-expression-parse@4.0.0: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.18 + + spdx-license-ids@3.0.18: {} + + stackback@0.0.2: {} + + std-env@3.7.0: {} + + string-argv@0.3.2: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.0.1 + + strip-bom@3.0.0: {} + + strip-final-newline@3.0.0: {} + + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@3.1.1: {} + + strip-literal@2.1.0: + dependencies: + js-tokens: 9.0.0 + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.4.1 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + superstruct@1.0.4: {} + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + svelte2tsx@0.7.8(svelte@4.2.17)(typescript@5.4.5): + dependencies: + dedent-js: 1.0.1 + pascal-case: 3.1.2 + svelte: 4.2.17 + typescript: 5.4.5 + + svelte@4.2.17: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + '@types/estree': 1.0.5 + acorn: 8.11.3 + aria-query: 5.3.0 + axobject-query: 4.0.0 + code-red: 1.0.4 + css-tree: 2.3.1 + estree-walker: 3.0.3 + is-reference: 3.0.2 + locate-character: 3.0.0 + magic-string: 0.30.10 + periscopic: 3.1.0 + + synckit@0.6.2: + dependencies: + tslib: 2.6.2 + + tailwind-merge@2.3.0: + dependencies: + '@babel/runtime': 7.24.6 + + tailwindcss-animate@1.0.7(tailwindcss@3.4.3): + dependencies: + tailwindcss: 3.4.3 + + tailwindcss@3.4.3: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.0 + lilconfig: 2.1.0 + micromatch: 4.0.7 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.1 + postcss: 8.4.38 + postcss-import: 15.1.0(postcss@8.4.38) + postcss-js: 4.0.1(postcss@8.4.38) + postcss-load-config: 4.0.2(postcss@8.4.38) + postcss-nested: 6.0.1(postcss@8.4.38) + postcss-selector-parser: 6.1.0 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + tapable@2.2.1: {} + + text-table@0.2.0: {} + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + tinybench@2.8.0: {} + + tinypool@0.8.4: {} + + tinyspy@2.2.1: {} + + to-fast-properties@2.0.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toml-eslint-parser@0.9.3: + dependencies: + eslint-visitor-keys: 3.4.3 + + trim-right@1.0.1: {} + + ts-api-utils@1.3.0(typescript@5.4.5): + dependencies: + typescript: 5.4.5 + + ts-interface-checker@0.1.13: {} + + tsconfig-paths@4.2.0: + dependencies: + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@2.6.2: {} + + tweetnacl@1.0.3: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-detect@4.0.8: {} + + type-fest@0.20.2: {} + + type-fest@0.6.0: {} + + type-fest@0.8.1: {} + + typescript@5.4.5: {} + + ufo@1.5.3: {} + + undici-types@5.26.5: {} + + unicorn-magic@0.1.0: {} + + unist-util-stringify-position@2.0.3: + dependencies: + '@types/unist': 2.0.10 + + update-browserslist-db@1.0.16(browserslist@4.23.0): + dependencies: + browserslist: 4.23.0 + escalade: 3.1.2 + picocolors: 1.0.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + use-callback-ref@1.3.2(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514): + dependencies: + react: 19.0.0-beta-26f2496093-20240514 + tslib: 2.6.2 + optionalDependencies: + '@types/react': 18.3.3 + + use-sidecar@1.1.2(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514): + dependencies: + detect-node-es: 1.1.0 + react: 19.0.0-beta-26f2496093-20240514 + tslib: 2.6.2 + optionalDependencies: + '@types/react': 18.3.3 + + use-sync-external-store@1.2.0(react@19.0.0-beta-26f2496093-20240514): + dependencies: + react: 19.0.0-beta-26f2496093-20240514 + + util-deprecate@1.0.2: {} + + valibot@0.25.0: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + vite-node@1.6.0(@types/node@20.12.12): + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.2 + picocolors: 1.0.1 + vite: 5.2.11(@types/node@20.12.12) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + vite@5.2.11(@types/node@20.12.12): + dependencies: + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.18.0 + optionalDependencies: + '@types/node': 20.12.12 + fsevents: 2.3.3 + + vitest@1.6.0(@types/node@20.12.12): + dependencies: + '@vitest/expect': 1.6.0 + '@vitest/runner': 1.6.0 + '@vitest/snapshot': 1.6.0 + '@vitest/spy': 1.6.0 + '@vitest/utils': 1.6.0 + acorn-walk: 8.3.2 + chai: 4.4.1 + debug: 4.3.4 + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.10 + pathe: 1.1.2 + picocolors: 1.0.1 + std-env: 3.7.0 + strip-literal: 2.1.0 + tinybench: 2.8.0 + tinypool: 0.8.4 + vite: 5.2.11(@types/node@20.12.12) + vite-node: 1.6.0(@types/node@20.12.12) + why-is-node-running: 2.2.2 + optionalDependencies: + '@types/node': 20.12.12 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + vue-eslint-parser@9.4.2(eslint@8.57.0): + dependencies: + debug: 4.3.4 + eslint: 8.57.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + lodash: 4.17.21 + semver: 7.6.2 + transitivePeerDependencies: + - supports-color + + vue-template-compiler@2.7.16: + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + why-is-node-running@2.2.2: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + word-wrap@1.2.5: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + xml-name-validator@4.0.0: {} + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yaml-eslint-parser@1.2.3: + dependencies: + eslint-visitor-keys: 3.4.3 + lodash: 4.17.21 + yaml: 2.4.2 + + yaml@2.4.2: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@0.1.0: {} + + yocto-queue@1.0.0: {} + + zod-validation-error@2.1.0(zod@3.23.8): + dependencies: + zod: 3.23.8 + + zod-validation-error@3.3.0(zod@3.23.8): + dependencies: + zod: 3.23.8 + + zod@3.23.8: {} + + zustand@4.5.2(@types/react@18.3.3)(react@19.0.0-beta-26f2496093-20240514): + dependencies: + use-sync-external-store: 1.2.0(react@19.0.0-beta-26f2496093-20240514) + optionalDependencies: + '@types/react': 18.3.3 + react: 19.0.0-beta-26f2496093-20240514 diff --git a/mover/gaowanlang/code/t6/postcss.config.js b/mover/gaowanlang/code/t6/postcss.config.js new file mode 100644 index 000000000..b78d0e78e --- /dev/null +++ b/mover/gaowanlang/code/t6/postcss.config.js @@ -0,0 +1,7 @@ +// postcss.config.js +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/mover/gaowanlang/code/t6/public/vite.svg b/mover/gaowanlang/code/t6/public/vite.svg new file mode 100644 index 000000000..e7b8dfb1b --- /dev/null +++ b/mover/gaowanlang/code/t6/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mover/gaowanlang/code/t6/src/App.css b/mover/gaowanlang/code/t6/src/App.css new file mode 100644 index 000000000..9858d256a --- /dev/null +++ b/mover/gaowanlang/code/t6/src/App.css @@ -0,0 +1,39 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + + +.read-the-docs { + color: #888; +} diff --git a/mover/gaowanlang/code/t6/src/App.tsx b/mover/gaowanlang/code/t6/src/App.tsx new file mode 100644 index 000000000..9e14d3540 --- /dev/null +++ b/mover/gaowanlang/code/t6/src/App.tsx @@ -0,0 +1,102 @@ +// PTB(Programmable Transaction Block)是一种特殊的交易结构, +// 能够在Sui区块链上执行复杂的操作。它不仅仅是一个简单的交易, +// 而是一个包含多种指令和逻辑的区块,可以在单个交易中实现多个操作。 +import './App.css' +import { ConnectButton, useCurrentAccount, useSignAndExecuteTransactionBlock } from '@mysten/dapp-kit' +import { TransactionBlock } from '@mysten/sui.js/transactions' +import dayjs from 'dayjs' +import { Sui, USDC, pool } from 'navi-sdk/dist/address' +import type { Pool } from 'navi-sdk/dist/types' +import { borrowCoin, depositCoin } from 'navi-sdk/dist/libs/PTB' +import WalletStatus from '@/pages/WalletStatus.tsx' +import { Button } from '@/components/ui/button.tsx' + +// SUI 代币的符号 +const SUI_SYMBOL = Sui.symbol as keyof Pool +// USDC 代币的符号 +const USDC_SYMBOL = USDC.symbol as keyof Pool +// SUI的精度 +const SUI_DECIMAL = 1e9 +// USDC的精度 +const USDC_DECIMAL = 1e6 + +function App() { + // 任务 必须在同一个PTB完成 Navi SDK + // 1.[存入Navi Protocol 1 SUI] + // 2.[借出当前日期的USDC 0.[月][天][小时] 的 USDC ] + // 3.[然后在存入等额的USDC] + + // 当前账户 + const currentAccount = useCurrentAccount() + // 钱包对象 + // const wallet = useWallet() + // 签名和执行交易块的函数 + const { mutate } = useSignAndExecuteTransactionBlock() + + // 应该借出的USDC金额 + const shouldBorrowAmount = () => { + const currentTime = dayjs().format('MMDDHH') + const borrowFloat = Number.parseFloat('0.'.concat(currentTime)) + return borrowFloat * USDC_DECIMAL + } + // 存入和借出,再存入 + const depositBorrowDeposit = async () => { + if (!currentAccount) + return + const sender = currentAccount.address + const txBlock = new TransactionBlock() + txBlock.setSender(sender) // 给交易数据绑定发送者 + + // 1.[存入Navi Protocol 1 SUI] + const depositAmount = SUI_DECIMAL // 存入的金额 + const suiPool = pool[SUI_SYMBOL] + const [toDepositCoin] = txBlock.splitCoins(txBlock.gas, [depositAmount]) // 切割coin + await depositCoin(txBlock, suiPool, toDepositCoin, depositAmount) + + // 2.[借出当前日期的USDC 0.[月][天][小时] 的 USDC ] + const borrowAmount = shouldBorrowAmount() + const usdcPool = pool[USDC_SYMBOL] + const [toBorrowCoin] = await borrowCoin(txBlock, usdcPool, borrowAmount) + + // console.log('toBorrowCoin', toBorrowCoin) + // 3.[然后在存入等额的USDC] + await depositCoin(txBlock, usdcPool, toBorrowCoin, borrowAmount) + + // 上面三个过程的交易的变动,都存在txBlock中,将txBlock签名并发送到链上 + mutate({ + transactionBlock: txBlock, + // chain: 'sui::testnet', + chain: 'sui::mainnet', + }, { + onSuccess: (result) => { + console.log('执行交易成功:', result) + }, + onError: (error) => { + console.log('执行交易失败:', error) + }, + onSettled: (result) => { + console.log('交易结束:', result) + }, + }) + } + + return ( + <> +
+
+ {/* 连接钱包的按钮 */} + +
+
+ {/* 连接的状态 */} + +
+ +
+ + ) +} + +export default App diff --git a/mover/gaowanlang/code/t6/src/assets/react.svg b/mover/gaowanlang/code/t6/src/assets/react.svg new file mode 100644 index 000000000..6c87de9bb --- /dev/null +++ b/mover/gaowanlang/code/t6/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mover/gaowanlang/code/t6/src/components/ui/button.tsx b/mover/gaowanlang/code/t6/src/components/ui/button.tsx new file mode 100644 index 000000000..9473fdb9a --- /dev/null +++ b/mover/gaowanlang/code/t6/src/components/ui/button.tsx @@ -0,0 +1,56 @@ +import * as React from 'react' +import { Slot } from '@radix-ui/react-slot' +import { type VariantProps, cva } from 'class-variance-authority' + +import { cn } from '@/lib/utils' + +const buttonVariants = cva( + 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50', + { + variants: { + variant: { + default: 'bg-primary text-primary-foreground hover:bg-primary/90', + destructive: + 'bg-destructive text-destructive-foreground hover:bg-destructive/90', + outline: + 'border border-input bg-background hover:bg-accent hover:text-accent-foreground', + secondary: + 'bg-secondary text-secondary-foreground hover:bg-secondary/80', + ghost: 'hover:bg-accent hover:text-accent-foreground', + link: 'text-primary underline-offset-4 hover:underline', + }, + size: { + default: 'h-10 px-4 py-2', + sm: 'h-9 rounded-md px-3', + lg: 'h-11 rounded-md px-8', + icon: 'h-10 w-10', + }, + }, + defaultVariants: { + variant: 'default', + size: 'default', + }, + }, +) + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : 'button' + return ( + + ) + }, +) +Button.displayName = 'Button' + +export { Button, buttonVariants } diff --git a/mover/gaowanlang/code/t6/src/components/ui/card.tsx b/mover/gaowanlang/code/t6/src/components/ui/card.tsx new file mode 100644 index 000000000..c5d18d4f7 --- /dev/null +++ b/mover/gaowanlang/code/t6/src/components/ui/card.tsx @@ -0,0 +1,79 @@ +import * as React from 'react' + +import { cn } from '@/lib/utils' + +const Card = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +Card.displayName = 'Card' + +const CardHeader = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardHeader.displayName = 'CardHeader' + +const CardTitle = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)) +CardTitle.displayName = 'CardTitle' + +const CardDescription = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)) +CardDescription.displayName = 'CardDescription' + +const CardContent = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)) +CardContent.displayName = 'CardContent' + +const CardFooter = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardFooter.displayName = 'CardFooter' + +export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } diff --git a/mover/gaowanlang/code/t6/src/index.css b/mover/gaowanlang/code/t6/src/index.css new file mode 100644 index 000000000..6119ad9a8 --- /dev/null +++ b/mover/gaowanlang/code/t6/src/index.css @@ -0,0 +1,68 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/mover/gaowanlang/code/t6/src/lib/utils.ts b/mover/gaowanlang/code/t6/src/lib/utils.ts new file mode 100644 index 000000000..d32b0fe65 --- /dev/null +++ b/mover/gaowanlang/code/t6/src/lib/utils.ts @@ -0,0 +1,6 @@ +import { type ClassValue, clsx } from 'clsx' +import { twMerge } from 'tailwind-merge' + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/mover/gaowanlang/code/t6/src/main.tsx b/mover/gaowanlang/code/t6/src/main.tsx new file mode 100644 index 000000000..997ba3a21 --- /dev/null +++ b/mover/gaowanlang/code/t6/src/main.tsx @@ -0,0 +1,31 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App.tsx' +import './index.css' +import '@/styles/globals.css' +import '@mysten/dapp-kit/dist/index.css' +import { QueryClient, QueryClientProvider } from '@tanstack/react-query' +import { SuiClientProvider, WalletProvider, createNetworkConfig } from '@mysten/dapp-kit' +import { getFullnodeUrl } from '@mysten/sui.js/client' +// 查询库的实例 +const queryClient = new QueryClient() + +// 我日,这里地方一定要注意,注入的networkConfig,一定要是mainnet放在第一个,因为navi-sdk会直接使用第一个 +// 或者在注入的地方,写defaultNetwork +const { networkConfig } = createNetworkConfig({ + mainnet: { url: getFullnodeUrl('mainnet') }, + testnet: { url: getFullnodeUrl('testnet') }, +}) + +ReactDOM.createRoot(document.getElementById('root')!).render( + + {/* 依次注入 QueryClientProvider SuiClientProvider WalletProvider 上下文 */} + + + + + + + + , +) diff --git a/mover/gaowanlang/code/t6/src/pages/OwnedObject.tsx b/mover/gaowanlang/code/t6/src/pages/OwnedObject.tsx new file mode 100644 index 000000000..7a289b189 --- /dev/null +++ b/mover/gaowanlang/code/t6/src/pages/OwnedObject.tsx @@ -0,0 +1,53 @@ +// 显示连接的钱包地址,持有的objects +import { useCurrentAccount, useSuiClientQuery } from '@mysten/dapp-kit' + +function OwnedObject() { + const currentAccount = useCurrentAccount() + + const { data, isPending, error } = useSuiClientQuery( + 'getOwnedObjects', + { + owner: `${currentAccount?.address}`, + }, + { + enabled: !!currentAccount, + }, + ) + if (!currentAccount) + return + + if (error) { + return ( +
+ Error: + {error.message} +
+ ) + } + if (isPending || !data) + return
Loading...
+ + return ( +
+ {data.data.length > 0 + ? ( + + 连接的钱包拥有以下对象: + + ) + : ( + 连接的钱包没有拥有任何对象 + )} + {data.data.map(obj => ( +
+ + ObjectId: + {obj.data?.objectId} + +
+ ))} +
+ ) +} + +export default OwnedObject diff --git a/mover/gaowanlang/code/t6/src/pages/WalletStatus.tsx b/mover/gaowanlang/code/t6/src/pages/WalletStatus.tsx new file mode 100644 index 000000000..277693622 --- /dev/null +++ b/mover/gaowanlang/code/t6/src/pages/WalletStatus.tsx @@ -0,0 +1,30 @@ +// 钱包状态组件 +import { useCurrentAccount } from '@mysten/dapp-kit' +import { Card, CardContent, CardHeader } from '@/components/ui/card.tsx' +import OwnedObject from '@/pages/OwnedObject.tsx' + +function WalletStatus() { + const currentAccount = useCurrentAccount() + return ( + + 账号状态 + + {currentAccount + ? ( + <> +
+ 钱包已连接 +
+
+ {currentAccount.address} +
+ + ) + :
未连接钱包
} + +
+
+ ) +} + +export default WalletStatus diff --git a/mover/gaowanlang/code/t6/src/styles/globals.css b/mover/gaowanlang/code/t6/src/styles/globals.css new file mode 100644 index 000000000..4ef0baf87 --- /dev/null +++ b/mover/gaowanlang/code/t6/src/styles/globals.css @@ -0,0 +1,76 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 222.2 84% 4.9%; + + --card: 0 0% 100%; + --card-foreground: 222.2 84% 4.9%; + + --popover: 0 0% 100%; + --popover-foreground: 222.2 84% 4.9%; + + --primary: 222.2 47.4% 11.2%; + --primary-foreground: 210 40% 98%; + + --secondary: 210 40% 96.1%; + --secondary-foreground: 222.2 47.4% 11.2%; + + --muted: 210 40% 96.1%; + --muted-foreground: 215.4 16.3% 46.9%; + + --accent: 210 40% 96.1%; + --accent-foreground: 222.2 47.4% 11.2%; + + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 210 40% 98%; + + --border: 214.3 31.8% 91.4%; + --input: 214.3 31.8% 91.4%; + --ring: 222.2 84% 4.9%; + + --radius: 0.5rem; + } + + .dark { + --background: 222.2 84% 4.9%; + --foreground: 210 40% 98%; + + --card: 222.2 84% 4.9%; + --card-foreground: 210 40% 98%; + + --popover: 222.2 84% 4.9%; + --popover-foreground: 210 40% 98%; + + --primary: 210 40% 98%; + --primary-foreground: 222.2 47.4% 11.2%; + + --secondary: 217.2 32.6% 17.5%; + --secondary-foreground: 210 40% 98%; + + --muted: 217.2 32.6% 17.5%; + --muted-foreground: 215 20.2% 65.1%; + + --accent: 217.2 32.6% 17.5%; + --accent-foreground: 210 40% 98%; + + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 210 40% 98%; + + --border: 217.2 32.6% 17.5%; + --input: 217.2 32.6% 17.5%; + --ring: 212.7 26.8% 83.9%; + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} \ No newline at end of file diff --git a/mover/gaowanlang/code/t6/src/vite-env.d.ts b/mover/gaowanlang/code/t6/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/mover/gaowanlang/code/t6/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mover/gaowanlang/code/t6/tailwind.config.js b/mover/gaowanlang/code/t6/tailwind.config.js new file mode 100644 index 000000000..93d2ac278 --- /dev/null +++ b/mover/gaowanlang/code/t6/tailwind.config.js @@ -0,0 +1,77 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + darkMode: ['class'], + content: [ + './pages/**/*.{ts,tsx}', + './components/**/*.{ts,tsx}', + './app/**/*.{ts,tsx}', + './src/**/*.{ts,tsx}', + ], + prefix: '', + theme: { + container: { + center: true, + padding: '2rem', + screens: { + '2xl': '1400px', + }, + }, + extend: { + colors: { + border: 'hsl(var(--border))', + input: 'hsl(var(--input))', + ring: 'hsl(var(--ring))', + background: 'hsl(var(--background))', + foreground: 'hsl(var(--foreground))', + primary: { + DEFAULT: 'hsl(var(--primary))', + foreground: 'hsl(var(--primary-foreground))', + }, + secondary: { + DEFAULT: 'hsl(var(--secondary))', + foreground: 'hsl(var(--secondary-foreground))', + }, + destructive: { + DEFAULT: 'hsl(var(--destructive))', + foreground: 'hsl(var(--destructive-foreground))', + }, + muted: { + DEFAULT: 'hsl(var(--muted))', + foreground: 'hsl(var(--muted-foreground))', + }, + accent: { + DEFAULT: 'hsl(var(--accent))', + foreground: 'hsl(var(--accent-foreground))', + }, + popover: { + DEFAULT: 'hsl(var(--popover))', + foreground: 'hsl(var(--popover-foreground))', + }, + card: { + DEFAULT: 'hsl(var(--card))', + foreground: 'hsl(var(--card-foreground))', + }, + }, + borderRadius: { + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)', + }, + keyframes: { + 'accordion-down': { + from: { height: '0' }, + to: { height: 'var(--radix-accordion-content-height)' }, + }, + 'accordion-up': { + from: { height: 'var(--radix-accordion-content-height)' }, + to: { height: '0' }, + }, + }, + animation: { + 'accordion-down': 'accordion-down 0.2s ease-out', + 'accordion-up': 'accordion-up 0.2s ease-out', + }, + }, + }, + plugins: [require('tailwindcss-animate')], +} diff --git a/mover/gaowanlang/code/t6/tsconfig.json b/mover/gaowanlang/code/t6/tsconfig.json new file mode 100644 index 000000000..dca7c11c6 --- /dev/null +++ b/mover/gaowanlang/code/t6/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "target": "ES2020", + "jsx": "react-jsx", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "useDefineForClassFields": true, + "baseUrl": ".", + "module": "ESNext", + + /* Bundler mode */ + "moduleResolution": "bundler", + "paths": { + "@/*": [ + "./src/*" + ] + }, + "resolveJsonModule": true, + "allowImportingTsExtensions": true, + + /* Linting */ + "strict": true, + "noFallthroughCasesInSwitch": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noEmit": true, + "isolatedModules": true, + "skipLibCheck": true + }, + "references": [{ "path": "./tsconfig.node.json" }], + "include": ["src"] +} diff --git a/mover/gaowanlang/code/t6/tsconfig.node.json b/mover/gaowanlang/code/t6/tsconfig.node.json new file mode 100644 index 000000000..38a9d9339 --- /dev/null +++ b/mover/gaowanlang/code/t6/tsconfig.node.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "bundler", + "strict": true, + "allowSyntheticDefaultImports": true, + "skipLibCheck": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/gaowanlang/code/t6/vite.config.ts b/mover/gaowanlang/code/t6/vite.config.ts new file mode 100644 index 000000000..47a05640e --- /dev/null +++ b/mover/gaowanlang/code/t6/vite.config.ts @@ -0,0 +1,25 @@ +import * as path from 'node:path' +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +const ReactCompilerConfig = { /* ... */} + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + react( + { + babel: { + plugins: [ + ['babel-plugin-react-compiler', ReactCompilerConfig], + ], + }, + }, + ), + ], + resolve: { + alias: { + '@': path.resolve(__dirname, './src'), + }, + }, +}) diff --git a/mover/gaowanlang/readme.md b/mover/gaowanlang/readme.md index 63b27bab1..8ed9e1c25 100644 --- a/mover/gaowanlang/readme.md +++ b/mover/gaowanlang/readme.md @@ -43,4 +43,4 @@ - [] call swap CoinB-> CoinA hash : 2xzh3AbyWns9UbNZUG6CeCsd5uiQqNBCfUme5AYhGY6Y ## 06 SDK PTB -- [] save hash : +- [] save hash : A5njipF22AQJP3dRgmHQB6KPJfpZM7hfgXw5qB1Xdx8S diff --git a/mover/goldpumpkin/code/task1/hello_move/Move.toml b/mover/goldpumpkin/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/goldpumpkin/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/goldpumpkin/code/task1/hello_move/sources/hello_move.move b/mover/goldpumpkin/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..c7a79fff6 --- /dev/null +++ b/mover/goldpumpkin/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"move"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/goldpumpkin/code/task1/hello_move/tests/hello_move_tests.move b/mover/goldpumpkin/code/task1/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..6db1eea3a --- /dev/null +++ b/mover/goldpumpkin/code/task1/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/goldpumpkin/code/task2/faucet_coin/Move.lock b/mover/goldpumpkin/code/task2/faucet_coin/Move.lock new file mode 100644 index 000000000..357c4d0b4 --- /dev/null +++ b/mover/goldpumpkin/code/task2/faucet_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "6CA6BA8684E52C7425AB87DEB7B8D2BFF9FE2442552828717AC503B9C50DD72B" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.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.mainnet] +chain-id = "35834a8a" +original-published-id = "0xc2ef43cfeac82601ff1384bcb8ae45cfd8a632503f60fbc92aa71ea776ee1707" +latest-published-id = "0xc2ef43cfeac82601ff1384bcb8ae45cfd8a632503f60fbc92aa71ea776ee1707" +published-version = "1" diff --git a/mover/goldpumpkin/code/task2/faucet_coin/Move.toml b/mover/goldpumpkin/code/task2/faucet_coin/Move.toml new file mode 100644 index 000000000..7823c8b73 --- /dev/null +++ b/mover/goldpumpkin/code/task2/faucet_coin/Move.toml @@ -0,0 +1,38 @@ +[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)"] +published-at = "0xc2ef43cfeac82601ff1384bcb8ae45cfd8a632503f60fbc92aa71ea776ee1707" + +[dependencies] +Sui = { git = "https://gitee.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] +faucet_coin = "0xc2ef43cfeac82601ff1384bcb8ae45cfd8a632503f60fbc92aa71ea776ee1707" + +# 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/goldpumpkin/code/task2/faucet_coin/sources/faucetcoin.move b/mover/goldpumpkin/code/task2/faucet_coin/sources/faucetcoin.move new file mode 100644 index 000000000..0ce922865 --- /dev/null +++ b/mover/goldpumpkin/code/task2/faucet_coin/sources/faucetcoin.move @@ -0,0 +1,42 @@ +/// Module: faucetcoin +module faucet_coin::faucetcoin { + + use sui::coin; + + /// The type identifier of coin. The coin will have a type + /// tag of kind: `Coin` + /// Make sure that the name of the type matches the module's name. + public struct FAUCETCOIN has drop {} + + fun init(witness: FAUCETCOIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, // decimals + b"FGMCC", // symbol + b"Faucet Coin Neo", // name + b"Don't ask why", // description + option::none(), // icon url + ctx + ); + + // metadata is typically frozen after creation + transfer::public_freeze_object(metadata); + + // share the object to everyone + transfer::public_share_object(treasury); + + } + + public entry fun mint(cap: &mut coin::TreasuryCap, amount: u64, recv: address, ctx: &mut TxContext) { + coin::mint_and_transfer(cap, amount, recv, ctx); + } + + public entry fun burn(treasury: &mut coin::TreasuryCap, coin: coin::Coin) { + coin::burn(treasury, coin); + } + + #[test_only] + public fun test_init(ctx: &mut TxContext) { + init(FAUCETCOIN {}, ctx) + } +} diff --git a/mover/goldpumpkin/code/task2/faucet_coin/tests/faucet_coin_tests.move b/mover/goldpumpkin/code/task2/faucet_coin/tests/faucet_coin_tests.move new file mode 100644 index 000000000..e0ea896c8 --- /dev/null +++ b/mover/goldpumpkin/code/task2/faucet_coin/tests/faucet_coin_tests.move @@ -0,0 +1,64 @@ +#[test_only] +module faucet_coin::faucet_coin_tests { + + use sui::coin; + use sui::coin::{TreasuryCap, Coin}; + use sui::test_scenario; + use sui::test_scenario::{begin, end}; + use faucet_coin::faucetcoin::{test_init, FAUCETCOIN, mint}; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_faucet_coin() { + let (bernard, manny) = (@0x1, @0x2); + + // create a test scenario with sender; initiates the first transaction + let mut scenario = begin(bernard); + + // faucet coin init + { + test_init(test_scenario::ctx(&mut scenario)); + }; + + // Mint 操作 + test_scenario::next_tx(&mut scenario, bernard); + { + let mut treasury_cap = test_scenario::take_shared>(&scenario); + mint(&mut treasury_cap, 100000000, bernard, test_scenario::ctx(&mut scenario)); + test_scenario::return_shared(treasury_cap); + }; + + // 验证 mint 是否成功,以及数量是否正确 + test_scenario::next_tx(&mut scenario, bernard); + { + let coin = test_scenario::take_from_address>(&scenario, bernard); + assert!(coin::value(&coin) == 100000000, 1); + test_scenario::return_to_address(bernard, coin); + }; + + + // address2 mint + let mut scenario2 = begin(manny); + test_scenario::next_tx(&mut scenario2, manny); + { + let mut treasury_cap = test_scenario::take_shared>(&scenario2); + mint(&mut treasury_cap, 1, manny, test_scenario::ctx(&mut scenario2)); + test_scenario::return_shared(treasury_cap); + }; + test_scenario::next_tx(&mut scenario2, manny); + { + let coin = test_scenario::take_from_address>(&scenario2, manny); + assert!(coin::value(&coin) == 1, 2); + test_scenario::return_to_address(manny, coin); + }; + + end(scenario); + end(scenario2); + } + + #[test, expected_failure(abort_code = faucet_coin::faucet_coin_tests::ENotImplemented)] + fun test_faucet_coin_fail() { + abort ENotImplemented + } +} \ No newline at end of file diff --git a/mover/goldpumpkin/code/task2/my_coin/Move.lock b/mover/goldpumpkin/code/task2/my_coin/Move.lock new file mode 100644 index 000000000..8b85058c5 --- /dev/null +++ b/mover/goldpumpkin/code/task2/my_coin/Move.lock @@ -0,0 +1,21 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "0A4652D38CF3C3FDB79EC6C1C98FCFF7B2E933E12B84A1DA267DB28F66AFECE3" +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" }, +] diff --git a/mover/goldpumpkin/code/task2/my_coin/Move.toml b/mover/goldpumpkin/code/task2/my_coin/Move.toml new file mode 100644 index 000000000..b9ca003f8 --- /dev/null +++ b/mover/goldpumpkin/code/task2/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://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] +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/goldpumpkin/code/task2/my_coin/READEME.md b/mover/goldpumpkin/code/task2/my_coin/READEME.md new file mode 100644 index 000000000..2b564e021 --- /dev/null +++ b/mover/goldpumpkin/code/task2/my_coin/READEME.md @@ -0,0 +1 @@ +https://examples.sui.io/samples/coin.html \ No newline at end of file diff --git a/mover/goldpumpkin/code/task2/my_coin/sources/mycoin.move b/mover/goldpumpkin/code/task2/my_coin/sources/mycoin.move new file mode 100644 index 000000000..859cd87f9 --- /dev/null +++ b/mover/goldpumpkin/code/task2/my_coin/sources/mycoin.move @@ -0,0 +1,40 @@ +/// Module: my_coin +module my_coin::mycoin { + + use std::option; + use sui::coin; + use sui::transfer; + use sui::tx_context; + use sui::tx_context::TxContext; + + /// The type identifier of coin. The coin will have a type + /// tag of kind: `Coin` + /// Make sure that the name of the type matches the module's name. + public struct MYCOIN has drop {} + + fun init(witness: MYCOIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, // decimals + b"GMC", // symbol + b"My Coin", // name + b"Don't ask why", // description + option::none(), // icon url + ctx + ); + + // transfer the `TreasuryCap` to the sender, so they can mint and burn + transfer::public_transfer(treasury, tx_context::sender(ctx)); + + // metadata is typically frozen after creation + transfer::public_freeze_object(metadata); + } + + public entry fun mint(cap: &mut coin::TreasuryCap, amount: u64, recv: address, ctx: &mut TxContext) { + coin::mint_and_transfer(cap, amount, recv, ctx); + } + + public entry fun burn(treasury: &mut coin::TreasuryCap, coin: coin::Coin) { + coin::burn(treasury, coin); + } +} diff --git a/mover/goldpumpkin/code/task2/my_coin/tests/my_coin_tests.move b/mover/goldpumpkin/code/task2/my_coin/tests/my_coin_tests.move new file mode 100644 index 000000000..32e7ef866 --- /dev/null +++ b/mover/goldpumpkin/code/task2/my_coin/tests/my_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[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/goldpumpkin/code/task3/README.md b/mover/goldpumpkin/code/task3/README.md new file mode 100644 index 000000000..584c4c891 --- /dev/null +++ b/mover/goldpumpkin/code/task3/README.md @@ -0,0 +1,36 @@ +## NFT + +## Concept + +[NFT](https://www.investopedia.com/non-fungible-tokens-nft-5115211) + +## Reference + +- [developer-nft](https://docs.sui.io/guides/developer/nft) +- [samples-nft](https://examples.sui.io/samples/nft.html) + +## Build +`sui move build` + +## Publish package +`sui client publish ` + +## Mint my first MFT + +``` +sui client call \ +--package 0xc3a53ecab42cf15733267b9d9dfa23aaa5b44046ef32d5e57034011b67d71906 \ +--module nft \ +--function mint_to_sender \ +--args 'goldpumpkin nft' 'first nft of goldpumpkin' 'https://avatars.githubusercontent.com/u/22197388?v=4' +``` + +## Transfer the nft just minted to the specified address + +``` +sui client call \ +--package 0xc3a53ecab42cf15733267b9d9dfa23aaa5b44046ef32d5e57034011b67d71906 \ +--module nft \ +--function transfer \ +--args 0x03c80ebec2bf7e61ad68783c99357d74f791198fb6a7e6dddc379d4d433dc33e 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 +``` \ No newline at end of file diff --git a/mover/goldpumpkin/code/task3/nft/Move.lock b/mover/goldpumpkin/code/task3/nft/Move.lock new file mode 100644 index 000000000..61b8c2f73 --- /dev/null +++ b/mover/goldpumpkin/code/task3/nft/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "9D4FCF5807A34E3110DFBA44AD92FEFEC55EE3DE8CF58F3D302F55D3004E70D1" +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.22.0" +edition = "legacy" +flavor = "sui" diff --git a/mover/goldpumpkin/code/task3/nft/Move.toml b/mover/goldpumpkin/code/task3/nft/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/goldpumpkin/code/task3/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/goldpumpkin/code/task3/nft/sources/nft.move b/mover/goldpumpkin/code/task3/nft/sources/nft.move new file mode 100644 index 000000000..c66c1038c --- /dev/null +++ b/mover/goldpumpkin/code/task3/nft/sources/nft.move @@ -0,0 +1,93 @@ +/// Module: nft +module nft::nft { + + use sui::url::{Self, Url}; + use std::string; + use std::string::String; + use sui::event; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + // ===== Events ===== + + public struct NFTMinted has copy, drop { + // The Object ID of the NFT + object_id: ID, + // The creator of the NFT + creator: address, + // The name of the NFT + name: string::String, + } + + // ===== Public view functions ===== + public fun name(nft: &Nft): &string::String { + &nft.name + } + + public fun description(nft: &Nft): &string::String { + &nft.description + } + + public fun url(nft: &Nft): &Url { + &nft.url + } + + public fun creator(nft: &Nft): &address { + &nft.creator + } + + // ===== Entrypoints ===== + + #[allow(lint(self_transfer))] + /// Create a new nft + public fun mint_to_sender( + name: vector, + description: vector, + url: vector, + ctx: &mut TxContext + ) { + let sender = ctx.sender(); + let nft = Nft { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + creator: sender, + url: url::new_unsafe_from_bytes(url) + }; + + event::emit(NFTMinted { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + /// transfer nft to another + public entry fun transfer( + nft: Nft, recipient: address, _: &mut TxContext + ) { + transfer::public_transfer(nft, recipient); + } + + public entry fun update_description( + nft: &mut Nft, + new_description: vector, + _: &mut TxContext + ) { + nft.description = string::utf8(new_description); + } + + /// delete NFT + public entry fun burn(nft: Nft, _: &mut TxContext) { + let Nft { id, name: _, description: _, creator: _, url: _ } = nft; + object::delete(id); + } +} diff --git a/mover/goldpumpkin/code/task3/nft/tests/nft_tests.move b/mover/goldpumpkin/code/task3/nft/tests/nft_tests.move new file mode 100644 index 000000000..ecc4de7d3 --- /dev/null +++ b/mover/goldpumpkin/code/task3/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/goldpumpkin/code/task4/README.md b/mover/goldpumpkin/code/task4/README.md new file mode 100644 index 000000000..063031463 --- /dev/null +++ b/mover/goldpumpkin/code/task4/README.md @@ -0,0 +1,60 @@ +## Game + +### Game 设计思路 + +- 猜数字-就是搏 + - 输赢逻辑:玩家把 faucet coin 的所有余额进行下注,最少下注 100,并猜测一个 0~999 的数字。并在方法的调用中,庄家下同样的注,同时按照时间生成随机数,如果玩家和庄家的数字小于 100 , 则玩家赢,否则庄家赢。 +- 资金池 + - 可存入:无限制 address + - 可取出:限制发布者 + +### Game 开发注意 + +- 需要添加依赖 + + - ``` + [dependencies] + Sui = { git = "https://gitee.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } + faucet_coin = { local = "../../task2/faucet_coin"} + ``` + + - 标注 faucent coin 的链上地址 + + - ``` + [addresses] + game = "0x0" + faucet_coin = "0xc2ef43cfeac82601ff1384bcb8ae45cfd8a632503f60fbc92aa71ea776ee1707" + ``` + +- Unit Tests + + - 在单元测试中,发现 Task2 写错了。并把 Task2 的 Unit Test 补上。 + + - 重新发布 task2 + + 由于 Task2 的 faucet coin 的 Object 没有 shared. 因此重新发布。并在 task2 的 Move.toml 中标注发布地址: + + ``` + published-at = "0xc2ef43cfeac82601ff1384bcb8ae45cfd8a632503f60fbc92aa71ea776ee1707" + ``` + + +### Game call steps + +- Publish + - `sui client publish --gas-budget 100000000 --skip-dependency-verification` +- Call `place_bet_and_create_game` + - `sui client call --function initialize_house_data --module game --package 046f6e814cb4068300300cc2cf1f7a2b601186dd82fdeb11a12b1e686069cfa6 --args 0xeabd6d077f121e0b4e3a426faf98a25e63f4bd736e133b18f4a39e4a6fb52f28 0xc3aac8c457cb7ec391d369f1046f7b486c996ab3cbcaead8ad4168aef110b75b --gas-budget 10000000` +- Play + - `export PACKAGE_ID=046f6e814cb4068300300cc2cf1f7a2b601186dd82fdeb11a12b1e686069cfa6 + export GAME_COUNTER_ID=0x4b1806b5c8b943a1e4e397070501b7b2be2edae3ddf35cec4ae7578b8c4b4c91 + export HOUSE_DATA_ID=0x9507ad7afd3443f54727791de70cb41065cff0f88af981dbc4c3df7d2c70c682 + export PLAYER_GUESS=666 + export COIN_OBJECT_ID=0x13dcc3bc2bee19884f1293b2f13f61a3ac95a2a89728f72da183c4e90f5d1ed3 + sui client call --function place_bet_and_create_game --module game --package $PACKAGE_ID --args $GAME_COUNTER_ID $HOUSE_DATA_ID $PLAYER_GUESS $COIN_OBJECT_ID 0x6 --gas-budget 10000000` + +### Game Scan + +- [Object: GameCounter](https://suiscan.xyz/mainnet/object/0x4b1806b5c8b943a1e4e397070501b7b2be2edae3ddf35cec4ae7578b8c4b4c91) +- [Object: HouseData](https://suiscan.xyz/mainnet/object/0x9507ad7afd3443f54727791de70cb41065cff0f88af981dbc4c3df7d2c70c682) +- [Object: Game](https://suiscan.xyz/mainnet/object/0xbb231bc631a195b5caaefb8a23011713418cda41f2d4915ee11758987d70b6f5) diff --git a/mover/goldpumpkin/code/task4/game/Move.lock b/mover/goldpumpkin/code/task4/game/Move.lock new file mode 100644 index 000000000..79d13db4a --- /dev/null +++ b/mover/goldpumpkin/code/task4/game/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "9807721561D9EEB847B2A4C3AED1626C2E4A4AFEC73CB24B5CE05BC858A3A45A" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "faucet_coin" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "faucet_coin" +source = { local = "../../task2/faucet_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.27.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x046f6e814cb4068300300cc2cf1f7a2b601186dd82fdeb11a12b1e686069cfa6" +latest-published-id = "0x046f6e814cb4068300300cc2cf1f7a2b601186dd82fdeb11a12b1e686069cfa6" +published-version = "1" diff --git a/mover/goldpumpkin/code/task4/game/Move.toml b/mover/goldpumpkin/code/task4/game/Move.toml new file mode 100644 index 000000000..bd8d37486 --- /dev/null +++ b/mover/goldpumpkin/code/task4/game/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "game" +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/testnet" } +faucet_coin = { local = "../../task2/faucet_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] +game = "0x0" +faucet_coin = "0xc2ef43cfeac82601ff1384bcb8ae45cfd8a632503f60fbc92aa71ea776ee1707" + +# 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" } +#faucet_coin = { local = "../../task2/faucet_coin" } + +[dev-addresses] +# The dev-addresses section allows overwriting named addresses for the `--test` +# and `--dev` modes. +# alice = "0xB0B" + diff --git a/mover/goldpumpkin/code/task4/game/sources/game.move b/mover/goldpumpkin/code/task4/game/sources/game.move new file mode 100644 index 000000000..2adfed54d --- /dev/null +++ b/mover/goldpumpkin/code/task4/game/sources/game.move @@ -0,0 +1,211 @@ +/// Module: game +module game::game { + + use sui::balance; + use sui::balance::Balance; + use sui::coin::{Self, Coin}; + use sui::clock::{Self, Clock}; + use faucet_coin::faucetcoin::{FAUCETCOIN}; + use sui::transfer::{public_transfer}; + use sui::event; + use sui::tx_context::sender; + use game::game_counter::{GameCounter, get_next_id, init_gc}; + + // ===== Event ===== + + public struct GameResult has copy, drop { + game_id: u64, + player: address, + player_guess: u64, + house_number: u64, + player_win: bool, + prize_amount: u64, + } + + // ===== Errors ===== + + const EInsufficientBalance: u64 = 0; + const EInvalidGuess: u64 = 0; + const EInsufficientBet: u64 = 1; + const EInsufficientHouseBalance: u64 = 2; + const ECallerNotHouse: u64 = 2; + const ENotEnoughInput: u64 = 3; + + // ===== Structs ===== + + // 管理员权限 + public struct HouseAdminCap has key { + id: UID + } + + // Configuration and Treasury object for the house. + public struct HouseData has key { + id: UID, + balance: Balance, + house: address, + } + + // 游戏记录 + public struct Game has key { + id: UID, + player: address, + player_guess: u64, + house_number: u64, + bet_amount: u64, + player_win: bool, + timestamp: u64, + } + + // ===== Functions ===== + + fun init(ctx: &mut TxContext) { + let house_cap = HouseAdminCap { + id: object::new(ctx) + }; + + init_gc(ctx); + + // 管理权限控制 + transfer::transfer(house_cap, ctx.sender()) + } + + /// Initializer function that should only be called once and by the creator of the contract. + /// Initializes the house data object. This object is involed in all games created by the same instance of this package. + /// @param house_cap: The HouseCap object + /// @param coin: The coin object that will be used to initialize the house balance. Acts as a treasury + public entry fun initialize_house_data( + house_cap: HouseAdminCap, + coin: Coin, + ctx: &mut TxContext + ) { + assert!(coin::value(&coin) > 0, EInsufficientBalance); + + let house_data = HouseData { + id: object::new(ctx), + balance: coin.into_balance(), + house: ctx.sender(), + }; + + let HouseAdminCap { id } = house_cap; + object::delete(id); + + transfer::share_object(house_data); + } + + // ===== 方法: 资金池 ===== + + // 转入资金 + public entry fun top_up(house_data: &mut HouseData, coin: Coin, amount: u64, ctx: &mut TxContext) { + // 校验你持有的币数量,必须 + let input_value = coin::value(&coin); + assert!(input_value >= amount, ENotEnoughInput); + + // 将余额从coin中拆出来 + let mut into_balance = coin::into_balance(coin); + balance::join( + &mut house_data.balance, + balance::split(&mut into_balance, amount) + ); + + let change = coin::from_balance(into_balance, ctx); + public_transfer(change, sender(ctx)); + } + + // 取回资金 + public entry fun withdraw(house_data: &mut HouseData, ctx: &mut TxContext) { + // only the house address can withdraw funds + assert!(ctx.sender() == house_data.house, ECallerNotHouse); + + let total_balance = house_data.balance.value(); + let coin = coin::take(&mut house_data.balance, total_balance, ctx); + transfer::public_transfer(coin, house_data.house); + } + + // 玩家调用此方法进行游戏 就是搏 + public entry fun place_bet_and_create_game( + counter: &mut GameCounter, + house_data: &mut HouseData, + player_guess: u64, + user_bet: Coin, + clock: &Clock, + ctx: &mut TxContext + ) { + // 验证玩家猜测和下注 + assert!(player_guess <= 999, EInvalidGuess); + + let bet_amount = coin::value(&user_bet); + assert!(bet_amount >= 100, EInsufficientBet); // 最小下注为 100 + assert!(balance::value(&house_data.balance) >= bet_amount, EInsufficientHouseBalance); + + // 生成庄家数字 + let house_number = generate_random(clock); + + // 判断胜负 + let player_win = is_player_win(player_guess, house_number); + + // 结算 + let prize_amount = bet_amount * 2; // 赢家获得双倍下注 + if (player_win) { + // 玩家胜,从庄家余额中支付奖金 + let mut prize = coin::take(&mut house_data.balance, bet_amount, ctx); + coin::join(&mut prize, user_bet); + transfer::public_transfer(prize, tx_context::sender(ctx)); + } else { + // 庄家胜,将玩家的下注加入庄家余额 + balance::join(&mut house_data.balance, coin::into_balance(user_bet)); + }; + + // 创建游戏记录 + let game = Game { + id: object::new(ctx), + player: tx_context::sender(ctx), + player_guess, + house_number, + bet_amount, + player_win, + timestamp: clock::timestamp_ms(clock), + }; + + // 将游戏记录作为共享对象 + transfer::share_object(game); + + // 发出游戏结果事件 + // 获取并递增计数器 + let game_id = get_next_id(counter); + event::emit(GameResult { + game_id, + player: tx_context::sender(ctx), + player_guess, + house_number, + player_win, + prize_amount: if (player_win) { prize_amount } else { 0 }, + }); + + } + + public fun generate_random(clock: &Clock): u64 { + let timestamp = clock::timestamp_ms(clock); + timestamp % 100 // 生成 0-999 之间的数 + } + + // 判断玩家是否获胜 + fun is_player_win(player_guess: u64, house_number: u64): bool { + let diff = if (player_guess > house_number) { + player_guess - house_number + } else { + house_number - player_guess + }; + + diff < 100 + } + + // === Tests === + + #[test_only] + // // The `init` is not run in tests, and normally a test_only function is + // // provided so that the module can be initialized in tests. Having it public + // // is important for tests located in other modules. + public fun init_for_testing(ctx: &mut TxContext) { + init(ctx); + } +} diff --git a/mover/goldpumpkin/code/task4/game/sources/game_counter.move b/mover/goldpumpkin/code/task4/game/sources/game_counter.move new file mode 100644 index 000000000..9696b0486 --- /dev/null +++ b/mover/goldpumpkin/code/task4/game/sources/game_counter.move @@ -0,0 +1,21 @@ +module game::game_counter { + + public struct GameCounter has key { + id: UID, + count: u64, + } + + public fun init_gc(ctx: &mut TxContext) { + let game_counter = GameCounter { + id: object::new(ctx), + count: 0, + }; + transfer::share_object(game_counter); + } + + public fun get_next_id(counter: &mut GameCounter): u64 { + let current_id = counter.count; + counter.count = counter.count + 1; + current_id + } +} \ No newline at end of file diff --git a/mover/goldpumpkin/code/task4/game/tests/game_tests.move b/mover/goldpumpkin/code/task4/game/tests/game_tests.move new file mode 100644 index 000000000..11e66e886 --- /dev/null +++ b/mover/goldpumpkin/code/task4/game/tests/game_tests.move @@ -0,0 +1,108 @@ +#[test_only] +module game::game_tests { + + use sui::clock; + use sui::coin; + use sui::test_scenario; + use sui::test_scenario::{ + begin, + end, + ctx as test_ctx, + }; + use faucet_coin::faucetcoin::{FAUCETCOIN, test_init, mint}; + use sui::coin::{Coin, TreasuryCap}; + use game::game_counter::GameCounter; + use game::game::{ + init_for_testing, + HouseAdminCap, + initialize_house_data, + HouseData, + place_bet_and_create_game, + Game + }; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_game() { + let (host, player1) = (@0x1, @0x2); + + // create a test scenario with sender; initiates the first transaction + let mut scenario = begin(host); + + // init: faucet coint & game + { + // init: faucet coint + test_init(test_ctx(&mut scenario)); + // init: game + init_for_testing(test_ctx(&mut scenario)); + }; + + // host: mint 100000000 + test_scenario::next_tx(&mut scenario, host); + { + let mut treasury_cap = test_scenario::take_shared>(&scenario); + mint(&mut treasury_cap, 100000000, host, test_scenario::ctx(&mut scenario)); + test_scenario::return_shared(treasury_cap); + }; + + // 游戏初始化 + test_scenario::next_tx(&mut scenario, host); + { + let faucetcoin = test_scenario::take_from_address>(&scenario, host); + let mut house_adming_cap = test_scenario::take_from_address(&scenario, host); + initialize_house_data(house_adming_cap, faucetcoin, test_scenario::ctx(&mut scenario)) + }; + + let mut scenario2 = begin(player1); + + // player1: mint 50000 + test_scenario::next_tx(&mut scenario2, player1); + { + let mut treasury_cap = test_scenario::take_shared>(&scenario2); + mint(&mut treasury_cap, 50000, player1, test_scenario::ctx(&mut scenario2)); + test_scenario::return_shared(treasury_cap); + }; + + + // 开始游戏 + test_scenario::next_tx(&mut scenario2, player1); + { + let mut game_counter = test_scenario::take_shared(&scenario2); + let mut house_data = test_scenario::take_shared(&scenario2); + let mut player_coin = test_scenario::take_from_address>(&scenario2, player1); + let my_clock = clock::create_for_testing(test_scenario::ctx(&mut scenario2)); + + // 下注金额 + let bet_coin = coin::split(&mut player_coin, 500, test_scenario::ctx(&mut scenario2)); + + place_bet_and_create_game(&mut game_counter, &mut house_data, 250, + bet_coin, &my_clock, test_scenario::ctx(&mut scenario2)); + + test_scenario::return_shared(game_counter); + test_scenario::return_shared(house_data); + clock::destroy_for_testing(my_clock); + test_scenario::return_to_address(player1, player_coin); + }; + + // 验证游戏结果 + test_scenario::next_tx(&mut scenario2, player1); + { + // 检查是否创建了 Game 对象 + assert!(test_scenario::has_most_recent_shared(), 0); + + // 检查玩家余额变化 + let mut player_coin = test_scenario::take_from_address>(&scenario2, player1); + let player_balance = coin::value(&player_coin); + + // 输了剩盈利 500,输了得500 + assert!(player_balance == 50500 || player_balance == 49500, 1); + + // 返回对象 + test_scenario::return_to_address(player1, player_coin); + }; + + end(scenario); + end(scenario2); + } +} diff --git a/mover/goldpumpkin/images/nft.png b/mover/goldpumpkin/images/nft.png new file mode 100644 index 000000000..4d6194632 Binary files /dev/null and b/mover/goldpumpkin/images/nft.png differ diff --git a/mover/goldpumpkin/notes/readme.md b/mover/goldpumpkin/notes/readme.md new file mode 100644 index 000000000..ee3e57603 --- /dev/null +++ b/mover/goldpumpkin/notes/readme.md @@ -0,0 +1,39 @@ +## Task2 + +### Requirement + +- 创建自己 coin,只有管理员可以 `mint` +- 创建水龙头,任何人都可以 `mint` + +### Create Coin Steps + +- define your coin struct, like `public struct MYCOIN has drop {}` +- define coinmeta of your coin in `init` method +- transfer the `TreasuryCap` to the sender, so they can mint and burn +- metadata is typically frozen after creation + +### Transfer + +- transfer coin your created to the specific address through calling the method `mint` + +### SUI Command + +- `sui client switch --address
` +- `sui client new-env --alias mainnet --rpc https://fullnode.mainnet.sui.io:443` +- `sui client switch --env mainnet` +- `sui client balance` +- `sui client publish ` +- `sui keytool import ed25519 ` +- `sui client call --function --module --package --args ` + +### Reference + +- [coin-standards-doc](https://docs.sui.io/standards/coin) + +- [suiscan](https://suiscan.com/) + +- [sui-keytool](https://docs.sui.io/references/cli/keytool) + +- [quick-start-to-build-on-sui](https://docs.nodereal.io/reference/quick-start-to-build-on-sui) + + \ No newline at end of file diff --git a/mover/goldpumpkin/readme.md b/mover/goldpumpkin/readme.md new file mode 100644 index 000000000..b9f504bd4 --- /dev/null +++ b/mover/goldpumpkin/readme.md @@ -0,0 +1,46 @@ +## 基本信息 +- Sui钱包地址: `0x0e0c9ecbf04056e68b27ea392ea0a65ed0908ddd56ba6e76d0147a4380cba1ad` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `goldpumpkin` + +## 个人简介 +- 工作经验: 7年 +- 技术栈: `Java` `Rust` `React` +- web2 -> web3 ing + +## 任务 + +## 01 hello move +- [x] package id: + - devnet: 0x0fc3d411a048d01a5ffc8ddd88b5df4976c175f09cb20c4cf66c9b6c66da584f + - testnet: 0x4b87bf6a740dc0682b661e03aaf853a5a7ae2ebfb61a5fc1ea3be6604e0a5831 + +## 02 move coin +- [x] My Coin package id : [0x2049a291454215021d24d2def83107c6e3bb5778d945b8972e2c7d1d9bada7b2](https://suiscan.com/object/0x2049a291454215021d24d2def83107c6e3bb5778d945b8972e2c7d1d9bada7b2) +- [x] Faucet package id : [0x3b6b196b9c17390406c04d1c949179ebab1b001940dc38aa226b92cffc63b1ce](https://suiscan.xyz/mainnet/object/0x3b6b196b9c17390406c04d1c949179ebab1b001940dc38aa226b92cffc63b1ce/contracts) +- [x] 转账 `My Coin` hash: [BvxoEjvXiPrcyEvFGTL1cNufJ7yMRporDGrHe5pLozH4](https://suiscan.com/txblock/BvxoEjvXiPrcyEvFGTL1cNufJ7yMRporDGrHe5pLozH4) +- [x] `Faucet Coin` address1 mint hash:[HK6n3L8DyPg5pX1VBgU6oXdXYeintSAJgDEDSYydECUP](https://suiscan.xyz/mainnet/tx/HK6n3L8DyPg5pX1VBgU6oXdXYeintSAJgDEDSYydECUP) +- [x] `Faucet Coin` address2 mint hash:[FGC6WGMMnaUEqEfYGWCrgaZQ1xeWZ4cdJ7qmhiUHcmW7](https://suiscan.xyz/mainnet/tx/FGC6WGMMnaUEqEfYGWCrgaZQ1xeWZ4cdJ7qmhiUHcmW7) +- [x] Faucet Neo package id : [0xc2ef43cfeac82601ff1384bcb8ae45cfd8a632503f60fbc92aa71ea776ee1707](https://suiscan.xyz/mainnet/object/0xc2ef43cfeac82601ff1384bcb8ae45cfd8a632503f60fbc92aa71ea776ee1707/txs) +- [x] `Faucet Neo Coin` address1 mint hash:[9cYsqfT1GSDwNLQoUmvDSztoAXyyatcozfV2tjfFks2P](https://suiscan.xyz/mainnet/tx/9cYsqfT1GSDwNLQoUmvDSztoAXyyatcozfV2tjfFks2P) + - Address: 0x0e0c9ecbf04056e68b27ea392ea0a65ed0908ddd56ba6e76d0147a4380cba1ad +- [x] `Faucet Neo Coin` address2 mint hash:[CZ4VhRk5WvrGy4NTn1j1XHdEgrz2FQ9Pq5jRMgCG5DLC](https://suiscan.xyz/mainnet/tx/CZ4VhRk5WvrGy4NTn1j1XHdEgrz2FQ9Pq5jRMgCG5DLC) + - Address:0x260688fbcb5620c1343d0009e10660df145e414e7948b7ac012ff40ff4414de9 + +## 03 move NFT +- [x] nft package id : [0xc3a53ecab42cf15733267b9d9dfa23aaa5b44046ef32d5e57034011b67d71906](https://suiscan.xyz/mainnet/object/0xc3a53ecab42cf15733267b9d9dfa23aaa5b44046ef32d5e57034011b67d71906/contracts) +- [x] nft object id : [0x03c80ebec2bf7e61ad68783c99357d74f791198fb6a7e6dddc379d4d433dc33e](https://suiscan.xyz/mainnet/object/0x03c80ebec2bf7e61ad68783c99357d74f791198fb6a7e6dddc379d4d433dc33e) +- [x] 转账 nft hash: [Gf3qsE8sxsxZbHSCC37ZuK27EYyVn1pmwjLffjmL3sF2](https://suiscan.xyz/mainnet/tx/Gf3qsE8sxsxZbHSCC37ZuK27EYyVn1pmwjLffjmL3sF2) +- [x] scan上的NFT截图:![SUI-screenshot](./images/nft.png) + +## 04 Move Game +- [x] game package id : [E6PvvP7Vn57e2VxC6skwTcPivz3rSQ5aQJq2ExjoZtxu](https://suiscan.xyz/mainnet/tx/E6PvvP7Vn57e2VxC6skwTcPivz3rSQ5aQJq2ExjoZtxu) +- [x] call game hash: [5XKjJuRycWAnhWK3Zi9tYHuwEV2rzUsGmxCJp3sYhZA7](https://suiscan.xyz/mainnet/tx/5XKjJuRycWAnhWK3Zi9tYHuwEV2rzUsGmxCJp3sYhZA7) + +## 05 Move Swap +- [] swap package id : +- [] call swap hash: + +## 06 SDK PTB +- [] save hash : + diff --git a/mover/guange2015/code/simple_game.move b/mover/guange2015/code/simple_game.move new file mode 100644 index 000000000..1215025d2 --- /dev/null +++ b/mover/guange2015/code/simple_game.move @@ -0,0 +1,118 @@ +module mycoin::simple_game { + use sui::balance::{Self, Balance}; + use sui::sui::SUI; + use sui::coin::{Self, Coin}; + use sui::clock::{Self, Clock}; + use sui::event::{Self}; + + //0.1 - 1 SUI + const MIN_PLAY_AMOUNT:u64 = 100000000; + const MAX_PLAY_AMOUNT:u64 = 1*1000000000; + + //硬币正反面 + const COIN_HEADS:u8 = 1; + const COIN_TAILS:u8 = 2; + + //errors code + const ERROR_PLAY_AMOUNT:u64 = 1; + const ERROR_ENOUGH_POOL:u64 = 2; + const ERROR_PASUE_GAME:u64 = 3; + + public struct Game has key { + id: UID, + play_time: u64, //简单记录一下玩的次数 + pause: bool, //暂停 + balance: Balance + } + + public struct AdminCap has key { + id: UID + } + + + public struct EventGuess has copy, drop { + random: u8, + win: bool, + amount: u64 + } + + + public struct SIMPLE_GAME has drop {} + + fun init(_witness: SIMPLE_GAME, ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + play_time: 0, + pause: false, + balance: balance::zero() + }; + + transfer::share_object(game); + transfer::transfer(AdminCap{id: object::new(ctx)}, ctx.sender()); + } + + + fun get_rand_num(clock: &Clock, len: u32):u8 { + let current_timestamp = clock::timestamp_ms(clock); + (current_timestamp % (len as u64) + 1) as u8 + } + + + //只让rpc调用,防止合约间调用安全问题 + entry fun play(game: &mut Game, payment: Coin, clock: &Clock, ctx: &mut TxContext) { + + assert!(!game.pause, ERROR_PASUE_GAME); + + game.play_time = game.play_time + 1; + + let pool_amount = game.balance.value(); + let amount = payment.value(); + assert!(amount >= MIN_PLAY_AMOUNT && amount <= MAX_PLAY_AMOUNT, ERROR_PLAY_AMOUNT); + assert!(amount <= pool_amount, ERROR_ENOUGH_POOL); + + + coin::put(&mut game.balance, payment); + + //获取随机数 + let random = get_rand_num(clock,2); + if(random == COIN_HEADS) { + //正面奖励2倍 + let win_balance = game.balance.split(amount*2); + + event::emit(EventGuess{ + random: random, + win: true, + amount: amount*2 + }); + + transfer::public_transfer(coin::from_balance(win_balance, ctx), ctx.sender()) + } else if(random == COIN_TAILS){ + //反面不给奖励 + event::emit(EventGuess{ + random: random, + win: false, + amount: amount + }); + } + } + + //管理员 + + //添加初始资金 + public entry fun add_pool(_: &AdminCap, game: &mut Game, payment: Coin, _ctx: &mut TxContext) { + coin::put(&mut game.balance, payment); + } + + //设置暂停游戏 + public entry fun pause_game(_: &AdminCap,game: &mut Game, pause: bool, _ctx: &mut TxContext) { + game.pause = pause; + } + + //紧急提取资金 + public entry fun emgency_withdraw(_: &AdminCap,game: &mut Game, amount: u64, ctx: &mut TxContext) { + let balance = game.balance.split(amount); + transfer::public_transfer(coin::from_balance(balance, ctx), ctx.sender()); + } + + +} \ No newline at end of file diff --git a/mover/guange2015/code/simple_game.sh b/mover/guange2015/code/simple_game.sh new file mode 100644 index 000000000..6b2b4e6a0 --- /dev/null +++ b/mover/guange2015/code/simple_game.sh @@ -0,0 +1,31 @@ + +# 部署合约 +sui client switch --address Jason +sui client publish --skip-dependency-verification + +export PACKAGE_ID=0x89e881bf4c66c050fd15f3a79134e9579c059a856afffde84fbe7ccb00e6e515 +export GAME_ID=0x41cf903294529897c8dbf91c958f4ce51930c667d1676ca6e4772407ec8261b2 +export ADMINCAP_ID=0xfe9c2c03fb480d7d9b7d70f8a90d11e3684535e6b7bfb9099a0bd996a38c273f + +# 打入初始化资金 + +## 先分离出1个sui +sui client pay-sui --input-coins 0x47a5fd9e0ea98f052aa659864242a457274c1e18d84176dfd3d46b3084efdf05 --recipients $JASON --amounts 1000000000 --gas-budget 10000000 +export COIN=0x0fbd092a4c5153468735113669afb04ec6e7314eb6efb4d105aad38fb16afb88 +sui client call --function add_pool --package $PACKAGE_ID --module simple_game --args $ADMINCAP_ID $GAME_ID $COIN + +#此时合约的资金池中有1个sui +sui client object $GAME_ID --json|jq ".content .fields .balance" + +## 玩游戏 +sui client switch --address Alice +## 先分离出0.1个sui +sui client pay-sui --input-coins 0x249b3f80cda43f6d6e19af732213bc699b080030af6600f0e1fc2cde727c7f0d --recipients $ALICE --amounts 100000000 --gas-budget 10000000 +export COIN=0x3faebdc9a9557d6a75c0f92ba4ad301f2f887ad56a28102b8fef322bcde8c4a9 +sui client call --function play --package $PACKAGE_ID --module simple_game --args $GAME_ID $COIN 0x6 + +# 可以去浏览器查看中奖事件 + +## 紧急取出资金 +sui client switch --address Jason +sui client call --function emgency_withdraw --package $PACKAGE_ID --module simple_game --args $ADMINCAP_ID $GAME_ID 1100000000 diff --git a/mover/guange2015/code/simple_swap.move b/mover/guange2015/code/simple_swap.move new file mode 100644 index 000000000..c52a6f268 --- /dev/null +++ b/mover/guange2015/code/simple_swap.move @@ -0,0 +1,153 @@ +module mycoin::simple_swap { + + use sui::balance::{Balance, Self}; + use sui::coin::{Coin, Self}; + + const AUTH_ERR: u64 = 1; + + //流动池 + public struct Pool has key,store { + id: UID, + balance0: Balance, + balance1: Balance, + owner: address + } + + //创建流动池 + public entry fun createPool(ctx: &mut TxContext) { + let pool = Pool{ + id: object::new(ctx), + balance0: balance::zero(), + balance1: balance::zero(), + owner: ctx.sender(), + }; + transfer::share_object(pool); + } + + //添加流动性 + //这里不限制两边是否对等,管理员想怎么加怎么加 + public entry fun addLiq(pool: &mut Pool, _token0:Coin, _token1:Coin, ctx: &mut TxContext) { + assert!(pool.owner == ctx.sender(), AUTH_ERR); + + coin::put(& mut pool.balance0, _token0); + coin::put(& mut pool.balance1, _token1); + } + + //移除流动性 + public entry fun delLiq(pool: &mut Pool,amount0: u64, amount1: u64, ctx: &mut TxContext) { + assert!(pool.owner == ctx.sender(), AUTH_ERR); + + //这里无需检查,因为balance实现已经检查了 + let coin0 = coin::from_balance(pool.balance0.split(amount0),ctx); + transfer::public_transfer(coin0, pool.owner); + + let coin1 = coin::from_balance(pool.balance1.split(amount1),ctx); + transfer::public_transfer(coin1, pool.owner); + } + + //兑换 + public entry fun x_to_y(pool: &mut Pool, token: Coin, ctx: &mut TxContext) { + //等量的X进去,等量的Y出来 + //这里无需检查余额够不够 + let amount:u64 = token.value(); + coin::put(& mut pool.balance0, token); + + transfer::public_transfer>( + coin::from_balance(pool.balance1.split(amount),ctx), + ctx.sender() + ); + } + +public entry fun y_to_x(pool: &mut Pool, token: Coin, ctx: &mut TxContext) { + //等量的X进去,等量的Y出来 + //这里无需检查余额够不够 + let amount:u64 = token.value(); + coin::put(& mut pool.balance1, token); + + transfer::public_transfer>( + coin::from_balance(pool.balance0.split(amount),ctx), + ctx.sender() + ); + } + + + + #[test_only] + public struct TokenA has drop{} + #[test_only] + public struct TokenB has drop{} + + #[test] + fun test_swap() { + use sui::test_scenario; + use std::debug; + + let owner = @0x1000; + let alice = @0x1001; + + let mut scenario = test_scenario::begin(owner); + { + //先创建两个token tokenA tokenB + let mut tokenA = coin::mint_for_testing(10000, scenario.ctx()); + let mut tokenB = coin::mint_for_testing(10000, scenario.ctx()); + + tokenA.split_and_transfer(100, alice, scenario.ctx()); + tokenB.split_and_transfer(1000, alice, scenario.ctx()); + + transfer::public_transfer(tokenA, owner); + transfer::public_transfer(tokenB, owner); + }; + + scenario.next_tx(owner); + { + //创建pool + createPool(scenario.ctx()); + }; + scenario.next_tx(owner); + { + //添加流动性 + let mut pool = scenario.take_shared>(); + + assert!(pool.balance0.value()==0, 2); + assert!(pool.balance1.value()==0, 2); + + + let tokenA = scenario.take_from_sender>(); + let tokenB = scenario.take_from_sender>(); + + + addLiq(& mut pool, tokenA, tokenB, scenario.ctx() ); + + assert!(pool.balance0.value()>0, 3); + assert!(pool.balance1.value()>0, 3); + + test_scenario::return_shared(pool); + + + }; + + scenario.next_tx(alice); + { + //兑换 + let mut pool = scenario.take_shared>(); + let tokenA = scenario.take_from_sender>(); + x_to_y(& mut pool, tokenA, scenario.ctx()); + test_scenario::return_shared(pool); + }; + + scenario.next_tx(alice); + { + //检查兑换出来的tokenB + let tokenB = scenario.take_from_sender>(); + debug::print(tokenB.balance()); + assert!(tokenB.value() == 100, 1); + scenario.return_to_sender(tokenB); + }; + + + scenario.end(); + } + + +} + diff --git a/mover/guange2015/code/simple_swap.sh b/mover/guange2015/code/simple_swap.sh new file mode 100644 index 000000000..119915209 --- /dev/null +++ b/mover/guange2015/code/simple_swap.sh @@ -0,0 +1,35 @@ +export PACKAGE_ID=0x6e639ae87f4383f6f7ffabdbe19696115a399dd99de2e516fe1c8af398528373 +export MYCOIN_PACKAGE_ID=0x2d58fc2549c7ed28392d1e663f700829a103efb9655ec8a0a133e4d699616d40 +export FAUCET_PACKAGE_ID=0x67bf1f427ae07d6d3647d8c34a428b9795f7483c35eb08f58d1efba056aa5a5c + +export Alice=0x80229589c222b7b5bc233aaa6be39f139e55a6d55cfc9992cca799417679cfac +export Jason=0x8b10d8e3df15d246ba3249c233d057c0f32147dc600dc3336ece224cc8c193f8 + +# 创建pool +sui client call --function createPool --package $PACKAGE_ID --module simple_swap --type-args 0x2d58fc2549c7ed28392d1e663f700829a103efb9655ec8a0a133e4d699616d40::guange2015Coin::GUANGE2015COIN 0x67bf1f427ae07d6d3647d8c34a428b9795f7483c35eb08f58d1efba056aa5a5c::guange2015FaucetCoin::GUANGE2015FAUCETCOIN + +#得到PooL_ID +export POOL_ID=0x04bb64ebd8fa38cccee4ad9a19d0bdd4aec256f2ae9b77f9322e72ee67578c64 + +# 先mint token +sui client call --package $MYCOIN_PACKAGE_ID --module guange2015Coin --function mint --args 0xd46365397d455c362e129d72af5ccb788d457142ebd0bd4e53feb34ddac9d6ab $Jason 10000 --type-args 0x2d58fc2549c7ed28392d1e663f700829a103efb9655ec8a0a133e4d699616d40::guange2015Coin::GUANGE2015COIN +# object 0xb6132d4b7e99be249643127fff4b4dfecca0eceeff3e242259638c56b4d317b1 +sui client call --package $MYCOIN_PACKAGE_ID --module guange2015Coin --function mint --args 0xd46365397d455c362e129d72af5ccb788d457142ebd0bd4e53feb34ddac9d6ab $Alice 100 --type-args 0x2d58fc2549c7ed28392d1e663f700829a103efb9655ec8a0a133e4d699616d40::guange2015Coin::GUANGE2015COIN +# object 0x1a9b54d07ee5196f7a0b4bce5949c915abb95d3686ca38ecdc2a068d63fd3e85 + +sui client call --package $FAUCET_PACKAGE_ID --module guange2015FaucetCoin --function mint --args 0xbf66cdee06dd4cd03aaab51d3370302d64d1e997f48775f770bdb84223ca6f97 10000 --type-args 0x67bf1f427ae07d6d3647d8c34a428b9795f7483c35eb08f58d1efba056aa5a5c::guange2015FaucetCoin::GUANGE2015FAUCETCOIN +# 0x3996b8954a58c483a1f59c3f288e110e819f438308b0917ccf637423ff864eb9 + +# 添加流动性 +sui client call --function addLiq --package $PACKAGE_ID --module simple_swap --type-args 0x2d58fc2549c7ed28392d1e663f700829a103efb9655ec8a0a133e4d699616d40::guange2015Coin::GUANGE2015COIN 0x67bf1f427ae07d6d3647d8c34a428b9795f7483c35eb08f58d1efba056aa5a5c::guange2015FaucetCoin::GUANGE2015FAUCETCOIN \ +--args $POOL_ID 0xb6132d4b7e99be249643127fff4b4dfecca0eceeff3e242259638c56b4d317b1 0x3996b8954a58c483a1f59c3f288e110e819f438308b0917ccf637423ff864eb9 + + +# 兑换 + +sui client switch --address $Alice +sui client call --function x_to_y --package $PACKAGE_ID --module simple_swap --type-args 0x2d58fc2549c7ed28392d1e663f700829a103efb9655ec8a0a133e4d699616d40::guange2015Coin::GUANGE2015COIN 0x67bf1f427ae07d6d3647d8c34a428b9795f7483c35eb08f58d1efba056aa5a5c::guange2015FaucetCoin::GUANGE2015FAUCETCOIN \ +--args $POOL_ID 0x1a9b54d07ee5196f7a0b4bce5949c915abb95d3686ca38ecdc2a068d63fd3e85 + +# 验证结果 +# Alice下面多出了100个GUANGE2015FAUCETCOIN \ No newline at end of file diff --git a/mover/guange2015/readme.md b/mover/guange2015/readme.md index e8234ce0d..85217dc83 100644 --- a/mover/guange2015/readme.md +++ b/mover/guange2015/readme.md @@ -25,12 +25,12 @@ - [x] 转账 nft hash: EzDVN2NqD5H6dPVdDtqkwTWB8fyCUX36atGPJGVoMLLW ## 04 Move Game -- [] game package id : -- [] call game hash: +- [x] game package id : 0x89e881bf4c66c050fd15f3a79134e9579c059a856afffde84fbe7ccb00e6e515 +- [x] call game hash: HVgkQsNy6VGKuJX5epUQTer4SqSgPubTfwKH4tVvAV2i ## 05 Move Swap -- [] swap package id : -- [] call swap hash: +- [x] swap package id : 0x6e639ae87f4383f6f7ffabdbe19696115a399dd99de2e516fe1c8af398528373 +- [x] call swap hash: 7kmYB3ekhs1UximQ6zWqjbRA3rD9ZC2nsQJnjR1n2Wbc ## 06 SDK PTB - [] save hash : diff --git a/mover/guttail/code/readme.md b/mover/guttail/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/guttail/code/task1/Move.lock b/mover/guttail/code/task1/Move.lock new file mode 100644 index 000000000..58c83481e --- /dev/null +++ b/mover/guttail/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2E267C18D553336099CDD31F7063857679825E46CD06EC67CC7F7FB0C20317C1" +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.29.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x4db08d3f95d967db8b602234f8e5804b47e164147995ed6d59ac52952c67b9aa" +latest-published-id = "0x4db08d3f95d967db8b602234f8e5804b47e164147995ed6d59ac52952c67b9aa" +published-version = "1" diff --git a/mover/guttail/code/task1/Move.toml b/mover/guttail/code/task1/Move.toml new file mode 100644 index 000000000..e75e497eb --- /dev/null +++ b/mover/guttail/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1" +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] +task1 = "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/guttail/code/task1/sources/task1.move b/mover/guttail/code/task1/sources/task1.move new file mode 100644 index 000000000..e54f93139 --- /dev/null +++ b/mover/guttail/code/task1/sources/task1.move @@ -0,0 +1,19 @@ +module task1::hello_move { + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct HelloObj has key, store { + id: UID, + say: string::String + } + + public fun mint(ctx: &mut TxContext) { + let object = HelloObj { + id: object::new(ctx), + say: string::utf8(b"Hello guttail!") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } +} diff --git a/mover/guttail/notes/0.png b/mover/guttail/notes/0.png new file mode 100644 index 000000000..b27269e27 Binary files /dev/null and b/mover/guttail/notes/0.png differ diff --git a/mover/guttail/notes/1.png b/mover/guttail/notes/1.png new file mode 100644 index 000000000..ecdca3f6f Binary files /dev/null and b/mover/guttail/notes/1.png differ diff --git a/mover/guttail/notes/readme.md b/mover/guttail/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/guttail/readme.md b/mover/guttail/readme.md new file mode 100644 index 000000000..73dcc6d8f --- /dev/null +++ b/mover/guttail/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xa5e0cdc67d1919b9a94d8c317c96327a777b4418465bd594a55bc056e88c35c0` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `guttail` + +## 个人简介 +- 工作经验: 1年 +- 技术栈: `C#` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `gutt` + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.30.1 +- [x] Sui钱包截图: ![Sui钱包截图](./notes/0.png) +- [x] package id: 0x4db08d3f95d967db8b602234f8e5804b47e164147995ed6d59ac52952c67b9aa +- [x] package id 在 scan上的查看截图:![Scan截图](./notes/1.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/gzliudan/readme.md b/mover/gzliudan/readme.md index 25ace8796..70209a935 100644 --- a/mover/gzliudan/readme.md +++ b/mover/gzliudan/readme.md @@ -42,7 +42,7 @@ sui move test ```bash sui client switch --env testnet -sui client publish --gas-budget 100000000 +sui client publish ADDRESS="0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" PACKAGE_ID="0xf6743ed0cba33d6119bb5472cdb328f8afcfffcd61323e73d6e950e62ee26da6" @@ -50,17 +50,17 @@ COIN_TREASURY="0x372d345064295e3389d861ab2606fedba5052ffa1052f7f89d7170a93174806 FAUCET_TREASURY="0xbda736c2929a2630c6b01bb2291b1994477e22f132242aaa4ef6623afbb6f42f" # Transaction Digest: 6AEduZbZdCBw2gzirLJd5LfBEhiMW4w6QxtqMQ8vWFrj -sui client call --package ${PACKAGE_ID} --module gzliudan_coin --function mint --args ${COIN_TREASURY} 100 ${ADDRESS} --gas-budget 100000000 +sui client call --package ${PACKAGE_ID} --module gzliudan_coin --function mint --args ${COIN_TREASURY} 100 ${ADDRESS} # Transaction Digest: 3v3j9Wpv2HozZ44nsxTMjMtKn62QHdPiJMnfhAirCxd2 -sui client call --package ${PACKAGE_ID} --module gzliudan_faucet --function mint --args ${FAUCET_TREASURY} 100 ${ADDRESS} --gas-budget 100000000 +sui client call --package ${PACKAGE_ID} --module gzliudan_faucet --function mint --args ${FAUCET_TREASURY} 100 ${ADDRESS} ``` ### 2.4 主网 ```bash sui client switch --env mainnet -sui client publish --gas-budget 100000000 +sui client publish ADDRESS="0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" PACKAGE_ID="0x0fe40e15fb138fce7c11fd341b173a8ddc3184c389147f3f7044aa4f1e2677ea" @@ -68,10 +68,10 @@ COIN_TREASURY="0x47f21bde78897543b6f3864b8f46c2c8414e74e6a5961e7fa8414091e1e75b0 FAUCET_TREASURY="0x20651eff485bf329ea2aa8c1fb2a73e6cac00feddfc322d000e30d5ca71fd648" # Transaction Digest: GXu4gp5TkK8PfwvS51qRFY7CiBszdHDS4hcjew5jKfLe -sui client call --package ${PACKAGE_ID} --module gzliudan_coin --function mint --args ${COIN_TREASURY} 100 ${ADDRESS} --gas-budget 100000000 +sui client call --package ${PACKAGE_ID} --module gzliudan_coin --function mint --args ${COIN_TREASURY} 100 ${ADDRESS} # Transaction Digest: 2cicQW8ZA5DmBgAwhvdpG3guehp1zJzb1BbHTDymGzyh -sui client call --package ${PACKAGE_ID} --module gzliudan_faucet --function mint --args ${FAUCET_TREASURY} 100 ${ADDRESS} --gas-budget 100000000 +sui client call --package ${PACKAGE_ID} --module gzliudan_faucet --function mint --args ${FAUCET_TREASURY} 100 ${ADDRESS} ``` ### 2.5 结果 @@ -105,11 +105,11 @@ name="gzliudan" email="139250065@qq.com" description="Daniel Liu" url="https://avatars.githubusercontent.com/u/7695325?v=4" -sui client call --gas-budget 100000000 --package ${PACKAGE_ID} --module github_medal --function mint --args ${name} ${email} "${description}" ${url} +sui client call --package ${PACKAGE_ID} --module github_medal --function mint --args ${name} ${email} "${description}" ${url} nft_id="0x8a25c6c81e44a8b4bd665ae72cc20e2b958af1668bd2bc6e414058f7ae6d38f3" address="0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" -sui client call --gas-budget 100000000 --package ${PACKAGE_ID} --module github_medal --function transfer --args ${nft_id} ${address} +sui client call --package ${PACKAGE_ID} --module github_medal --function transfer --args ${nft_id} ${address} ``` ### 3.2 主网 @@ -126,11 +126,11 @@ name="gzliudan" email="139250065@qq.com" description="Daniel Liu" url="https://avatars.githubusercontent.com/u/7695325?v=4" -sui client call --gas-budget 100000000 --package ${PACKAGE_ID} --module github_medal --function mint --args ${name} ${email} "${description}" ${url} +sui client call --package ${PACKAGE_ID} --module github_medal --function mint --args ${name} ${email} "${description}" ${url} nft_id="0x68969f7a64bac1ed12139272df871ef2c854e865694486427a3db81fff3781f9" address="0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" -sui client call --gas-budget 100000000 --package ${PACKAGE_ID} --module github_medal --function transfer --args ${nft_id} ${address} +sui client call --package ${PACKAGE_ID} --module github_medal --function transfer --args ${nft_id} ${address} ``` ## 04 Move Game diff --git a/mover/halsey-929/code/task4/note.md b/mover/halsey-929/code/task4/note.md index 80b6c24e5..58fb89886 100644 --- a/mover/halsey-929/code/task4/note.md +++ b/mover/halsey-929/code/task4/note.md @@ -29,7 +29,7 @@ deposit coin: 0xd0b607aa99c146e63b60d72d886d01adb74a1cd95bac0e43c437b9b40ea461ae export GAME_COIN=0xd0b607aa99c146e63b60d72d886d01adb74a1cd95bac0e43c437b9b40ea461ae -sui client call --package $PACKAGE_ID --module halsey929_dice_game --function play --args 1 $GAME_ID $GAME_COIN 0x6 --gas-budget 100000000 +sui client call --package $PACKAGE_ID --module halsey929_dice_game --function play --args 1 $GAME_ID $GAME_COIN 0x6 Transaction Digest: 3AmurKeLmBh8SNdz4R8eLgHzUxQnnAQ6XaTaVm3wo5oU diff --git a/mover/hellogmegg/code/readme.md b/mover/hellogmegg/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/hellogmegg/code/task1/hello_move/Move.lock b/mover/hellogmegg/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..76da2fe0b --- /dev/null +++ b/mover/hellogmegg/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x84ff356cfac876fdb308a5203a88dd4c15c9e645f08d3bb036d3ebdcfa3dfb59" +latest-published-id = "0x84ff356cfac876fdb308a5203a88dd4c15c9e645f08d3bb036d3ebdcfa3dfb59" +published-version = "1" diff --git a/mover/hellogmegg/code/task1/hello_move/Move.toml b/mover/hellogmegg/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/hellogmegg/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/hellogmegg/code/task1/hello_move/sources/hello_move.move b/mover/hellogmegg/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..f497a32bc --- /dev/null +++ b/mover/hellogmegg/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,18 @@ +module hello_move::hello_move { + use std::ascii::{String, string}; + use sui::transfer::transfer; + use sui::tx_context::sender; + + public struct Hello has key{ + id: UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"hellogmegg"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/hellogmegg/code/task1/hello_move/tests/hello_move_tests.move b/mover/hellogmegg/code/task1/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/hellogmegg/code/task1/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/hellogmegg/code/task2/faucet_coin/Move.lock b/mover/hellogmegg/code/task2/faucet_coin/Move.lock new file mode 100644 index 000000000..db41182cb --- /dev/null +++ b/mover/hellogmegg/code/task2/faucet_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "F8CFCF256E2F1BB7CD401C27799A09C40777C5C100F0DFA253E86DD7F0D4ED1B" +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.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x0cd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7" +latest-published-id = "0x0cd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7" +published-version = "1" diff --git a/mover/hellogmegg/code/task2/faucet_coin/Move.toml b/mover/hellogmegg/code/task2/faucet_coin/Move.toml new file mode 100644 index 000000000..fbb405abf --- /dev/null +++ b/mover/hellogmegg/code/task2/faucet_coin/Move.toml @@ -0,0 +1,38 @@ +[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)"] +publish-at = "0x0cd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7" +# TreasuryCap = 0xf541ec3bfa5eb4c4cb5f259ec2dbe98cc65add5f0f82a6bd6775ceb777242673 +[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] +faucet_coin = "0x0cd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7" + +# 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/hellogmegg/code/task2/faucet_coin/mint.sh b/mover/hellogmegg/code/task2/faucet_coin/mint.sh new file mode 100644 index 000000000..fe8195483 --- /dev/null +++ b/mover/hellogmegg/code/task2/faucet_coin/mint.sh @@ -0,0 +1,17 @@ + +sui client switch --address 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 + +sui client call --gas-budget 100000000 \ +--package 0x0cd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7 \ +--module tmm_faucet --function mint \ +--args 0xf541ec3bfa5eb4c4cb5f259ec2dbe98cc65add5f0f82a6bd6775ceb777242673 \ +1000000 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 + +sui client switch --address 0x5bbb5974d927beab0b5888fdab62e1b8b49e1874548dcde5f34c2ab824bde52a + +sui client call --gas-budget 100000000 \ +--package 0x0cd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7 \ +--module tmm_faucet --function mint \ +--args 0xf541ec3bfa5eb4c4cb5f259ec2dbe98cc65add5f0f82a6bd6775ceb777242673 \ +1000000 0x5bbb5974d927beab0b5888fdab62e1b8b49e1874548dcde5f34c2ab824bde52a + diff --git a/mover/hellogmegg/code/task2/faucet_coin/publish.log b/mover/hellogmegg/code/task2/faucet_coin/publish.log new file mode 100644 index 000000000..3adda0b92 --- /dev/null +++ b/mover/hellogmegg/code/task2/faucet_coin/publish.log @@ -0,0 +1,173 @@ +[warn] Client/Server api version mismatch, client api version : 1.29.0, server api version : 1.28.2 +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING faucet_coin +warning[W09001]: unused alias + ┌─ /root/letsmove/mover/hellogmegg/code/task2/faucet_coin/sources/faucet_coin.move:3:27 + │ +3 │ use sui::coin::{Self, Coin, TreasuryCap}; + │ ^^^^ Unused 'use' of alias 'Coin'. Consider removing it + │ + = This warning can be suppressed with '#[allow(unused_use)]' applied to the 'module' or module member ('const', 'fun', or 'struct') + +Total number of linter warnings suppressed: 1 (unique lints: 1) +Successfully verified dependencies on-chain against source. +Transaction Digest: 4dhK26UmfFb6Q7cHjhwLEYGhW4napZK3kKp4DNwgD3JA +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 15877600 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 609360 │ +│ │ Digest: E6jXQciv3nTY1tvvRfDzV3hBXQA4i8NqJy2f5hHMXSTP │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ x9qPHUC06mMGo1hYT62pPCccMYehF3vN+5tOvnT9Iz0gOC0wrbaqEpUUQGmfNaL+sNxj/Ne23iah5dEOg3nTBg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 4dhK26UmfFb6Q7cHjhwLEYGhW4napZK3kKp4DNwgD3JA │ +│ Status: Success │ +│ Executed Epoch: 420 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x03ce7fb926267e09636033c31d932da50dd7c82d7485611e94c41d3e10e835b2 │ +│ │ Owner: Immutable │ +│ │ Version: 609361 │ +│ │ Digest: 81gFVCFuBfNNqzZVZuQSL3yeWafeFw59nuJUQN7gwYra │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0cd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 3MCRYFuJa8sKFeFnqA6BXEcNkfEFcSCDCPPAcVQM4Tak │ +│ └── │ +│ ┌── │ +│ │ ID: 0xcbfc3069419cf6054d8dd81b9b9a558a10a146f525cbc139cec33e2293c584a2 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 609361 │ +│ │ Digest: 7SeDvCj2WiGYuHgS6JMpZTFoSCEjFju2a9Pds9uqCFLG │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf541ec3bfa5eb4c4cb5f259ec2dbe98cc65add5f0f82a6bd6775ceb777242673 │ +│ │ Owner: Shared( 609361 ) │ +│ │ Version: 609361 │ +│ │ Digest: 3NnjGcy8HGCNde8Ytyh4jmMhb3zcmyaCejmw8M3qzkd1 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 609361 │ +│ │ Digest: A4tDUerS36RNpUPmmqhs23moqUAccAAtLchEMRozWkPo │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 609361 │ +│ │ Digest: A4tDUerS36RNpUPmmqhs23moqUAccAAtLchEMRozWkPo │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 13877600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 45tC8EPhWFY2ARvkApefESGAKyM2MPgjzcuEScVoew7D │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x03ce7fb926267e09636033c31d932da50dd7c82d7485611e94c41d3e10e835b2 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET> │ +│ │ Version: 609361 │ +│ │ Digest: 81gFVCFuBfNNqzZVZuQSL3yeWafeFw59nuJUQN7gwYra │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xcbfc3069419cf6054d8dd81b9b9a558a10a146f525cbc139cec33e2293c584a2 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 609361 │ +│ │ Digest: 7SeDvCj2WiGYuHgS6JMpZTFoSCEjFju2a9Pds9uqCFLG │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xf541ec3bfa5eb4c4cb5f259ec2dbe98cc65add5f0f82a6bd6775ceb777242673 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Shared( 609361 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET> │ +│ │ Version: 609361 │ +│ │ Digest: 3NnjGcy8HGCNde8Ytyh4jmMhb3zcmyaCejmw8M3qzkd1 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 609361 │ +│ │ Digest: A4tDUerS36RNpUPmmqhs23moqUAccAAtLchEMRozWkPo │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x0cd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7 │ +│ │ Version: 1 │ +│ │ Digest: 3MCRYFuJa8sKFeFnqA6BXEcNkfEFcSCDCPPAcVQM4Tak │ +│ │ Modules: tmm_faucet │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -13899480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task2/faucet_coin/sources/faucet_coin.move b/mover/hellogmegg/code/task2/faucet_coin/sources/faucet_coin.move new file mode 100644 index 000000000..037d978a0 --- /dev/null +++ b/mover/hellogmegg/code/task2/faucet_coin/sources/faucet_coin.move @@ -0,0 +1,25 @@ +/// Module: faucet_coin +module faucet_coin::tmm_faucet { + use sui::coin::{Self, Coin, TreasuryCap}; + + public struct TMM_FAUCET has drop {} + + #[allow(lint(share_owned))] + fun init(witness: TMM_FAUCET, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, 6, b"TMM_FAUCET", b"TMM_FAUCET", b"faucet coin is TMM_FAUCET", option::none(), ctx); + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } + + +} diff --git a/mover/hellogmegg/code/task2/faucet_coin/tests/faucet_coin_tests.move b/mover/hellogmegg/code/task2/faucet_coin/tests/faucet_coin_tests.move new file mode 100644 index 000000000..88a42bf8e --- /dev/null +++ b/mover/hellogmegg/code/task2/faucet_coin/tests/faucet_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[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/hellogmegg/code/task2/my_coin/Move.lock b/mover/hellogmegg/code/task2/my_coin/Move.lock new file mode 100644 index 000000000..68991b3f8 --- /dev/null +++ b/mover/hellogmegg/code/task2/my_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "0A4652D38CF3C3FDB79EC6C1C98FCFF7B2E933E12B84A1DA267DB28F66AFECE3" +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.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c" +latest-published-id = "0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c" +published-version = "1" diff --git a/mover/hellogmegg/code/task2/my_coin/Move.toml b/mover/hellogmegg/code/task2/my_coin/Move.toml new file mode 100644 index 000000000..63c657263 --- /dev/null +++ b/mover/hellogmegg/code/task2/my_coin/Move.toml @@ -0,0 +1,39 @@ +[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)"] +published-at = "0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c" +#TreasuryCap = 0xfeb082a53c14f0dfb44c6eaa54c6c852e805dd823bffdbddc7fe84bc0b0e9983 + +[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] +my_coin = "0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c" + +# 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/hellogmegg/code/task2/my_coin/mint.sh b/mover/hellogmegg/code/task2/my_coin/mint.sh new file mode 100644 index 000000000..c7d4a19ee --- /dev/null +++ b/mover/hellogmegg/code/task2/my_coin/mint.sh @@ -0,0 +1,8 @@ +sui client call --gas-budget 100000000 \ +--package 0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c \ +--module tmm_coin --function mint \ +--args 0xfeb082a53c14f0dfb44c6eaa54c6c852e805dd823bffdbddc7fe84bc0b0e9983 \ +1000000 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 + + +sui client pay --input-coins 0x5a498d39905ae455c2736b26c817a2e71f5dec66f5cd22ef1d885f3cfe49cf69 --amounts 1000000 --recipients 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 diff --git a/mover/hellogmegg/code/task2/my_coin/publish.log b/mover/hellogmegg/code/task2/my_coin/publish.log new file mode 100644 index 000000000..ed04b6b9b --- /dev/null +++ b/mover/hellogmegg/code/task2/my_coin/publish.log @@ -0,0 +1,172 @@ +[warn] Client/Server api version mismatch, client api version : 1.29.0, server api version : 1.28.2 +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING my_coin +warning[W09001]: unused alias + ┌─ /root/letsmove/mover/hellogmegg/code/task2/my_coin/sources/my_coin.move:3:27 + │ +3 │ use sui::coin::{Self, Coin, TreasuryCap}; + │ ^^^^ Unused 'use' of alias 'Coin'. Consider removing it + │ + = This warning can be suppressed with '#[allow(unused_use)]' applied to the 'module' or module member ('const', 'fun', or 'struct') + +Successfully verified dependencies on-chain against source. +Transaction Digest: EkpyZ2WRZKYiqa422hYCeEEN1JZqLitSbB7k6sTvNWHA +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 15581200 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 609357 │ +│ │ Digest: E5npfCKjDWfDBorBvcNT7FJ2ceSB3tavCXThN4zzo2EE │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 5xY0EhvSLxaw5RpsTlgUs87b4nSQDFIbYACQsGF/VrV9GekuN159XdaqegjmF761mhHnOfMwZd+FHkVxIQ8rBg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: EkpyZ2WRZKYiqa422hYCeEEN1JZqLitSbB7k6sTvNWHA │ +│ Status: Success │ +│ Executed Epoch: 420 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x482cea734f3bf7a45d7c82d61fa248975f8a981ae970111abc5a795f36b18046 │ +│ │ Owner: Immutable │ +│ │ Version: 609358 │ +│ │ Digest: AWA9cAwQ2DjMEfo8Wx6MeXqNa11QX4VDE4DuhrUBLyjP │ +│ └── │ +│ ┌── │ +│ │ ID: 0x7034acba2325e2da99c9d7f7f29730e798b25ff1b5f5c0941e9baa58d82de164 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 609358 │ +│ │ Digest: BmPzrrTFgDDAeqfcsLY9iKzVRkEQsdVeRt4G9jdatQgb │ +│ └── │ +│ ┌── │ +│ │ ID: 0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 3gourHNZETtZz1gFjVwnZhweRG7YTP95YgnxU3JZBmUM │ +│ └── │ +│ ┌── │ +│ │ ID: 0xfeb082a53c14f0dfb44c6eaa54c6c852e805dd823bffdbddc7fe84bc0b0e9983 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 609358 │ +│ │ Digest: GRSW8uJZ5RaEyfMYNwySrT4kfYmJmJ8s1LBkjSwooMcj │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 609358 │ +│ │ Digest: 3VZsf99XPsVqKMgimHPoXmYvq3B8dbPGFjZPj2FHzQ4d │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 609358 │ +│ │ Digest: 3VZsf99XPsVqKMgimHPoXmYvq3B8dbPGFjZPj2FHzQ4d │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 13581200 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ DuFSgyHEiBkHRPy42CyBKCnJpmwrgemMedLfgZEw7jpc │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x482cea734f3bf7a45d7c82d61fa248975f8a981ae970111abc5a795f36b18046 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c::tmm_coin::TMM_COIN> │ +│ │ Version: 609358 │ +│ │ Digest: AWA9cAwQ2DjMEfo8Wx6MeXqNa11QX4VDE4DuhrUBLyjP │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x7034acba2325e2da99c9d7f7f29730e798b25ff1b5f5c0941e9baa58d82de164 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 609358 │ +│ │ Digest: BmPzrrTFgDDAeqfcsLY9iKzVRkEQsdVeRt4G9jdatQgb │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xfeb082a53c14f0dfb44c6eaa54c6c852e805dd823bffdbddc7fe84bc0b0e9983 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c::tmm_coin::TMM_COIN> │ +│ │ Version: 609358 │ +│ │ Digest: GRSW8uJZ5RaEyfMYNwySrT4kfYmJmJ8s1LBkjSwooMcj │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 609358 │ +│ │ Digest: 3VZsf99XPsVqKMgimHPoXmYvq3B8dbPGFjZPj2FHzQ4d │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c │ +│ │ Version: 1 │ +│ │ Digest: 3gourHNZETtZz1gFjVwnZhweRG7YTP95YgnxU3JZBmUM │ +│ │ Modules: tmm_coin │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -13603080 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task2/my_coin/sources/my_coin.move b/mover/hellogmegg/code/task2/my_coin/sources/my_coin.move new file mode 100644 index 000000000..5029621db --- /dev/null +++ b/mover/hellogmegg/code/task2/my_coin/sources/my_coin.move @@ -0,0 +1,25 @@ +/// Module: my_coin +module my_coin::tmm_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + + public struct TMM_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: TMM_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, 6, b"TMM_COIN", b"TMM_COIN", b"my coin is TMM_COIN", option::none(), ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)) + } + + // mint coin + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } + +} diff --git a/mover/hellogmegg/code/task2/my_coin/tests/my_coin_tests.move b/mover/hellogmegg/code/task2/my_coin/tests/my_coin_tests.move new file mode 100644 index 000000000..4be556acf --- /dev/null +++ b/mover/hellogmegg/code/task2/my_coin/tests/my_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[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/hellogmegg/code/task3/move_nft/Move.lock b/mover/hellogmegg/code/task3/move_nft/Move.lock new file mode 100644 index 000000000..1f9e42955 --- /dev/null +++ b/mover/hellogmegg/code/task3/move_nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "4540D330C6E846CAE6F9BE6749EE389FEBF0A14ECFBE748ED332A79FDCAF28EE" +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.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xf428422051433310369762186ba9b0984c524d269d83d0e8368ae04db7adf0a2" +latest-published-id = "0xf428422051433310369762186ba9b0984c524d269d83d0e8368ae04db7adf0a2" +published-version = "1" diff --git a/mover/hellogmegg/code/task3/move_nft/Move.toml b/mover/hellogmegg/code/task3/move_nft/Move.toml new file mode 100644 index 000000000..eb96b74de --- /dev/null +++ b/mover/hellogmegg/code/task3/move_nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "move_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://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] +move_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/hellogmegg/code/task3/move_nft/mint.sh b/mover/hellogmegg/code/task3/move_nft/mint.sh new file mode 100644 index 000000000..c028bd5cc --- /dev/null +++ b/mover/hellogmegg/code/task3/move_nft/mint.sh @@ -0,0 +1,10 @@ +sui client call --gas-budget 100000000 \ +--package 0xf428422051433310369762186ba9b0984c524d269d83d0e8368ae04db7adf0a2 \ +--module tmm_nft --function mint_to_sender \ +--args TMM_NFT + +sui client call --gas-budget 100000000 \ +--package 0xf428422051433310369762186ba9b0984c524d269d83d0e8368ae04db7adf0a2 \ +--module tmm_nft --function transfer \ +--args 0x5f2a408396c4c93a989ac64a99d690d55e0c042ea9a283c64629d8dabc374868 \ +0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 diff --git a/mover/hellogmegg/code/task3/move_nft/publish.log b/mover/hellogmegg/code/task3/move_nft/publish.log new file mode 100644 index 000000000..6418257a6 --- /dev/null +++ b/mover/hellogmegg/code/task3/move_nft/publish.log @@ -0,0 +1,196 @@ +[warn] Client/Server api version mismatch, client api version : 1.29.0, server api version : 1.28.2 +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING move_nft +Successfully verified dependencies on-chain against source. +Transaction Digest: HjbttXAsLtRGr4T7nXruf4S4b2dCTLe9fDEBNKQ2ayxR +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 17359600 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 609362 │ +│ │ Digest: 7yNBzCyQpdMkpDxvda7TPiCUg1xqgj6mDd3j56BMYNg9 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ pROmFCcSvMbv9cteWn4UWkTTUFOGWA65AEl9dYj95mQPvbKMO5HfVcwAbE5chWgPb0lq0kDobWZ5WJW+qmjIAg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: HjbttXAsLtRGr4T7nXruf4S4b2dCTLe9fDEBNKQ2ayxR │ +│ Status: Success │ +│ Executed Epoch: 420 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x9556a9509cfb2ab255fc076067c0fc5886e812cf9c7977f77ceea547b9c02679 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 609363 │ +│ │ Digest: E8g58kyg32CLn4X31RsCNQPfMAXnzzh2PUPzJ3Lq1yeE │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf428422051433310369762186ba9b0984c524d269d83d0e8368ae04db7adf0a2 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 9JaDbBnkJuSqRLtGsHtE3wmU7k8MLjYMTf3nDg69Gnp3 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf8409b2b8ffd4da809088c091dbecf12c69b8ffefb2f79837858411155f44981 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 609363 │ +│ │ Digest: 5UmSHFx4Vqo7ia57jDPwL97UX94CudBUttx8QMtDPoYN │ +│ └── │ +│ ┌── │ +│ │ ID: 0xff9450bef759a35c35d9eb8e1129282ecc5036c19426c208f2c1eedb9ca6b972 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 609363 │ +│ │ Digest: 8Q9io6WirJ7svy7HKftEdBbrF1obGAnVeTY86tHGKREi │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 609363 │ +│ │ Digest: 4rNaqSmCdsNp4zm6WiHGYgf2gQBDCyBBV6WT7NVu8S99 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 609363 │ +│ │ Digest: 4rNaqSmCdsNp4zm6WiHGYgf2gQBDCyBBV6WT7NVu8S99 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 15359600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ Bfqih3Av3CcQ7jHjzNtT1tJ59tkxonh32AMo8478gUHx │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: HjbttXAsLtRGr4T7nXruf4S4b2dCTLe9fDEBNKQ2ayxR:0 │ +│ │ PackageID: 0xf428422051433310369762186ba9b0984c524d269d83d0e8368ae04db7adf0a2 │ +│ │ Transaction Module: tmm_nft │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ EventType: 0x2::display::DisplayCreated<0xf428422051433310369762186ba9b0984c524d269d83d0e8368ae04db7adf0a2::tmm_nft::TMM> │ +│ │ ParsedJSON: │ +│ │ ┌────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ id │ 0xff9450bef759a35c35d9eb8e1129282ecc5036c19426c208f2c1eedb9ca6b972 │ │ +│ │ └────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +│ ┌── │ +│ │ EventID: HjbttXAsLtRGr4T7nXruf4S4b2dCTLe9fDEBNKQ2ayxR:1 │ +│ │ PackageID: 0xf428422051433310369762186ba9b0984c524d269d83d0e8368ae04db7adf0a2 │ +│ │ Transaction Module: tmm_nft │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ EventType: 0x2::display::VersionUpdated<0xf428422051433310369762186ba9b0984c524d269d83d0e8368ae04db7adf0a2::tmm_nft::TMM> │ +│ │ ParsedJSON: │ +│ │ ┌─────────┬──────────┬───────┬───────────────────────────────────────────────────────┐ │ +│ │ │ fields │ contents │ key │ name │ │ +│ │ │ │ ├───────┼───────────────────────────────────────────────────────┤ │ +│ │ │ │ │ value │ TMM_NFT │ │ +│ │ │ │ ├───────┼───────────────────────────────────────────────────────┤ │ +│ │ │ │ │ key │ image_url │ │ +│ │ │ │ ├───────┼───────────────────────────────────────────────────────┤ │ +│ │ │ │ │ value │ https://avatars.githubusercontent.com/u/149467233?v=4 │ │ +│ │ ├─────────┼──────────┴───────┴───────────────────────────────────────────────────────┤ │ +│ │ │ id │ 0xff9450bef759a35c35d9eb8e1129282ecc5036c19426c208f2c1eedb9ca6b972 │ │ +│ │ ├─────────┼──────────────────────────────────────────────────────────────────────────┤ │ +│ │ │ version │ 1 │ │ +│ │ └─────────┴──────────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x9556a9509cfb2ab255fc076067c0fc5886e812cf9c7977f77ceea547b9c02679 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 609363 │ +│ │ Digest: E8g58kyg32CLn4X31RsCNQPfMAXnzzh2PUPzJ3Lq1yeE │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xf8409b2b8ffd4da809088c091dbecf12c69b8ffefb2f79837858411155f44981 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::package::Publisher │ +│ │ Version: 609363 │ +│ │ Digest: 5UmSHFx4Vqo7ia57jDPwL97UX94CudBUttx8QMtDPoYN │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xff9450bef759a35c35d9eb8e1129282ecc5036c19426c208f2c1eedb9ca6b972 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::display::Display<0xf428422051433310369762186ba9b0984c524d269d83d0e8368ae04db7adf0a2::tmm_nft::TMM> │ +│ │ Version: 609363 │ +│ │ Digest: 8Q9io6WirJ7svy7HKftEdBbrF1obGAnVeTY86tHGKREi │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 609363 │ +│ │ Digest: 4rNaqSmCdsNp4zm6WiHGYgf2gQBDCyBBV6WT7NVu8S99 │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xf428422051433310369762186ba9b0984c524d269d83d0e8368ae04db7adf0a2 │ +│ │ Version: 1 │ +│ │ Digest: 9JaDbBnkJuSqRLtGsHtE3wmU7k8MLjYMTf3nDg69Gnp3 │ +│ │ Modules: tmm_nft │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -15381480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task3/move_nft/sources/move_nft.move b/mover/hellogmegg/code/task3/move_nft/sources/move_nft.move new file mode 100644 index 000000000..3e7ce9dac --- /dev/null +++ b/mover/hellogmegg/code/task3/move_nft/sources/move_nft.move @@ -0,0 +1,45 @@ +/// Module: move_nft +module move_nft::tmm_nft { + use std::string::{utf8, String}; + use sui::package; + use sui::display; + + //funtion some nft + public struct TMM has key, store { + id: UID, + name: String + } + + public struct TMM_NFT has drop {} + + fun init(otw: TMM_NFT, ctx: &mut TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url")]; + + let values = vector[ + utf8(b"TMM_NFT"), + utf8(b"https://avatars.githubusercontent.com/u/149467233?v=4")]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values, ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + public entry fun mint_to_sender(name: String, ctx: &mut TxContext) { + let sender = tx_context::sender(ctx); + let nft = TMM{ + id: object::new(ctx), + name, + }; + transfer::public_transfer(nft, sender); + } + + public entry fun transfer(nft: TMM, recipient: address, _: &mut TxContext) { + transfer::public_transfer(nft, recipient) + } +} diff --git a/mover/hellogmegg/code/task3/move_nft/tests/move_nft_tests.move b/mover/hellogmegg/code/task3/move_nft/tests/move_nft_tests.move new file mode 100644 index 000000000..c1a1b24ce --- /dev/null +++ b/mover/hellogmegg/code/task3/move_nft/tests/move_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module move_nft::move_nft_tests { + // uncomment this line to import the module + // use move_nft::move_nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_move_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::move_nft::move_nft_tests::ENotImplemented)] + fun test_move_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/hellogmegg/code/task4/hellogmegg_game/Move.lock b/mover/hellogmegg/code/task4/hellogmegg_game/Move.lock new file mode 100644 index 000000000..c05b56dda --- /dev/null +++ b/mover/hellogmegg/code/task4/hellogmegg_game/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E1188742D11644AA5E43B48E35F6112D10F7607290FA4CA6A7C53CADD3B1A37A" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "faucet_coin" }, +] + +[[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.package]] +name = "faucet_coin" +source = { local = "../../task2/faucet_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616" +latest-published-id = "0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616" +published-version = "1" diff --git a/mover/hellogmegg/code/task4/hellogmegg_game/Move.toml b/mover/hellogmegg/code/task4/hellogmegg_game/Move.toml new file mode 100644 index 000000000..2ace81e11 --- /dev/null +++ b/mover/hellogmegg/code/task4/hellogmegg_game/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "hellogmegg_game" +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] +faucet_coin = {local = "../../task2/faucet_coin"} +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] +hellogmegg_game = "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/hellogmegg/code/task4/hellogmegg_game/deposit.log b/mover/hellogmegg/code/task4/hellogmegg_game/deposit.log new file mode 100644 index 000000000..b874c4ab4 --- /dev/null +++ b/mover/hellogmegg/code/task4/hellogmegg_game/deposit.log @@ -0,0 +1,146 @@ +Transaction Digest: 3FzMDATUExwVTFPDzAHbtzdgER6cV2bZBNjrdga4N5tG +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 855037 │ +│ │ Digest: G169sDAuZGPByb6ZxVGTJozMdknqwfs8WXk6u7y3ZVPH │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x86035f5de9d3347538488804e5048169f01fa91db40a02124d4f44f078781870 │ │ +│ │ 1 Imm/Owned Object ID: 0x804f3565c97add13bb58f6e8023aa5994b082a026fb0f98406284b3c5b8ee57b │ │ +│ │ 2 Pure Arg: Type: u64, Value: "800000000" │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: deposit │ │ +│ │ │ Module: hellogmegg_game │ │ +│ │ │ Package: 0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ kxAd4/0nR7ndw3eDiO7TACMq/wJjAm9OWfhQx00oqRBIU0qpsqOGErvyIScrk9OPO0uGUxxbyCNAX00dgV1XBA== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 3FzMDATUExwVTFPDzAHbtzdgER6cV2bZBNjrdga4N5tG │ +│ Status: Success │ +│ Executed Epoch: 425 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xca46494c26aeffb3805ed1d36c17d1523dd4a0b3a6b2f5142647cd02b6306f2b │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 855038 │ +│ │ Digest: DGg1YCtdirBUuFWUTNX96TgbWmgvo8tVSz6ypwqsEdrK │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 855038 │ +│ │ Digest: A2dk8dLZrBbwQeFF6CkgQoeT8ZLwH7DXumWawS15BzAD │ +│ └── │ +│ ┌── │ +│ │ ID: 0x86035f5de9d3347538488804e5048169f01fa91db40a02124d4f44f078781870 │ +│ │ Owner: Shared( 609366 ) │ +│ │ Version: 855038 │ +│ │ Digest: B3hGVhHmEZm8AW6zuKBtMM8zepNMRPiinB6F3yrDgx3L │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x86035f5de9d3347538488804e5048169f01fa91db40a02124d4f44f078781870 │ +│ │ Version: 609366 │ +│ │ Digest: CB1GpsEPkZZUf5xpSCqW3LxwqXhV3FW8iFvGifzqRY1Q │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0x804f3565c97add13bb58f6e8023aa5994b082a026fb0f98406284b3c5b8ee57b │ +│ │ Version: 855038 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 855038 │ +│ │ Digest: A2dk8dLZrBbwQeFF6CkgQoeT8ZLwH7DXumWawS15BzAD │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3921600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3882384 MIST │ +│ Non-refundable Storage Fee: 39216 MIST │ +│ │ +│ Transaction Dependencies: │ +│ YMB7uiDhYvxjyrAxLeAYWurBBTUVP8xavcHtNvYKvac │ +│ 43pSiWZU34NiUY6VENs5vJEoMtEvGAqYKiYzyDESqevm │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xca46494c26aeffb3805ed1d36c17d1523dd4a0b3a6b2f5142647cd02b6306f2b │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET> │ +│ │ Version: 855038 │ +│ │ Digest: DGg1YCtdirBUuFWUTNX96TgbWmgvo8tVSz6ypwqsEdrK │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 855038 │ +│ │ Digest: A2dk8dLZrBbwQeFF6CkgQoeT8ZLwH7DXumWawS15BzAD │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x86035f5de9d3347538488804e5048169f01fa91db40a02124d4f44f078781870 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Shared( 609366 ) │ +│ │ ObjectType: 0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616::hellogmegg_game::Game │ +│ │ Version: 855038 │ +│ │ Digest: B3hGVhHmEZm8AW6zuKBtMM8zepNMRPiinB6F3yrDgx3L │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1039216 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET │ +│ │ Amount: -800000000 │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task4/hellogmegg_game/get_faucet_coin.log b/mover/hellogmegg/code/task4/hellogmegg_game/get_faucet_coin.log new file mode 100644 index 000000000..755dcaebb --- /dev/null +++ b/mover/hellogmegg/code/task4/hellogmegg_game/get_faucet_coin.log @@ -0,0 +1,138 @@ +Transaction Digest: YMB7uiDhYvxjyrAxLeAYWurBBTUVP8xavcHtNvYKvac +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 609366 │ +│ │ Digest: 7ongEZdvXc2yWsai26eMjAWvGqze9ts7YbNG6y52dxCB │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0xf541ec3bfa5eb4c4cb5f259ec2dbe98cc65add5f0f82a6bd6775ceb777242673 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "1000000000" │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: get_faucet_coin │ │ +│ │ │ Module: hellogmegg_game │ │ +│ │ │ Package: 0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ ObWJtvf4SnA+Ne+ZGrfK+XaL3HuieO3hGO53p8b+3uGgnlkpkqrGg2rKUfTztkLKUfV1HdmsY9fjxPWWMUmsBQ== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: YMB7uiDhYvxjyrAxLeAYWurBBTUVP8xavcHtNvYKvac │ +│ Status: Success │ +│ Executed Epoch: 425 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x804f3565c97add13bb58f6e8023aa5994b082a026fb0f98406284b3c5b8ee57b │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 855037 │ +│ │ Digest: DBYRyPJGSCjZ6YTZ7gVuDzCFk13JGrUbxXLc62BV4fBK │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 855037 │ +│ │ Digest: G169sDAuZGPByb6ZxVGTJozMdknqwfs8WXk6u7y3ZVPH │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf541ec3bfa5eb4c4cb5f259ec2dbe98cc65add5f0f82a6bd6775ceb777242673 │ +│ │ Owner: Shared( 609361 ) │ +│ │ Version: 855037 │ +│ │ Digest: FSn93FgZRD7sthXL5gfUTByZQGq4UKwsHA1JY1akNGFf │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xf541ec3bfa5eb4c4cb5f259ec2dbe98cc65add5f0f82a6bd6775ceb777242673 │ +│ │ Version: 855036 │ +│ │ Digest: 59aCeS8HHLKmMEU37Qwzgm1AL9tpt9y5t8HWBnmfASHm │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 855037 │ +│ │ Digest: G169sDAuZGPByb6ZxVGTJozMdknqwfs8WXk6u7y3ZVPH │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4195200 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2753784 MIST │ +│ Non-refundable Storage Fee: 27816 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3F7f8Lfhskc8TXk8zvLxGATYpPpbaVXRidfp3EgKMMmh │ +│ 43pSiWZU34NiUY6VENs5vJEoMtEvGAqYKiYzyDESqevm │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x804f3565c97add13bb58f6e8023aa5994b082a026fb0f98406284b3c5b8ee57b │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET> │ +│ │ Version: 855037 │ +│ │ Digest: DBYRyPJGSCjZ6YTZ7gVuDzCFk13JGrUbxXLc62BV4fBK │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 855037 │ +│ │ Digest: G169sDAuZGPByb6ZxVGTJozMdknqwfs8WXk6u7y3ZVPH │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xf541ec3bfa5eb4c4cb5f259ec2dbe98cc65add5f0f82a6bd6775ceb777242673 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Shared( 609361 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET> │ +│ │ Version: 855037 │ +│ │ Digest: FSn93FgZRD7sthXL5gfUTByZQGq4UKwsHA1JY1akNGFf │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2441416 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET │ +│ │ Amount: 1000000000 │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task4/hellogmegg_game/play.log b/mover/hellogmegg/code/task4/hellogmegg_game/play.log new file mode 100644 index 000000000..339fda379 --- /dev/null +++ b/mover/hellogmegg/code/task4/hellogmegg_game/play.log @@ -0,0 +1,165 @@ +Transaction Digest: krnqvu6A942hm2ZG8in9CuDanukLieoz8ps3nD4pSkh +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 855038 │ +│ │ Digest: A2dk8dLZrBbwQeFF6CkgQoeT8ZLwH7DXumWawS15BzAD │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: u8, Value: 1 │ │ +│ │ 1 Shared Object ID: 0x86035f5de9d3347538488804e5048169f01fa91db40a02124d4f44f078781870 │ │ +│ │ 2 Imm/Owned Object ID: 0xca46494c26aeffb3805ed1d36c17d1523dd4a0b3a6b2f5142647cd02b6306f2b │ │ +│ │ 3 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000006 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: play │ │ +│ │ │ Module: hellogmegg_game │ │ +│ │ │ Package: 0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ │ Input 3 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ N2lEgLFRS60FkZ1ISK+FfTxERiuetMeuDi0uKuOE5XHmcZTwkKdFqHSVbfAf7Jx5pDpCuOcpmRsrBiNTtiSJBA== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: krnqvu6A942hm2ZG8in9CuDanukLieoz8ps3nD4pSkh │ +│ Status: Success │ +│ Executed Epoch: 425 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x4acb114af3bc453e2d3d78e93f04346b35195229e3589e68d367a8b5de22e390 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743776 │ +│ │ Digest: BtpQo3g4fPxpKjjGg8hRJDm5Pnz4GLnErKRz3XmQ3vyV │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743776 │ +│ │ Digest: 5RCE5W7KiB7EH9SCCzYeVGEqgnyAccm3eJjLV9fAL4ym │ +│ └── │ +│ ┌── │ +│ │ ID: 0x86035f5de9d3347538488804e5048169f01fa91db40a02124d4f44f078781870 │ +│ │ Owner: Shared( 609366 ) │ +│ │ Version: 74743776 │ +│ │ Digest: 6Zdd8mY4jjDXRyiqHutmPHJ4hu53JMjMa1spL5cJKMzh │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x86035f5de9d3347538488804e5048169f01fa91db40a02124d4f44f078781870 │ +│ │ Version: 855038 │ +│ │ Digest: B3hGVhHmEZm8AW6zuKBtMM8zepNMRPiinB6F3yrDgx3L │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000006 │ +│ │ Version: 74743775 │ +│ │ Digest: 3s4q2rfKn1TPo8S57G6sxsaoXEU92JtzUHAv9tWaNr8D │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0xca46494c26aeffb3805ed1d36c17d1523dd4a0b3a6b2f5142647cd02b6306f2b │ +│ │ Version: 74743776 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743776 │ +│ │ Digest: 5RCE5W7KiB7EH9SCCzYeVGEqgnyAccm3eJjLV9fAL4ym │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3921600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3882384 MIST │ +│ Non-refundable Storage Fee: 39216 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3FzMDATUExwVTFPDzAHbtzdgER6cV2bZBNjrdga4N5tG │ +│ 3TR5UaCsKgu4ToNwdYHs21zceSvNV1Ct3RPTD1dv5hpf │ +│ 43pSiWZU34NiUY6VENs5vJEoMtEvGAqYKiYzyDESqevm │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: krnqvu6A942hm2ZG8in9CuDanukLieoz8ps3nD4pSkh:0 │ +│ │ PackageID: 0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616 │ +│ │ Transaction Module: hellogmegg_game │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ EventType: 0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616::hellogmegg_game::GameResult │ +│ │ ParsedJSON: │ +│ │ ┌────────┬──────┐ │ +│ │ │ result │ LOSE │ │ +│ │ └────────┴──────┘ │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x4acb114af3bc453e2d3d78e93f04346b35195229e3589e68d367a8b5de22e390 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET> │ +│ │ Version: 74743776 │ +│ │ Digest: BtpQo3g4fPxpKjjGg8hRJDm5Pnz4GLnErKRz3XmQ3vyV │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 74743776 │ +│ │ Digest: 5RCE5W7KiB7EH9SCCzYeVGEqgnyAccm3eJjLV9fAL4ym │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x86035f5de9d3347538488804e5048169f01fa91db40a02124d4f44f078781870 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Shared( 609366 ) │ +│ │ ObjectType: 0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616::hellogmegg_game::Game │ +│ │ Version: 74743776 │ +│ │ Digest: 6Zdd8mY4jjDXRyiqHutmPHJ4hu53JMjMa1spL5cJKMzh │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1039216 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET │ +│ │ Amount: -100000000 │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task4/hellogmegg_game/publish.log b/mover/hellogmegg/code/task4/hellogmegg_game/publish.log new file mode 100644 index 000000000..59e14865e --- /dev/null +++ b/mover/hellogmegg/code/task4/hellogmegg_game/publish.log @@ -0,0 +1,171 @@ +[warn] Client/Server api version mismatch, client api version : 1.29.0, server api version : 1.28.3 +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +Warning: unknown field name found. Expected one of [name, authors, license, edition, flavor, published-at, version], but found 'publish-at' +Warning: unknown field name found. Expected one of [name, authors, license, edition, flavor, published-at, version], but found 'publish-at' +Warning: unknown field name found. Expected one of [name, authors, license, edition, flavor, published-at, version], but found 'publish-at' +Warning: unknown field name found. Expected one of [name, authors, license, edition, flavor, published-at, version], but found 'publish-at' +INCLUDING DEPENDENCY faucet_coin +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING hellogmegg_game +Successfully verified dependencies on-chain against source. +Transaction Digest: 43pSiWZU34NiUY6VENs5vJEoMtEvGAqYKiYzyDESqevm +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 22383200 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 609365 │ +│ │ Digest: 4HFgbQbYGbzpzPNTNptSNGXDmWig7T5fnR87kYn55Xby │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ │ 0x0cd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ py/T3IiTQIML4BDRaZ+64OBviUChNc/KvGoHhh1XaY3TuL+acFRwhSyLQ1N73Qq/ZpCP1jxZjuUfM1Bx6LibCQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 43pSiWZU34NiUY6VENs5vJEoMtEvGAqYKiYzyDESqevm │ +│ Status: Success │ +│ Executed Epoch: 425 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x4a43cbeb332d7aebfa592c7356d9f5ace97ea9e854f3b2a8e42bfc7e581ba8c5 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 609366 │ +│ │ Digest: Ew2KQRttHMb2XPYj6gvjtRYDCEqWtuoudBrNZsxn1sJe │ +│ └── │ +│ ┌── │ +│ │ ID: 0x86035f5de9d3347538488804e5048169f01fa91db40a02124d4f44f078781870 │ +│ │ Owner: Shared( 609366 ) │ +│ │ Version: 609366 │ +│ │ Digest: CB1GpsEPkZZUf5xpSCqW3LxwqXhV3FW8iFvGifzqRY1Q │ +│ └── │ +│ ┌── │ +│ │ ID: 0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 4q7Gtg7zrDwLwF4Rvx9CYkk9VzprsXY4g6PqqSMEN2UA │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf95588d7fff1561f6d29d46da44cfcd3c54c766b1415cf4c79ec916e84346d3b │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 609366 │ +│ │ Digest: 9nBiiA2DSqsNgFsE2zVrTToPqZ1j6ic2vrt7tcL2xFou │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 609366 │ +│ │ Digest: 7ongEZdvXc2yWsai26eMjAWvGqze9ts7YbNG6y52dxCB │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 609366 │ +│ │ Digest: 7ongEZdvXc2yWsai26eMjAWvGqze9ts7YbNG6y52dxCB │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 20383200 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 4dhK26UmfFb6Q7cHjhwLEYGhW4napZK3kKp4DNwgD3JA │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ 9cYJmUSgtdW3VLht2yfpvELEhzWDDRMpQB48f8R5C3p7 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x4a43cbeb332d7aebfa592c7356d9f5ace97ea9e854f3b2a8e42bfc7e581ba8c5 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 609366 │ +│ │ Digest: Ew2KQRttHMb2XPYj6gvjtRYDCEqWtuoudBrNZsxn1sJe │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x86035f5de9d3347538488804e5048169f01fa91db40a02124d4f44f078781870 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Shared( 609366 ) │ +│ │ ObjectType: 0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616::hellogmegg_game::Game │ +│ │ Version: 609366 │ +│ │ Digest: CB1GpsEPkZZUf5xpSCqW3LxwqXhV3FW8iFvGifzqRY1Q │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xf95588d7fff1561f6d29d46da44cfcd3c54c766b1415cf4c79ec916e84346d3b │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616::hellogmegg_game::AdminCap │ +│ │ Version: 609366 │ +│ │ Digest: 9nBiiA2DSqsNgFsE2zVrTToPqZ1j6ic2vrt7tcL2xFou │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 609366 │ +│ │ Digest: 7ongEZdvXc2yWsai26eMjAWvGqze9ts7YbNG6y52dxCB │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616 │ +│ │ Version: 1 │ +│ │ Digest: 4q7Gtg7zrDwLwF4Rvx9CYkk9VzprsXY4g6PqqSMEN2UA │ +│ │ Modules: hellogmegg_game │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -20405080 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task4/hellogmegg_game/sources/hellogmegg_game.move b/mover/hellogmegg/code/task4/hellogmegg_game/sources/hellogmegg_game.move new file mode 100644 index 000000000..9c9cf88aa --- /dev/null +++ b/mover/hellogmegg/code/task4/hellogmegg_game/sources/hellogmegg_game.move @@ -0,0 +1,113 @@ +/// Module: hellogmegg_game +module hellogmegg_game::hellogmegg_game { + use std::string::{Self, String}; + use sui::clock::{Self, Clock}; + use sui::event; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::tx_context::sender; + use faucet_coin::tmm_faucet::{Self, TMM_FAUCET}; + + const EPoolNotEnough: u64 = 1; + const EInputNotEnough: u64 = 2; + + public struct GameResult has copy, drop { + result: String, + } + + public struct Game has key { + id: UID, + pool: Balance, + ticket: u64, + reward: u64, + } + + public fun game_pool(game: &Game): u64 { + balance::value(&game.pool) + } + + public struct AdminCap has key { + id: UID, + } + + fun init(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + pool: balance::zero(), + ticket: 100_000_000, + reward: 200_000_000, + }; + transfer::share_object(game); + + let admin_cap = AdminCap { id: object::new(ctx) }; + transfer::transfer(admin_cap, sender(ctx)); + } + + fun get_random_choice(clock: &Clock) : u8 { + ((clock::timestamp_ms(clock) % 2) as u8) + } + + public entry fun play(choice: u8, game: &mut Game, input: Coin, clock: &Clock, ctx: &mut TxContext) { + assert!(balance::value(&game.pool) >= game.reward - game.ticket, EPoolNotEnough); + + let input_value = coin::value(&input); + assert!(input_value >= game.ticket, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > game.ticket) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, game.ticket) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + }; + + let (result, win) = if ( + (choice % 2 == get_random_choice(clock)) + ) { + (string::utf8(b"WIN"), true) + } else { + (string::utf8(b"LOSE"), false) + }; + + if (win) { + let reward_balance = balance::split(&mut game.pool, game.reward); + let reward = coin::from_balance(reward_balance, ctx); + transfer::public_transfer(reward, sender(ctx)); + }; + + event::emit(GameResult { + result, + }); + } + + public entry fun deposit(game: &mut Game, input: Coin, amount: u64, ctx: &mut TxContext) { + let input_value = coin::value(&input); + assert!(input_value >= amount, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > amount) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, amount) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + } + } + + public entry fun withdraw(_: &AdminCap, game: &mut Game, amount: u64, ctx: &mut TxContext) { + let output_balance = balance::split(&mut game.pool, amount); + let output = coin::from_balance(output_balance, ctx); + transfer::public_transfer(output, sender(ctx)); + } + + public entry fun get_faucet_coin(treasury_cap: &mut TreasuryCap, amount: u64, ctx: &mut TxContext) { + tmm_faucet::mint(treasury_cap, amount, sender(ctx), ctx); + } +} diff --git a/mover/hellogmegg/code/task4/hellogmegg_game/tests/hellogmegg_game_tests.move b/mover/hellogmegg/code/task4/hellogmegg_game/tests/hellogmegg_game_tests.move new file mode 100644 index 000000000..1a18f64f2 --- /dev/null +++ b/mover/hellogmegg/code/task4/hellogmegg_game/tests/hellogmegg_game_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hellogmegg_game::hellogmegg_game_tests { + // uncomment this line to import the module + // use hellogmegg_game::hellogmegg_game; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hellogmegg_game() { + // pass + } + + #[test, expected_failure(abort_code = ::hellogmegg_game::hellogmegg_game_tests::ENotImplemented)] + fun test_hellogmegg_game_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/hellogmegg/code/task4/hellogmegg_game/withdraw.log b/mover/hellogmegg/code/task4/hellogmegg_game/withdraw.log new file mode 100644 index 000000000..80f01f078 --- /dev/null +++ b/mover/hellogmegg/code/task4/hellogmegg_game/withdraw.log @@ -0,0 +1,154 @@ +Transaction Digest: CRsLXRo4Zj4RQbVwsJxewoLesfmoEiQqvqwLKt6egM2w +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 74743776 │ +│ │ Digest: 5RCE5W7KiB7EH9SCCzYeVGEqgnyAccm3eJjLV9fAL4ym │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0xf95588d7fff1561f6d29d46da44cfcd3c54c766b1415cf4c79ec916e84346d3b │ │ +│ │ 1 Shared Object ID: 0x86035f5de9d3347538488804e5048169f01fa91db40a02124d4f44f078781870 │ │ +│ │ 2 Pure Arg: Type: u64, Value: "600000000" │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: withdraw │ │ +│ │ │ Module: hellogmegg_game │ │ +│ │ │ Package: 0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 2ZN8dbFdh1CZG5hPdKYZin8GB6JfkG4mO8EJlUsTQ0l4WsKuRJ3Kofy+tKHhI9YVLAxkUadP5BRXVbGicIsZAA== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: CRsLXRo4Zj4RQbVwsJxewoLesfmoEiQqvqwLKt6egM2w │ +│ Status: Success │ +│ Executed Epoch: 425 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xd76038dd7c3d90681d36de3abda590698808079e07aa5938d621d9e2703b8b05 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743777 │ +│ │ Digest: 3PuEHo52tyMFfyjPYrYKDjGypByJ17GoxjGsNyLYgnRk │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743777 │ +│ │ Digest: Ffs62i18d5XFmnXvvEj3SqRWroXwN7vRBgsduLnanXwN │ +│ └── │ +│ ┌── │ +│ │ ID: 0x86035f5de9d3347538488804e5048169f01fa91db40a02124d4f44f078781870 │ +│ │ Owner: Shared( 609366 ) │ +│ │ Version: 74743777 │ +│ │ Digest: F73TEWnQJbia2kXo2bwurhQmDgqThpV8TUbLTcrDWwN4 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf95588d7fff1561f6d29d46da44cfcd3c54c766b1415cf4c79ec916e84346d3b │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743777 │ +│ │ Digest: 8xDurxqwvMPSpN5sS68ucV8EwK7h7ab25YYq68e5wWAM │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x86035f5de9d3347538488804e5048169f01fa91db40a02124d4f44f078781870 │ +│ │ Version: 74743776 │ +│ │ Digest: 6Zdd8mY4jjDXRyiqHutmPHJ4hu53JMjMa1spL5cJKMzh │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743777 │ +│ │ Digest: Ffs62i18d5XFmnXvvEj3SqRWroXwN7vRBgsduLnanXwN │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 5289600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3837240 MIST │ +│ Non-refundable Storage Fee: 38760 MIST │ +│ │ +│ Transaction Dependencies: │ +│ krnqvu6A942hm2ZG8in9CuDanukLieoz8ps3nD4pSkh │ +│ 43pSiWZU34NiUY6VENs5vJEoMtEvGAqYKiYzyDESqevm │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xd76038dd7c3d90681d36de3abda590698808079e07aa5938d621d9e2703b8b05 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET> │ +│ │ Version: 74743777 │ +│ │ Digest: 3PuEHo52tyMFfyjPYrYKDjGypByJ17GoxjGsNyLYgnRk │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 74743777 │ +│ │ Digest: Ffs62i18d5XFmnXvvEj3SqRWroXwN7vRBgsduLnanXwN │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x86035f5de9d3347538488804e5048169f01fa91db40a02124d4f44f078781870 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Shared( 609366 ) │ +│ │ ObjectType: 0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616::hellogmegg_game::Game │ +│ │ Version: 74743777 │ +│ │ Digest: F73TEWnQJbia2kXo2bwurhQmDgqThpV8TUbLTcrDWwN4 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xf95588d7fff1561f6d29d46da44cfcd3c54c766b1415cf4c79ec916e84346d3b │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616::hellogmegg_game::AdminCap │ +│ │ Version: 74743777 │ +│ │ Digest: 8xDurxqwvMPSpN5sS68ucV8EwK7h7ab25YYq68e5wWAM │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2452360 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET │ +│ │ Amount: 600000000 │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task5/move_swap/Move.lock b/mover/hellogmegg/code/task5/move_swap/Move.lock new file mode 100644 index 000000000..bde204401 --- /dev/null +++ b/mover/hellogmegg/code/task5/move_swap/Move.lock @@ -0,0 +1,52 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "19A31B44B895E536C186897714C2E9265192AD710CE564386B9DF542B3776DF0" +deps_digest = "060AD7E57DFB13104F21BE5F5C3759D03F0553FC3229247D9A7A6B45F50D03A3" +dependencies = [ + { name = "Sui" }, + { name = "faucet_coin" }, + { name = "my_coin" }, +] + +[[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.package]] +name = "faucet_coin" +source = { local = "../../task2/faucet_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "my_coin" +source = { local = "../../task2/my_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x0e045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff" +latest-published-id = "0x0e045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff" +published-version = "1" diff --git a/mover/hellogmegg/code/task5/move_swap/Move.toml b/mover/hellogmegg/code/task5/move_swap/Move.toml new file mode 100644 index 000000000..a4dac2e02 --- /dev/null +++ b/mover/hellogmegg/code/task5/move_swap/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "move_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 (joesmith@noemail.com)", "John Snow (johnsnow@noemail.com)"] + +[dependencies] +my_coin = {local = "../../task2/my_coin"} +faucet_coin = {local = "../../task2/faucet_coin"} +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] +move_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" + diff --git a/mover/hellogmegg/code/task5/move_swap/deposit_a.log b/mover/hellogmegg/code/task5/move_swap/deposit_a.log new file mode 100644 index 000000000..57f183a72 --- /dev/null +++ b/mover/hellogmegg/code/task5/move_swap/deposit_a.log @@ -0,0 +1,128 @@ +Transaction Digest: Bqqi3rVxRcFGxGebxow48A4sr9ueRtLfq7sXBPiRHobG +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 74743780 │ +│ │ Digest: GzwrptmA6XPfoSYXp26suw2SsGV2WWGgiBLjdrEzk2h5 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ │ +│ │ 1 Imm/Owned Object ID: 0xdb21c1222f9c3169c7190b99725b2db4c2ab2005ad6917d9bba4ba3206097360 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: deposit_a │ │ +│ │ │ Module: move_swap │ │ +│ │ │ Package: 0x0e045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ wKw8li9zF9nmxpyShVn1ZkhJYr8kiS5AYCR3rfuX6J5UZ5CFiZ8VkHZNOIgw3kWUUTC3bFl7nNxhBZUgkENCBg== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: Bqqi3rVxRcFGxGebxow48A4sr9ueRtLfq7sXBPiRHobG │ +│ Status: Success │ +│ Executed Epoch: 425 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743781 │ +│ │ Digest: 5FuJjpCbPfVbBnpVeSmhyTqGgdF4xBbhzH3QgXCoeeSL │ +│ └── │ +│ ┌── │ +│ │ ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Owner: Shared( 74743778 ) │ +│ │ Version: 74743781 │ +│ │ Digest: Hyea2VNpGNpLQxovhhbPjmyasHU5frDa34yWP7wdWPAs │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Version: 74743778 │ +│ │ Digest: 9HWgAT2y3MXwv7VpoHRZ6ormPitn2mn21jnzmzWb6epN │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0xdb21c1222f9c3169c7190b99725b2db4c2ab2005ad6917d9bba4ba3206097360 │ +│ │ Version: 74743781 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743781 │ +│ │ Digest: 5FuJjpCbPfVbBnpVeSmhyTqGgdF4xBbhzH3QgXCoeeSL │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2401600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3746952 MIST │ +│ Non-refundable Storage Fee: 37848 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3yAKS1GQamxE1iAXDZozQeBev4rwa6gys5JWZxEeyUPF │ +│ 8rear4BXR2KZsHHfsSdpS3pmUizeCd4ia4MtrCVmDv2L │ +│ Hm1msNQ5ATyU1rf78EXyuytigcwSsDMhLtGSRniLRbNV │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 74743781 │ +│ │ Digest: 5FuJjpCbPfVbBnpVeSmhyTqGgdF4xBbhzH3QgXCoeeSL │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Shared( 74743778 ) │ +│ │ ObjectType: 0xe045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff::move_swap::Pool │ +│ │ Version: 74743781 │ +│ │ Digest: Hyea2VNpGNpLQxovhhbPjmyasHU5frDa34yWP7wdWPAs │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: 345352 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c::tmm_coin::TMM_COIN │ +│ │ Amount: -10000000 │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task5/move_swap/deposit_b.log b/mover/hellogmegg/code/task5/move_swap/deposit_b.log new file mode 100644 index 000000000..9669e3c74 --- /dev/null +++ b/mover/hellogmegg/code/task5/move_swap/deposit_b.log @@ -0,0 +1,128 @@ +Transaction Digest: HaUSzMFi8juNU1oDcHmRJdtVftwfGoPtUddYXgR3UgcA +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 74743781 │ +│ │ Digest: 5FuJjpCbPfVbBnpVeSmhyTqGgdF4xBbhzH3QgXCoeeSL │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ │ +│ │ 1 Imm/Owned Object ID: 0x405d69bd511a58d05f1f50a9dc260a08fe36f1ea7300589ff5927a92a01392a2 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: deposit_b │ │ +│ │ │ Module: move_swap │ │ +│ │ │ Package: 0x0e045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ STgm1GHb3XDI7lDBdW3dzHajoIMSAU1KMAMH+Ya3/vQ2LCz6HZzqhsXFzvZ3b9Iz/6kCvMU+5OI6yjNT8O1ECA== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: HaUSzMFi8juNU1oDcHmRJdtVftwfGoPtUddYXgR3UgcA │ +│ Status: Success │ +│ Executed Epoch: 425 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743782 │ +│ │ Digest: Ayaqr9HJc9xUK4eKd2TwunJDXZNJuLA3nVNdH5PZjmKW │ +│ └── │ +│ ┌── │ +│ │ ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Owner: Shared( 74743778 ) │ +│ │ Version: 74743782 │ +│ │ Digest: 5sSKKWFPVNycg7CaX3im4AxWeZ3dDSeQNpjrhGcPyKsq │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Version: 74743781 │ +│ │ Digest: Hyea2VNpGNpLQxovhhbPjmyasHU5frDa34yWP7wdWPAs │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0x405d69bd511a58d05f1f50a9dc260a08fe36f1ea7300589ff5927a92a01392a2 │ +│ │ Version: 74743782 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743782 │ +│ │ Digest: Ayaqr9HJc9xUK4eKd2TwunJDXZNJuLA3nVNdH5PZjmKW │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2401600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3777048 MIST │ +│ Non-refundable Storage Fee: 38152 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 8rear4BXR2KZsHHfsSdpS3pmUizeCd4ia4MtrCVmDv2L │ +│ Bqqi3rVxRcFGxGebxow48A4sr9ueRtLfq7sXBPiRHobG │ +│ Hm1msNQ5ATyU1rf78EXyuytigcwSsDMhLtGSRniLRbNV │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 74743782 │ +│ │ Digest: Ayaqr9HJc9xUK4eKd2TwunJDXZNJuLA3nVNdH5PZjmKW │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Shared( 74743778 ) │ +│ │ ObjectType: 0xe045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff::move_swap::Pool │ +│ │ Version: 74743782 │ +│ │ Digest: 5sSKKWFPVNycg7CaX3im4AxWeZ3dDSeQNpjrhGcPyKsq │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: 375448 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET │ +│ │ Amount: -50000000 │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task5/move_swap/mint_tmm_coin.log b/mover/hellogmegg/code/task5/move_swap/mint_tmm_coin.log new file mode 100644 index 000000000..61195209e --- /dev/null +++ b/mover/hellogmegg/code/task5/move_swap/mint_tmm_coin.log @@ -0,0 +1,135 @@ +Transaction Digest: 3yAKS1GQamxE1iAXDZozQeBev4rwa6gys5JWZxEeyUPF +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 74743778 │ +│ │ Digest: DxLMNFBrTept46jEczDUegaQpFDVPWG5ATpVgnMozn64 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0xfeb082a53c14f0dfb44c6eaa54c6c852e805dd823bffdbddc7fe84bc0b0e9983 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "10000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: tmm_coin │ │ +│ │ │ Package: 0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ ET1rA+E3lmyQrVj4gE7aTLz8n24FA+wMbPjRZf262gA+AKyCBuYOpCDopauyyD5plyiVTQ8xHT4gcJnp2WEgDg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 3yAKS1GQamxE1iAXDZozQeBev4rwa6gys5JWZxEeyUPF │ +│ Status: Success │ +│ Executed Epoch: 425 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xdb21c1222f9c3169c7190b99725b2db4c2ab2005ad6917d9bba4ba3206097360 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743779 │ +│ │ Digest: Am6zaFStbGyFe4vJ2FMidoSp4SWt82aLRAjbHUaeurqx │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743779 │ +│ │ Digest: G9L8eoik7fyZbACbRzTqhKmqTEBNiorVLzhqmry7YSn6 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xfeb082a53c14f0dfb44c6eaa54c6c852e805dd823bffdbddc7fe84bc0b0e9983 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743779 │ +│ │ Digest: 8cQH2DSEmPaGW54wDhsvuGv4Muwf6v3jsoyQeQPUuPBi │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743779 │ +│ │ Digest: G9L8eoik7fyZbACbRzTqhKmqTEBNiorVLzhqmry7YSn6 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4134400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2723688 MIST │ +│ Non-refundable Storage Fee: 27512 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 8rear4BXR2KZsHHfsSdpS3pmUizeCd4ia4MtrCVmDv2L │ +│ EkpyZ2WRZKYiqa422hYCeEEN1JZqLitSbB7k6sTvNWHA │ +│ EumHPvErMp9fBQZakpg3HTWCmgHkeEix8WhPgNobi8yU │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xdb21c1222f9c3169c7190b99725b2db4c2ab2005ad6917d9bba4ba3206097360 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c::tmm_coin::TMM_COIN> │ +│ │ Version: 74743779 │ +│ │ Digest: Am6zaFStbGyFe4vJ2FMidoSp4SWt82aLRAjbHUaeurqx │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 74743779 │ +│ │ Digest: G9L8eoik7fyZbACbRzTqhKmqTEBNiorVLzhqmry7YSn6 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xfeb082a53c14f0dfb44c6eaa54c6c852e805dd823bffdbddc7fe84bc0b0e9983 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c::tmm_coin::TMM_COIN> │ +│ │ Version: 74743779 │ +│ │ Digest: 8cQH2DSEmPaGW54wDhsvuGv4Muwf6v3jsoyQeQPUuPBi │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2410712 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c::tmm_coin::TMM_COIN │ +│ │ Amount: 10000000 │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task5/move_swap/mint_tmm_faucet.log b/mover/hellogmegg/code/task5/move_swap/mint_tmm_faucet.log new file mode 100644 index 000000000..5463000d7 --- /dev/null +++ b/mover/hellogmegg/code/task5/move_swap/mint_tmm_faucet.log @@ -0,0 +1,141 @@ +Transaction Digest: Hm1msNQ5ATyU1rf78EXyuytigcwSsDMhLtGSRniLRbNV +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 74743779 │ +│ │ Digest: G9L8eoik7fyZbACbRzTqhKmqTEBNiorVLzhqmry7YSn6 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0xf541ec3bfa5eb4c4cb5f259ec2dbe98cc65add5f0f82a6bd6775ceb777242673 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "50000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: tmm_faucet │ │ +│ │ │ Package: 0x0cd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ vyx7AjVMqGNe71bb9gZHt75nO2VMd6B/TrYKJtJ2Klue1CXz9/oCkqHgmjZqaFZ8f7fbWdd9PR3P8HHZvIj+CQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: Hm1msNQ5ATyU1rf78EXyuytigcwSsDMhLtGSRniLRbNV │ +│ Status: Success │ +│ Executed Epoch: 425 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x405d69bd511a58d05f1f50a9dc260a08fe36f1ea7300589ff5927a92a01392a2 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743780 │ +│ │ Digest: AdTVCRHosQK6KjBzJ1kEtUgYMgyJfJoM8hE8wbSSsFoa │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743780 │ +│ │ Digest: GzwrptmA6XPfoSYXp26suw2SsGV2WWGgiBLjdrEzk2h5 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf541ec3bfa5eb4c4cb5f259ec2dbe98cc65add5f0f82a6bd6775ceb777242673 │ +│ │ Owner: Shared( 609361 ) │ +│ │ Version: 74743780 │ +│ │ Digest: 7oEbBL6BuP4AzzjSHiab93HAva5MBcxgUX3uzmUY1cz5 │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xf541ec3bfa5eb4c4cb5f259ec2dbe98cc65add5f0f82a6bd6775ceb777242673 │ +│ │ Version: 855037 │ +│ │ Digest: FSn93FgZRD7sthXL5gfUTByZQGq4UKwsHA1JY1akNGFf │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743780 │ +│ │ Digest: GzwrptmA6XPfoSYXp26suw2SsGV2WWGgiBLjdrEzk2h5 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4195200 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2753784 MIST │ +│ Non-refundable Storage Fee: 27816 MIST │ +│ │ +│ Transaction Dependencies: │ +│ YMB7uiDhYvxjyrAxLeAYWurBBTUVP8xavcHtNvYKvac │ +│ 3yAKS1GQamxE1iAXDZozQeBev4rwa6gys5JWZxEeyUPF │ +│ 4dhK26UmfFb6Q7cHjhwLEYGhW4napZK3kKp4DNwgD3JA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x405d69bd511a58d05f1f50a9dc260a08fe36f1ea7300589ff5927a92a01392a2 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET> │ +│ │ Version: 74743780 │ +│ │ Digest: AdTVCRHosQK6KjBzJ1kEtUgYMgyJfJoM8hE8wbSSsFoa │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 74743780 │ +│ │ Digest: GzwrptmA6XPfoSYXp26suw2SsGV2WWGgiBLjdrEzk2h5 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xf541ec3bfa5eb4c4cb5f259ec2dbe98cc65add5f0f82a6bd6775ceb777242673 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Shared( 609361 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET> │ +│ │ Version: 74743780 │ +│ │ Digest: 7oEbBL6BuP4AzzjSHiab93HAva5MBcxgUX3uzmUY1cz5 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2441416 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET │ +│ │ Amount: 50000000 │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task5/move_swap/publish.log b/mover/hellogmegg/code/task5/move_swap/publish.log new file mode 100644 index 000000000..71c99d6b2 --- /dev/null +++ b/mover/hellogmegg/code/task5/move_swap/publish.log @@ -0,0 +1,198 @@ +[warn] Client/Server api version mismatch, client api version : 1.29.0, server api version : 1.28.3 +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +Warning: unknown field name found. Expected one of [name, authors, license, edition, flavor, published-at, version], but found 'publish-at' +Warning: unknown field name found. Expected one of [name, authors, license, edition, flavor, published-at, version], but found 'publish-at' +Warning: unknown field name found. Expected one of [name, authors, license, edition, flavor, published-at, version], but found 'publish-at' +Warning: unknown field name found. Expected one of [name, authors, license, edition, flavor, published-at, version], but found 'publish-at' +INCLUDING DEPENDENCY faucet_coin +INCLUDING DEPENDENCY my_coin +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING move_swap +warning[W09001]: unused alias + ┌─ /root/letsmove/mover/hellogmegg/code/task5/move_swap/sources/move_swap.move:6:27 + │ +6 │ use sui::coin::{Coin, balance}; + │ ^^^^^^^ Unused 'use' of alias 'balance'. Consider removing it + │ + = This warning can be suppressed with '#[allow(unused_use)]' applied to the 'module' or module member ('const', 'fun', or 'struct') + +warning[W09001]: unused alias + ┌─ /root/letsmove/mover/hellogmegg/code/task5/move_swap/sources/move_swap.move:7:19 + │ +7 │ use sui::sui::transfer; + │ ^^^^^^^^ Unused 'use' of alias 'transfer'. Consider removing it + │ + = This warning can be suppressed with '#[allow(unused_use)]' applied to the 'module' or module member ('const', 'fun', or 'struct') + +warning[W09011]: unused constant + ┌─ /root/letsmove/mover/hellogmegg/code/task5/move_swap/sources/move_swap.move:14:11 + │ +14 │ const SWAP_A_2_B: u64 = 2; + │ ^^^^^^^^^^ The constant 'SWAP_A_2_B' is never used. Consider removing it. + │ + = This warning can be suppressed with '#[allow(unused_const)]' applied to the 'module' or module member ('const', 'fun', or 'struct') + +Successfully verified dependencies on-chain against source. +Transaction Digest: 8rear4BXR2KZsHHfsSdpS3pmUizeCd4ia4MtrCVmDv2L +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 19274800 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 74743777 │ +│ │ Digest: Ffs62i18d5XFmnXvvEj3SqRWroXwN7vRBgsduLnanXwN │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ │ 0x0cd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7 │ │ +│ │ │ 0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 5aqGrCNWAdzj/oE3gDCBYK2EjYA5/zzPDqn5d0zCjx1hxGVoL95Rf8ln1DGRiU0ZZp15qKOnXQ7Hp3RjzUOgAQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 8rear4BXR2KZsHHfsSdpS3pmUizeCd4ia4MtrCVmDv2L │ +│ Status: Success │ +│ Executed Epoch: 425 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x07d683a85a7b55253e2829eac3d2e632ad7c4e0b71a0c7b08d4a6a9793f746ed │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743778 │ +│ │ Digest: 5wHUD5in1wZYDtFiSPxZa6SxHXziGYTKmgCCKqnuTN7M │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0e045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 5ZRqLNzZbiaEinoG1SdmepxPVQib7mjSoDbg6L28thf4 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x69ae38993252cfd99ca8e07ada0b9ce0b403de0d047789e96db94be61057a860 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743778 │ +│ │ Digest: 5YqQfF8vsqxr1wEyKKN4bt6nfdm2pTckndL51Ym5JiDV │ +│ └── │ +│ ┌── │ +│ │ ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Owner: Shared( 74743778 ) │ +│ │ Version: 74743778 │ +│ │ Digest: 9HWgAT2y3MXwv7VpoHRZ6ormPitn2mn21jnzmzWb6epN │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743778 │ +│ │ Digest: DxLMNFBrTept46jEczDUegaQpFDVPWG5ATpVgnMozn64 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743778 │ +│ │ Digest: DxLMNFBrTept46jEczDUegaQpFDVPWG5ATpVgnMozn64 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 17274800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 4dhK26UmfFb6Q7cHjhwLEYGhW4napZK3kKp4DNwgD3JA │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ CRsLXRo4Zj4RQbVwsJxewoLesfmoEiQqvqwLKt6egM2w │ +│ EkpyZ2WRZKYiqa422hYCeEEN1JZqLitSbB7k6sTvNWHA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x07d683a85a7b55253e2829eac3d2e632ad7c4e0b71a0c7b08d4a6a9793f746ed │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0xe045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff::move_swap::AdminCap │ +│ │ Version: 74743778 │ +│ │ Digest: 5wHUD5in1wZYDtFiSPxZa6SxHXziGYTKmgCCKqnuTN7M │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x69ae38993252cfd99ca8e07ada0b9ce0b403de0d047789e96db94be61057a860 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 74743778 │ +│ │ Digest: 5YqQfF8vsqxr1wEyKKN4bt6nfdm2pTckndL51Ym5JiDV │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Shared( 74743778 ) │ +│ │ ObjectType: 0xe045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff::move_swap::Pool │ +│ │ Version: 74743778 │ +│ │ Digest: 9HWgAT2y3MXwv7VpoHRZ6ormPitn2mn21jnzmzWb6epN │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 74743778 │ +│ │ Digest: DxLMNFBrTept46jEczDUegaQpFDVPWG5ATpVgnMozn64 │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x0e045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff │ +│ │ Version: 1 │ +│ │ Digest: 5ZRqLNzZbiaEinoG1SdmepxPVQib7mjSoDbg6L28thf4 │ +│ │ Modules: move_swap │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -17296680 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task5/move_swap/sources/move_swap.move b/mover/hellogmegg/code/task5/move_swap/sources/move_swap.move new file mode 100644 index 000000000..3c5ddfba7 --- /dev/null +++ b/mover/hellogmegg/code/task5/move_swap/sources/move_swap.move @@ -0,0 +1,82 @@ +/// Module: move_swap +module move_swap::move_swap { + use sui::balance; + use sui::balance::Balance; + use sui::coin; + use sui::coin::{Coin, balance}; + use sui::sui::transfer; + use sui::transfer::{public_transfer, share_object}; + use sui::tx_context::sender; + use my_coin::tmm_coin::TMM_COIN; + use faucet_coin::tmm_faucet::TMM_FAUCET; + + // 1a swap 2b + const SWAP_A_2_B: u64 = 2; + + public struct AdminCap has key { + id: UID + } + + public struct Pool has key { + id: UID, + balanceA: Balance, + balanceB: Balance, + } + + fun init(ctx: &mut TxContext) { + let pool = Pool{ + id: object::new(ctx), + balanceA: balance::zero(), + balanceB: balance::zero() + }; + + share_object(pool); + + let adminCap = AdminCap { + id: object::new(ctx) + }; + + transfer::transfer(adminCap, sender(ctx)); + } + + public entry fun deposit_a(pool: &mut Pool, coin: Coin, _: &mut TxContext) { + balance::join(&mut pool.balanceA, coin::into_balance(coin)); + } + + public entry fun deposit_b(pool: &mut Pool, coin: Coin, _: &mut TxContext) { + balance::join(&mut pool.balanceB, coin::into_balance(coin)); + } + + public entry fun withdraw_a(_: &AdminCap, pool: &mut Pool, amount: u64, ctx: &mut TxContext) { + let withdrawBalance = balance::split(&mut pool.balanceA, amount); + let coin = coin::from_balance(withdrawBalance, ctx); + public_transfer(coin, sender(ctx)); + } + public entry fun withdraw_b(_: &AdminCap, pool: &mut Pool, amount: u64, ctx: &mut TxContext) { + let withdrawBalance = balance::split(&mut pool.balanceB, amount); + let coin = coin::from_balance(withdrawBalance, ctx); + public_transfer(coin, sender(ctx)); + } + + public entry fun swap_a_2_b(pool: &mut Pool, coin: Coin, ctx: &mut TxContext) { + let amtA = coin::value(&coin); + let amtB = amtA * 20000 / 10000; + + balance::join(&mut pool.balanceA, coin::into_balance(coin)); + + let balanceB = balance::split(&mut pool.balanceB, amtB); + let coinB = coin::from_balance(balanceB, ctx); + public_transfer(coinB, sender(ctx)); + } + + public entry fun swap_b_2_a(pool: &mut Pool, coin: Coin, ctx: &mut TxContext) { + let amtB = coin::value(&coin); + let amtA = amtB * 10000 / 20000; + + balance::join(&mut pool.balanceB, coin::into_balance(coin)); + + let balanceA = balance::split(&mut pool.balanceA, amtA); + let coinA = coin::from_balance(balanceA, ctx); + public_transfer(coinA, sender(ctx)); + } +} diff --git a/mover/hellogmegg/code/task5/move_swap/swap_a_b.log b/mover/hellogmegg/code/task5/move_swap/swap_a_b.log new file mode 100644 index 000000000..6ce5eb041 --- /dev/null +++ b/mover/hellogmegg/code/task5/move_swap/swap_a_b.log @@ -0,0 +1,150 @@ +Transaction Digest: 4h42SJWfoMFjdL2u61TkRmyd8Hd1q6yAvg2PXtDZKHwy +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 74743785 │ +│ │ Digest: 4n3h98Q94WUmR2zaK48GMXhz9WxwvLVgKMENxC7BPpbi │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ │ +│ │ 1 Imm/Owned Object ID: 0x13b541bd99ae3919a2c0dd7448f9123e4ac15e50f39fe7a38069727ae6c28a41 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: swap_a_2_b │ │ +│ │ │ Module: move_swap │ │ +│ │ │ Package: 0x0e045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 4Aud6HBY5tdOW1Yy4hLoJZRchz5NoIX9DNblFIM9cQMoI+qONd2ucmNU2euZzzTjLlffkPKYFqI6Q8Tt+PuHAA== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 4h42SJWfoMFjdL2u61TkRmyd8Hd1q6yAvg2PXtDZKHwy │ +│ Status: Success │ +│ Executed Epoch: 425 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xb883ef1f4d7ff7ee0b00857951be60e4eaef4d3881eb62d8fcd0955ccaf2a91a │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743786 │ +│ │ Digest: DN8yiJk6FkXni5aTrSSsF3B6janFRaNjNTQSY2YVunWU │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743786 │ +│ │ Digest: DjbV8hTxK9BsLmKwKGLNXD3UW5yaos2TurZg5akyQUGd │ +│ └── │ +│ ┌── │ +│ │ ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Owner: Shared( 74743778 ) │ +│ │ Version: 74743786 │ +│ │ Digest: J9JFCVMtTzbB1evVbEN657tMFKemVkHM5eQBLwkiXF64 │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Version: 74743785 │ +│ │ Digest: ES5GXZ6NXTZ1hh98imyPh56sAB3J5oFibfyhmAQ5Juk8 │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0x13b541bd99ae3919a2c0dd7448f9123e4ac15e50f39fe7a38069727ae6c28a41 │ +│ │ Version: 74743786 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743786 │ +│ │ Digest: DjbV8hTxK9BsLmKwKGLNXD3UW5yaos2TurZg5akyQUGd │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3815200 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3746952 MIST │ +│ Non-refundable Storage Fee: 37848 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 8rear4BXR2KZsHHfsSdpS3pmUizeCd4ia4MtrCVmDv2L │ +│ DR46DCkXNc1KkJ4cRybiANj1noz6GLeboYVdwyRPFfZU │ +│ HJuwNQd5bXNdD6XTtyyRARtBGdrLw5MroZ2wMKjsFefJ │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xb883ef1f4d7ff7ee0b00857951be60e4eaef4d3881eb62d8fcd0955ccaf2a91a │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET> │ +│ │ Version: 74743786 │ +│ │ Digest: DN8yiJk6FkXni5aTrSSsF3B6janFRaNjNTQSY2YVunWU │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 74743786 │ +│ │ Digest: DjbV8hTxK9BsLmKwKGLNXD3UW5yaos2TurZg5akyQUGd │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Shared( 74743778 ) │ +│ │ ObjectType: 0xe045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff::move_swap::Pool │ +│ │ Version: 74743786 │ +│ │ Digest: J9JFCVMtTzbB1evVbEN657tMFKemVkHM5eQBLwkiXF64 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1068248 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET │ +│ │ Amount: 2000000 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c::tmm_coin::TMM_COIN │ +│ │ Amount: -1000000 │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task5/move_swap/swap_b_a.log b/mover/hellogmegg/code/task5/move_swap/swap_b_a.log new file mode 100644 index 000000000..c2372d5c1 --- /dev/null +++ b/mover/hellogmegg/code/task5/move_swap/swap_b_a.log @@ -0,0 +1,150 @@ +Transaction Digest: 14fbFY59N9YSX7nLJYje5dDVBY4scC8VK6Bf1h8pRaqv +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 74743786 │ +│ │ Digest: DjbV8hTxK9BsLmKwKGLNXD3UW5yaos2TurZg5akyQUGd │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ │ +│ │ 1 Imm/Owned Object ID: 0x1cdcdd3092c903db582b620e5eb16e404519f413441b2698aa0496f9ba4395a7 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: swap_b_2_a │ │ +│ │ │ Module: move_swap │ │ +│ │ │ Package: 0x0e045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ vZ0e+yOP+R14BG06zyc8bDe6+FCMCoJNGSjTn4QoTQAy+2zJ+ZgQ/ddObOwRyMsOYLdnvR1tlXHMamENI54cCQ== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 14fbFY59N9YSX7nLJYje5dDVBY4scC8VK6Bf1h8pRaqv │ +│ Status: Success │ +│ Executed Epoch: 425 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x71513b3f9a3e92dbc250dfd094c4d3d8d9e637247ef9c591d4eed1f04866115b │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743787 │ +│ │ Digest: AWGpK1kCoTALfUfVCFyuC2dooXE6R2FNo9iYrgUVLvQh │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743787 │ +│ │ Digest: 39hb6t9r4cMTVzdNkei7nNNJKFWz8chSp7LXcAqxNACc │ +│ └── │ +│ ┌── │ +│ │ ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Owner: Shared( 74743778 ) │ +│ │ Version: 74743787 │ +│ │ Digest: 2YZEJWMLVP1gwCR6FHMrccZ1Q336pzeTXaZWWmhSuT1h │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Version: 74743786 │ +│ │ Digest: J9JFCVMtTzbB1evVbEN657tMFKemVkHM5eQBLwkiXF64 │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0x1cdcdd3092c903db582b620e5eb16e404519f413441b2698aa0496f9ba4395a7 │ +│ │ Version: 74743787 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743787 │ +│ │ Digest: 39hb6t9r4cMTVzdNkei7nNNJKFWz8chSp7LXcAqxNACc │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3784800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3777048 MIST │ +│ Non-refundable Storage Fee: 38152 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 4h42SJWfoMFjdL2u61TkRmyd8Hd1q6yAvg2PXtDZKHwy │ +│ 8rear4BXR2KZsHHfsSdpS3pmUizeCd4ia4MtrCVmDv2L │ +│ DR46DCkXNc1KkJ4cRybiANj1noz6GLeboYVdwyRPFfZU │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x71513b3f9a3e92dbc250dfd094c4d3d8d9e637247ef9c591d4eed1f04866115b │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c::tmm_coin::TMM_COIN> │ +│ │ Version: 74743787 │ +│ │ Digest: AWGpK1kCoTALfUfVCFyuC2dooXE6R2FNo9iYrgUVLvQh │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 74743787 │ +│ │ Digest: 39hb6t9r4cMTVzdNkei7nNNJKFWz8chSp7LXcAqxNACc │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Shared( 74743778 ) │ +│ │ ObjectType: 0xe045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff::move_swap::Pool │ +│ │ Version: 74743787 │ +│ │ Digest: 2YZEJWMLVP1gwCR6FHMrccZ1Q336pzeTXaZWWmhSuT1h │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1007752 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET │ +│ │ Amount: -5000000 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c::tmm_coin::TMM_COIN │ +│ │ Amount: 2500000 │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task5/move_swap/tests/move_swap_tests.move b/mover/hellogmegg/code/task5/move_swap/tests/move_swap_tests.move new file mode 100644 index 000000000..0afc2856e --- /dev/null +++ b/mover/hellogmegg/code/task5/move_swap/tests/move_swap_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module move_swap::move_swap_tests { + // uncomment this line to import the module + // use move_swap::move_swap; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_move_swap() { + // pass + } + + #[test, expected_failure(abort_code = ::move_swap::move_swap_tests::ENotImplemented)] + fun test_move_swap_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/hellogmegg/code/task5/move_swap/withdraw_tmm_coin.log b/mover/hellogmegg/code/task5/move_swap/withdraw_tmm_coin.log new file mode 100644 index 000000000..902f35736 --- /dev/null +++ b/mover/hellogmegg/code/task5/move_swap/withdraw_tmm_coin.log @@ -0,0 +1,155 @@ +Transaction Digest: HJuwNQd5bXNdD6XTtyyRARtBGdrLw5MroZ2wMKjsFefJ +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 74743783 │ +│ │ Digest: F52PobJey65UGAHnv4ZkoqQrc43dxvsjjUBfmvjzFj5F │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x07d683a85a7b55253e2829eac3d2e632ad7c4e0b71a0c7b08d4a6a9793f746ed │ │ +│ │ 1 Shared Object ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ │ +│ │ 2 Pure Arg: Type: u64, Value: "1000000" │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: withdraw_a │ │ +│ │ │ Module: move_swap │ │ +│ │ │ Package: 0x0e045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ CV13bm9yGLng88m4SPnfmpocyjDWBLowWFeDWXK20HPkTge7XmclJm15x117kVzbuB0yKmw+iLTzSncFKwtpBQ== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: HJuwNQd5bXNdD6XTtyyRARtBGdrLw5MroZ2wMKjsFefJ │ +│ Status: Success │ +│ Executed Epoch: 425 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x13b541bd99ae3919a2c0dd7448f9123e4ac15e50f39fe7a38069727ae6c28a41 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743784 │ +│ │ Digest: AWtitNnrhrbN5NWVPpc6B6cFSUp6p4KfeLFquZtVw7W7 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x07d683a85a7b55253e2829eac3d2e632ad7c4e0b71a0c7b08d4a6a9793f746ed │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743784 │ +│ │ Digest: BR26j5U9CGHWjpNXwjXM44juhLVFE5185Cr5ow1mmikc │ +│ └── │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743784 │ +│ │ Digest: 2eL6GcJhfmYU4jfFvj1hKNmGnS3cxBMUDgMEoZMB3AcB │ +│ └── │ +│ ┌── │ +│ │ ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Owner: Shared( 74743778 ) │ +│ │ Version: 74743784 │ +│ │ Digest: 8US5SsEp1s5wYaE6BL1J5sdD63HZnTCo6RffXd2suHRw │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Version: 74743782 │ +│ │ Digest: 5sSKKWFPVNycg7CaX3im4AxWeZ3dDSeQNpjrhGcPyKsq │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743784 │ +│ │ Digest: 2eL6GcJhfmYU4jfFvj1hKNmGnS3cxBMUDgMEoZMB3AcB │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 5107200 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3686760 MIST │ +│ Non-refundable Storage Fee: 37240 MIST │ +│ │ +│ Transaction Dependencies: │ +│ j1pW2cmM3jAWtvmpXm5DEk8PVx4UXTUbSKL9n6wvTnf │ +│ 8rear4BXR2KZsHHfsSdpS3pmUizeCd4ia4MtrCVmDv2L │ +│ HaUSzMFi8juNU1oDcHmRJdtVftwfGoPtUddYXgR3UgcA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x13b541bd99ae3919a2c0dd7448f9123e4ac15e50f39fe7a38069727ae6c28a41 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c::tmm_coin::TMM_COIN> │ +│ │ Version: 74743784 │ +│ │ Digest: AWtitNnrhrbN5NWVPpc6B6cFSUp6p4KfeLFquZtVw7W7 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x07d683a85a7b55253e2829eac3d2e632ad7c4e0b71a0c7b08d4a6a9793f746ed │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0xe045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff::move_swap::AdminCap │ +│ │ Version: 74743784 │ +│ │ Digest: BR26j5U9CGHWjpNXwjXM44juhLVFE5185Cr5ow1mmikc │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 74743784 │ +│ │ Digest: 2eL6GcJhfmYU4jfFvj1hKNmGnS3cxBMUDgMEoZMB3AcB │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Shared( 74743778 ) │ +│ │ ObjectType: 0xe045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff::move_swap::Pool │ +│ │ Version: 74743784 │ +│ │ Digest: 8US5SsEp1s5wYaE6BL1J5sdD63HZnTCo6RffXd2suHRw │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2420440 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c::tmm_coin::TMM_COIN │ +│ │ Amount: 1000000 │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task5/move_swap/withdraw_tmm_faucet.log b/mover/hellogmegg/code/task5/move_swap/withdraw_tmm_faucet.log new file mode 100644 index 000000000..c65700223 --- /dev/null +++ b/mover/hellogmegg/code/task5/move_swap/withdraw_tmm_faucet.log @@ -0,0 +1,154 @@ +Transaction Digest: DR46DCkXNc1KkJ4cRybiANj1noz6GLeboYVdwyRPFfZU +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Owner: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Version: 74743784 │ +│ │ Digest: 2eL6GcJhfmYU4jfFvj1hKNmGnS3cxBMUDgMEoZMB3AcB │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x07d683a85a7b55253e2829eac3d2e632ad7c4e0b71a0c7b08d4a6a9793f746ed │ │ +│ │ 1 Shared Object ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ │ +│ │ 2 Pure Arg: Type: u64, Value: "5000000" │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: withdraw_b │ │ +│ │ │ Module: move_swap │ │ +│ │ │ Package: 0x0e045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ CAd/wB87KnI0eHNgtD7poVaBG7AhqrxUBlP6OFtno+ljaHLz/1pDavwmJySi/3082eXNrENJed0UEJVul7z7DQ== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: DR46DCkXNc1KkJ4cRybiANj1noz6GLeboYVdwyRPFfZU │ +│ Status: Success │ +│ Executed Epoch: 425 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x1cdcdd3092c903db582b620e5eb16e404519f413441b2698aa0496f9ba4395a7 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743785 │ +│ │ Digest: DSdoMXNfUoGBup19CTC7vAbmo8BndDUxkTz7EwodE5XJ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x07d683a85a7b55253e2829eac3d2e632ad7c4e0b71a0c7b08d4a6a9793f746ed │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743785 │ +│ │ Digest: CzpLx9KRVJwcWYffMfFwkDYzDz9PjJckHGuv3T4uqq9 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743785 │ +│ │ Digest: 4n3h98Q94WUmR2zaK48GMXhz9WxwvLVgKMENxC7BPpbi │ +│ └── │ +│ ┌── │ +│ │ ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Owner: Shared( 74743778 ) │ +│ │ Version: 74743785 │ +│ │ Digest: ES5GXZ6NXTZ1hh98imyPh56sAB3J5oFibfyhmAQ5Juk8 │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Version: 74743784 │ +│ │ Digest: 8US5SsEp1s5wYaE6BL1J5sdD63HZnTCo6RffXd2suHRw │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ Version: 74743785 │ +│ │ Digest: 4n3h98Q94WUmR2zaK48GMXhz9WxwvLVgKMENxC7BPpbi │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 5137600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3686760 MIST │ +│ Non-refundable Storage Fee: 37240 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 8rear4BXR2KZsHHfsSdpS3pmUizeCd4ia4MtrCVmDv2L │ +│ HJuwNQd5bXNdD6XTtyyRARtBGdrLw5MroZ2wMKjsFefJ │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x1cdcdd3092c903db582b620e5eb16e404519f413441b2698aa0496f9ba4395a7 │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET> │ +│ │ Version: 74743785 │ +│ │ Digest: DSdoMXNfUoGBup19CTC7vAbmo8BndDUxkTz7EwodE5XJ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x07d683a85a7b55253e2829eac3d2e632ad7c4e0b71a0c7b08d4a6a9793f746ed │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0xe045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff::move_swap::AdminCap │ +│ │ Version: 74743785 │ +│ │ Digest: CzpLx9KRVJwcWYffMfFwkDYzDz9PjJckHGuv3T4uqq9 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x37d2bb01b38f3766a47fca0bbb063aa652ebf3552fef1cf99c6862fe6f87d2ae │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 74743785 │ +│ │ Digest: 4n3h98Q94WUmR2zaK48GMXhz9WxwvLVgKMENxC7BPpbi │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xafe973d9033cc69306aae6eb809f257a7f690e55b0ead32df1cb795d77bdac2a │ +│ │ Sender: 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 │ +│ │ Owner: Shared( 74743778 ) │ +│ │ ObjectType: 0xe045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff::move_swap::Pool │ +│ │ Version: 74743785 │ +│ │ Digest: ES5GXZ6NXTZ1hh98imyPh56sAB3J5oFibfyhmAQ5Juk8 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2450840 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x25da60a72fd67e693958534887564c488fc71aae3b75f3d06e9fd02a37c952f1 ) │ +│ │ CoinType: 0xcd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7::tmm_faucet::TMM_FAUCET │ +│ │ Amount: 5000000 │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hellogmegg/code/task6/package-lock.json b/mover/hellogmegg/code/task6/package-lock.json new file mode 100644 index 000000000..b4796b97f --- /dev/null +++ b/mover/hellogmegg/code/task6/package-lock.json @@ -0,0 +1,2742 @@ +{ + "name": "sdk.js", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "sdk.js", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "navi-sdk": "^1.1.23" + } + }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, + "node_modules/@0no-co/graphqlsp": { + "version": "1.12.10", + "resolved": "https://registry.npmjs.org/@0no-co/graphqlsp/-/graphqlsp-1.12.10.tgz", + "integrity": "sha512-PrkGVc+XhSjU+7ALSjd4ANlyRZkKOdmOGqj7bqPcKI6C+opuN5MeXSBWKE9383EW27/+MkY+/U1LAaCoZKtkfQ==", + "dependencies": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@digitak/grubber": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@digitak/grubber/-/grubber-3.1.4.tgz", + "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@gql.tada/cli-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@gql.tada/cli-utils/-/cli-utils-1.4.0.tgz", + "integrity": "sha512-8CeKMsUHQSj2MVTJqb6LRfanfhfDrPyfmiYuLY75/aKnRBk70Oe3m7YuBc6/QzatLjj6egxPezNdt25MTluSpg==", + "dependencies": { + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/internal": "1.0.2", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + }, + "peerDependencies": { + "@0no-co/graphqlsp": "^1.12.9", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@gql.tada/internal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@gql.tada/internal/-/internal-1.0.2.tgz", + "integrity": "sha512-5PH+l47yRpz97YCuKiBdIyLRRCM9fJ56J7yEnwMny1RIR8U4CV39eT0VokvHUjFY6x2Kxh4fH4KeJYezssiOXw==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@scure/base": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.7.tgz", + "integrity": "sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "dependencies": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.3.4.tgz", + "integrity": "sha512-wXBhY11qG6pCDAqDnbBRFIDSIwbqkWI7no+lj5+L7IlA7HRIjRP7YQLGzT0LF4lS6eHkMSsclXqy9DwYJasZTQ==", + "dependencies": { + "@volar/source-map": "2.3.4" + } + }, + "node_modules/@volar/source-map": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.3.4.tgz", + "integrity": "sha512-C+t63nwcblqLIVTYXaVi/+gC8NukDaDIQI72J3R7aXGvtgaVB16c+J8Iz7/VfOy7kjYv7lf5GhBny6ACw9fTGQ==" + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.31.tgz", + "integrity": "sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.31", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.31.tgz", + "integrity": "sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==", + "dependencies": { + "@vue/compiler-core": "3.4.31", + "@vue/shared": "3.4.31" + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.22.tgz", + "integrity": "sha512-dNTAAtEOuMiz7N1s5tKpypnVVCtawxVSF5BukD0ELcYSw+DSbrSlYYSw8GuwvurodCeYFSHsmslE+c2sYDNoiA==", + "dependencies": { + "@volar/language-core": "~2.3.1", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.31.tgz", + "integrity": "sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==" + }, + "node_modules/acorn": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/code-red/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "peer": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==" + }, + "node_modules/deep-eql": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/esrun": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/esrun/-/esrun-3.2.26.tgz", + "integrity": "sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==", + "dependencies": { + "@digitak/grubber": "^3.1.4", + "chokidar": "^3.5.1", + "esbuild": "^0.17.4" + }, + "bin": { + "esrun": "bin.js" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "engines": { + "node": "*" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gql.tada": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/gql.tada/-/gql.tada-1.8.0.tgz", + "integrity": "sha512-BsdmtWPmCb3oorPnU6DidBNsIDTjbvRc7P5LUZ43ISMz9dNsl2vFvT7i1AEsbK2xV5AtdjgywPKAFHJd4dQr6Q==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5", + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/cli-utils": "1.4.0", + "@gql.tada/internal": "1.0.2" + }, + "bin": { + "gql-tada": "bin/cli.js", + "gql.tada": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/graphql": { + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", + "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "peer": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "peer": true + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "peer": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mlly": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", + "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/navi-sdk": { + "version": "1.1.23", + "resolved": "https://registry.npmjs.org/navi-sdk/-/navi-sdk-1.1.23.tgz", + "integrity": "sha512-ikTjgPXj6XzTk90j8Fy5cjaIaO1z44Odq+jmI0p27kceX2l50pgHyN3k0oyIffW9Q2/XkWAyoUJzDYVT7W1PRA==", + "dependencies": { + "@mysten/sui.js": "^0.50.1", + "axios": "^1.6.7", + "esrun": "^3.2.26", + "tsconfig-paths": "^4.2.0", + "vitest": "^1.3.1" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/periscopic/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/svelte": { + "version": "4.2.18", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.18.tgz", + "integrity": "sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/svelte2tsx": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.13.tgz", + "integrity": "sha512-aObZ93/kGAiLXA/I/kP+x9FriZM+GboB/ReOIGmLNbVGEd2xC+aTCppm3mk1cc9I/z60VQf7b2QDxC3jOXu3yw==", + "dependencies": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + }, + "peerDependencies": { + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", + "typescript": "^4.9.4 || ^5.0.0" + } + }, + "node_modules/tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==" + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz", + "integrity": "sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" + }, + "node_modules/vite": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.2.tgz", + "integrity": "sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "dependencies": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/mover/hellogmegg/code/task6/package.json b/mover/hellogmegg/code/task6/package.json new file mode 100644 index 000000000..6c10ddfc3 --- /dev/null +++ b/mover/hellogmegg/code/task6/package.json @@ -0,0 +1,16 @@ +{ + "name": "sdk.js", + "version": "1.0.0", + "description": "", + "main": "sdk.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "navi-sdk": "^1.1.23" + }, + "type": "module" +} diff --git a/mover/hellogmegg/code/task6/ptb.log b/mover/hellogmegg/code/task6/ptb.log new file mode 100644 index 000000000..a2dec7051 --- /dev/null +++ b/mover/hellogmegg/code/task6/ptb.log @@ -0,0 +1,146 @@ +Network Type: mainnet +AccountManager { + client: SuiClient { transport: SuiHTTPTransport {} }, + address: '0xe82c8d9d92a61fa5f583addd9d7b29cd3d45da5abd0ff5cf155a6fe9779e4f40', + keypair: Ed25519Keypair { + keypair: { publicKey: [Uint8Array], secretKey: [Uint8Array] } + } +} +{ + digest: '6MnKKbMGFLke8oPW7LKvrs4dPNBLpJxv57eusm3gC7s4', + effects: { + messageVersion: 'v1', + status: { status: 'success' }, + executedEpoch: '466', + gasUsed: { + computationCost: '2274000', + storageCost: '437326800', + storageRebate: '300568752', + nonRefundableStorageFee: '3036048' + }, + modifiedAtVersions: [ + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object] + ], + sharedObjects: [ [Object], [Object], [Object], [Object], [Object] ], + transactionDigest: '6MnKKbMGFLke8oPW7LKvrs4dPNBLpJxv57eusm3gC7s4', + created: [ + [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object] + ], + mutated: [ + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object], [Object], [Object], + [Object], [Object] + ], + deleted: [ [Object], [Object] ], + gasObject: { owner: [Object], reference: [Object] }, + eventsDigest: 'G7WYvhzLFjRdZ2KCkR8kDtmFUCG7sumepM3zN7VrMA7y', + dependencies: [ + '242v2UQPo2poK63KwLQ8ge6fs5q5VzTMzGqEvebttZgu', + '3UPXfLrfMmWLaFjK1u2eRFAg2un7AT7igZtYJjz1sC76', + '47bEoyzNuryUTkFrPVv9ykXm9wb5e3B2WmHVuXtQDLhc', + '5EDvv5a4gxkeNDMhQbCVbpuuf8s2os9Wkp4spJu5NLRM', + '6UDK9xnURvAiX9dWoXCp8AiYCHyju7jhCoqWSEbzDADL', + '9D85TcFa5oRWv48nkYWmFh5vQtd4HvzDWcU4MsphJcvC', + 'GzAtGxtSiVdCwKekJqKXtxL3hHCsZ2H8tfttoaeuxd6C' + ] + }, + confirmedLocalExecution: true +} +{ + digest: '4G6eTgSAkhcSQ3SY69iqGu7ZDKeSC7kqUgqRAKtFqPgr', + effects: { + messageVersion: 'v1', + status: { status: 'success' }, + executedEpoch: '466', + gasUsed: { + computationCost: '3032000', + storageCost: '438307200', + storageRebate: '432953532', + nonRefundableStorageFee: '4373268' + }, + modifiedAtVersions: [ + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + ... 3 more items + ], + sharedObjects: [ [Object], [Object], [Object], [Object], [Object], [Object] ], + transactionDigest: '4G6eTgSAkhcSQ3SY69iqGu7ZDKeSC7kqUgqRAKtFqPgr', + created: [ [Object] ], + mutated: [ + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + ... 3 more items + ], + gasObject: { owner: [Object], reference: [Object] }, + eventsDigest: '4bzvsHtY2uZMYivCmL5Mm6uJT6oVLNE9WZJF8qSNvEnZ', + dependencies: [ + 'nc9kHs72NEuaJjkMnj3mqA2zPVYFB3cU6NxctHTEe5Z', + '5EDvv5a4gxkeNDMhQbCVbpuuf8s2os9Wkp4spJu5NLRM', + '6Btgdg8xquzs6hXjpFSDtuTD6iz56VgfYYUMQrFhntHu', + '6MnKKbMGFLke8oPW7LKvrs4dPNBLpJxv57eusm3gC7s4', + 'GzAtGxtSiVdCwKekJqKXtxL3hHCsZ2H8tfttoaeuxd6C' + ] + }, + confirmedLocalExecution: true +} diff --git a/mover/hellogmegg/code/task6/sdk.js b/mover/hellogmegg/code/task6/sdk.js new file mode 100644 index 000000000..c5a8b8b47 --- /dev/null +++ b/mover/hellogmegg/code/task6/sdk.js @@ -0,0 +1,15 @@ +import { NAVISDKClient } from 'navi-sdk' +import { Sui } from 'navi-sdk/dist/address.js' + +const mnemonic = 'xxx' //填自己的助记词,省事很多 +const client = new NAVISDKClient({ mnemonic, networkType: "mainnet", numberOfAccounts: 1 }) //如果要随机生成,就删除这句代码中的mnemonic, +const account = client.accounts[0]//默认刚刚传入的地址 +console.log(account) +async function main() { + let result = await account.depositToNavi(Sui, 1)//(Sui, 1)这里面的数字,大点,0.几会报错 + console.log(result) + result = await account.withdraw(Sui, 1)//(Sui, 1)这里面的数字,大点,0.几会报错 + console.log(result) +} + +main() diff --git a/mover/hellogmegg/images/getflag.png b/mover/hellogmegg/images/getflag.png new file mode 100644 index 000000000..bec1badf0 Binary files /dev/null and b/mover/hellogmegg/images/getflag.png differ diff --git a/mover/hellogmegg/images/nft.png b/mover/hellogmegg/images/nft.png new file mode 100644 index 000000000..2f093eb91 Binary files /dev/null and b/mover/hellogmegg/images/nft.png differ diff --git a/mover/hellogmegg/images/packageid.png b/mover/hellogmegg/images/packageid.png new file mode 100644 index 000000000..3aafa1243 Binary files /dev/null and b/mover/hellogmegg/images/packageid.png differ diff --git a/mover/hellogmegg/images/sui.png b/mover/hellogmegg/images/sui.png new file mode 100644 index 000000000..8e8723204 Binary files /dev/null and b/mover/hellogmegg/images/sui.png differ diff --git a/mover/hellogmegg/notes/readme.md b/mover/hellogmegg/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/hellogmegg/readme.md b/mover/hellogmegg/readme.md new file mode 100644 index 000000000..a26d392e1 --- /dev/null +++ b/mover/hellogmegg/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xe82c8d9d92a61fa5f583addd9d7b29cd3d45da5abd0ff5cf155a6fe9779e4f40` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `hellogmegg` + +## 个人简介 +- 工作经验: 3年 +- 技术栈: `Python` `Javascript` +> 重要提示 请认真写自己的简介 +- 从大学开始对区块链感兴趣,btc、evm、sol均有涉猎,喜欢写一下脚本打土狗,自动化玩游戏之类的 +- 联系方式: tg: `hellogmegg` + +## 任务 + +## 01 hello move +- [] Sui cli version: sui 1.29.0-1bc3c6996246 +- [] Sui钱包截图: ![Sui钱包截图](./images/sui.png) +- [] package id: 0x84ff356cfac876fdb308a5203a88dd4c15c9e645f08d3bb036d3ebdcfa3dfb59 +- [] package id 在 scan上的查看截图:![Scan截图](./images/packageid.png) + +## 02 move coin +- [] My Coin package id : 0xcb1ae9e203c0de5d70271aebb5a7dca82186ef3572647d82a4bde975c5b6a59c +- [] Faucet package id : 0x0cd90c8de37218c15b9e7b908057eab00c19a1910147cb4f59046db8fe5410b7 +- [] 转账 `My Coin` hash: 45tC8EPhWFY2ARvkApefESGAKyM2MPgjzcuEScVoew7D +- [] `Faucet Coin` address1 mint hash: Bfqih3Av3CcQ7jHjzNtT1tJ59tkxonh32AMo8478gUHx +- [] `Faucet Coin` address2 mint hash: 3F7f8Lfhskc8TXk8zvLxGATYpPpbaVXRidfp3EgKMMmh + +## 03 move NFT +- [] nft package id : 0xf428422051433310369762186ba9b0984c524d269d83d0e8368ae04db7adf0a2 +- [] nft object id : 0x5f2a408396c4c93a989ac64a99d690d55e0c042ea9a283c64629d8dabc374868 +- [] 转账 nft hash: 9cYJmUSgtdW3VLht2yfpvELEhzWDDRMpQB48f8R5C3p7 +- [] scan上的NFT截图:![Scan截图](./images/nft.png) + +## 04 Move Game +- [] game package id : 0x9e5c0c0930ac1c2a35fd1b326735b4f4d79cbad32e26415c768381bec369a616 +- [] deposit Coin hash: 3FzMDATUExwVTFPDzAHbtzdgER6cV2bZBNjrdga4N5tG +- [] withdraw `Coin` hash: CRsLXRo4Zj4RQbVwsJxewoLesfmoEiQqvqwLKt6egM2w +- [] play game hash: krnqvu6A942hm2ZG8in9CuDanukLieoz8ps3nD4pSkh + +## 05 Move Swap +- [] swap package id : 0x0e045d10ae1557afb8e9d79095157bf807fec73d64b2dc3fb1e34825e2d850ff +- [] call swap CoinA-> CoinB hash : 4h42SJWfoMFjdL2u61TkRmyd8Hd1q6yAvg2PXtDZKHwy +- [] call swap CoinB-> CoinA hash : 14fbFY59N9YSX7nLJYje5dDVBY4scC8VK6Bf1h8pRaqv + +## 06 Dapp-kit SDK PTB +- [] save hash : 6MnKKbMGFLke8oPW7LKvrs4dPNBLpJxv57eusm3gC7s4 + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/getflag.png) +- [] flag hash : DZsALVVuHA1PaMFgpHypXbeG3m3vQC6FoDjXScDXcxLp + +## 08 Move CTF Lets Move +- [] proof : [181,206,102] +- [] flag hash : 51wiUMgR1UyHHj1wWqC9emjjwAbBFmoEyNPwto1ouQAS diff --git a/mover/hhyyy9/code/readme.md b/mover/hhyyy9/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git "a/mover/hhyyy9/iShot_2024-07-19_8.51.30\342\200\257PM.png" "b/mover/hhyyy9/iShot_2024-07-19_8.51.30\342\200\257PM.png" new file mode 100644 index 000000000..5342b6f60 Binary files /dev/null and "b/mover/hhyyy9/iShot_2024-07-19_8.51.30\342\200\257PM.png" differ diff --git "a/mover/hhyyy9/iShot_2024-07-19_9.40.09\342\200\257PM.png" "b/mover/hhyyy9/iShot_2024-07-19_9.40.09\342\200\257PM.png" new file mode 100644 index 000000000..179eec730 Binary files /dev/null and "b/mover/hhyyy9/iShot_2024-07-19_9.40.09\342\200\257PM.png" differ diff --git a/mover/hhyyy9/notes/readme.md b/mover/hhyyy9/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/hhyyy9/readme.md b/mover/hhyyy9/readme.md new file mode 100644 index 000000000..a3a1a3761 --- /dev/null +++ b/mover/hhyyy9/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x6241530e815637971e1c0a1be022a04dc1c189f62b8e80e65b383249c9c8c4c4` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `hhyyy9` + +## 个人简介 +- 工作经验: 18+年 +- 技术栈: `Java` `iOS` `React` `.Net Core` +> 重要提示 请认真写自己的简介 +- 多年web2和移动开发经验,有Solidity开发经验,目前工作上有Move开发工作的需求 +- 联系方式: tg: `cngodeth` + +## 任务 + +## 01 hello move +- [] Sui cli version: +- [] Sui钱包截图: ![iShot_2024-07-19_8.51.30 PM](/Users/jackyhuang/Projects/Web3Projects/letsmove/mover/hhyyy9/iShot_2024-07-19_8.51.30 PM.png) +- [] package id: 0xe6a7061d928ce12042e7d99c2c95faba18f2fbf99637e209606af88fa618f1eb +- [] package id 在 scan上的查看截图:![iShot_2024-07-19_9.40.09 PM](/Users/jackyhuang/Projects/Web3Projects/letsmove/mover/hhyyy9/iShot_2024-07-19_9.40.09 PM.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/hhyyy9/scan.jpg b/mover/hhyyy9/scan.jpg new file mode 100644 index 000000000..d16ebb649 Binary files /dev/null and b/mover/hhyyy9/scan.jpg differ diff --git a/mover/hi-chenerge/code/task4/manual.md b/mover/hi-chenerge/code/task4/manual.md index 9790e49ff..10fb7ff37 100644 --- a/mover/hi-chenerge/code/task4/manual.md +++ b/mover/hi-chenerge/code/task4/manual.md @@ -3,7 +3,7 @@ sui move build --skip-fetch-latest-git-deps # 发布 -sui client publish --gas-budget 100000000 --skip-dependency-verification +sui client publish --skip-dependency-verification # 切网 sui client switch --env devnet diff --git a/mover/hi-chenerge/code/task5/Readme.md b/mover/hi-chenerge/code/task5/Readme.md index 5c76c7bcd..f7b8f246f 100644 --- a/mover/hi-chenerge/code/task5/Readme.md +++ b/mover/hi-chenerge/code/task5/Readme.md @@ -2,7 +2,7 @@ sui move build --skip-fetch-latest-git-deps # 发布 -sui client publish --gas-budget 100000000 --skip-dependency-verification --skip-fetch-latest-git-deps +sui client publish --skip-dependency-verification --skip-fetch-latest-git-deps # 切网 sui client switch --env mainnet diff --git a/mover/holopopo/code/readme.md b/mover/holopopo/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/holopopo/code/task1/hello_holopopo/Move.lock b/mover/holopopo/code/task1/hello_holopopo/Move.lock new file mode 100644 index 000000000..e3e20c601 --- /dev/null +++ b/mover/holopopo/code/task1/hello_holopopo/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "DB9EBC270E332832DFA83E941D759C02BEFA9972803BF968F2E1B73B22DB4ADE" +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.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x32224cb48eb648db5679a7ff942ef6ba38bc0649f25c5e9414b29c3b596f9168" +latest-published-id = "0x32224cb48eb648db5679a7ff942ef6ba38bc0649f25c5e9414b29c3b596f9168" +published-version = "1" diff --git a/mover/holopopo/code/task1/hello_holopopo/Move.toml b/mover/holopopo/code/task1/hello_holopopo/Move.toml new file mode 100644 index 000000000..21c0cfb88 --- /dev/null +++ b/mover/holopopo/code/task1/hello_holopopo/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_holopopo" +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] +hello_holopopo = "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/holopopo/code/task1/hello_holopopo/sources/hello_holopopo.move b/mover/holopopo/code/task1/hello_holopopo/sources/hello_holopopo.move new file mode 100644 index 000000000..5d0d11752 --- /dev/null +++ b/mover/holopopo/code/task1/hello_holopopo/sources/hello_holopopo.move @@ -0,0 +1,9 @@ + +/// Module: hello_holopopo +module hello_holopopo::hello_holopopo { +use std::string::String; + + public fun hello_holopopo(): String { + b"Hello, holopopo!".to_string() + } +} diff --git a/mover/holopopo/code/task1/hello_holopopo/tests/hello_holopopo_tests.move b/mover/holopopo/code/task1/hello_holopopo/tests/hello_holopopo_tests.move new file mode 100644 index 000000000..46231f2e6 --- /dev/null +++ b/mover/holopopo/code/task1/hello_holopopo/tests/hello_holopopo_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_holopopo::hello_holopopo_tests { + // uncomment this line to import the module + // use hello_holopopo::hello_holopopo; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_holopopo() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_holopopo::hello_holopopo_tests::ENotImplemented)] + fun test_hello_holopopo_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/holopopo/code/task2/faucet_coin/Move.lock b/mover/holopopo/code/task2/faucet_coin/Move.lock new file mode 100644 index 000000000..e60f6452f --- /dev/null +++ b/mover/holopopo/code/task2/faucet_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "6CA6BA8684E52C7425AB87DEB7B8D2BFF9FE2442552828717AC503B9C50DD72B" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xbb15a715df9fdf4d008218ada7a931492d3c8230fa557c44b8a09af6efb1558a" +latest-published-id = "0xbb15a715df9fdf4d008218ada7a931492d3c8230fa557c44b8a09af6efb1558a" +published-version = "1" diff --git a/mover/holopopo/code/task2/faucet_coin/Move.toml b/mover/holopopo/code/task2/faucet_coin/Move.toml new file mode 100644 index 000000000..02ca76f9d --- /dev/null +++ b/mover/holopopo/code/task2/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/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] +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/holopopo/code/task2/faucet_coin/sources/faucet_coin.move b/mover/holopopo/code/task2/faucet_coin/sources/faucet_coin.move new file mode 100644 index 000000000..a881ce18b --- /dev/null +++ b/mover/holopopo/code/task2/faucet_coin/sources/faucet_coin.move @@ -0,0 +1,35 @@ + +/// Module: faucet_coin +module faucet_coin::faucet_coin { +use sui::coin::{Self, Coin, TreasuryCap}; + // use sui::tx_context::{Self, TxContext}; + + public struct FAUCET_COIN has drop {} + fun init(witness:FAUCET_COIN,ctx:&mut TxContext){ + let (treasury_cap, metadata) = coin::create_currency( + witness, + 2, + b"FAUCET_COIN", + b"MC", + b"learning for letsmove, power by alva-lin", + option::none(), + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury_cap); + + } + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} diff --git a/mover/holopopo/code/task2/faucet_coin/tests/faucet_coin_tests.move b/mover/holopopo/code/task2/faucet_coin/tests/faucet_coin_tests.move new file mode 100644 index 000000000..88a42bf8e --- /dev/null +++ b/mover/holopopo/code/task2/faucet_coin/tests/faucet_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[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/holopopo/code/task2/my_coin/Move.lock b/mover/holopopo/code/task2/my_coin/Move.lock new file mode 100644 index 000000000..db9f8b31f --- /dev/null +++ b/mover/holopopo/code/task2/my_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "837E1BE1E9D777A88A7A690D7144460A4BEF0543655FA617878BE8FEFDC1AD1A" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x2f2df05764b2f0ba50d6b2d7b827c5d12750864dddd0740189ee9133bc87b188" +latest-published-id = "0x2f2df05764b2f0ba50d6b2d7b827c5d12750864dddd0740189ee9133bc87b188" +published-version = "1" diff --git a/mover/holopopo/code/task2/my_coin/Move.toml b/mover/holopopo/code/task2/my_coin/Move.toml new file mode 100644 index 000000000..b89ab5dd4 --- /dev/null +++ b/mover/holopopo/code/task2/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/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] +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/holopopo/code/task2/my_coin/sources/my_coin.move b/mover/holopopo/code/task2/my_coin/sources/my_coin.move new file mode 100644 index 000000000..fba5a48b7 --- /dev/null +++ b/mover/holopopo/code/task2/my_coin/sources/my_coin.move @@ -0,0 +1,36 @@ + +/// Module: my_coin +module my_coin::my_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + // use sui::tx_context::{Self, TxContext}; + + public struct MY_COIN has drop {} + fun init(witness:MY_COIN,ctx:&mut TxContext){ + let (treasury_cap, metadata) = coin::create_currency( + witness, + 2, + b"MY_COIN", + b"MC", + b"learning for letsmove, power by alva-lin", + option::none(), + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + + } + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} + diff --git a/mover/holopopo/code/task2/my_coin/tests/my_coin_tests.move b/mover/holopopo/code/task2/my_coin/tests/my_coin_tests.move new file mode 100644 index 000000000..4be556acf --- /dev/null +++ b/mover/holopopo/code/task2/my_coin/tests/my_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[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/holopopo/images/PackageID.png b/mover/holopopo/images/PackageID.png new file mode 100644 index 000000000..0c94309b4 Binary files /dev/null and b/mover/holopopo/images/PackageID.png differ diff --git a/mover/holopopo/images/wallet.png b/mover/holopopo/images/wallet.png new file mode 100644 index 000000000..f4f79c357 Binary files /dev/null and b/mover/holopopo/images/wallet.png differ diff --git a/mover/holopopo/notes/readme.md b/mover/holopopo/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/holopopo/readme.md b/mover/holopopo/readme.md new file mode 100644 index 000000000..7620c2a61 --- /dev/null +++ b/mover/holopopo/readme.md @@ -0,0 +1,47 @@ + +## 基本信息 +- Sui钱包地址: `0xd77ac0357180a42816c59237a29cc14390475dc02db0e80077b04748972ef7bd` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `holopopo` + +## 个人简介 +- 工作经验: 8年 +- 技术栈: `java` `vue` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: QQ: `944903520` + +## 任务 + +## 01 hello move +- [] Sui cli version: +- [] Sui钱包截图: ![Sui钱包截图](./images/wallet.png) +- [] package id: 0x32224cb48eb648db5679a7ff942ef6ba38bc0649f25c5e9414b29c3b596f9168 +- [] package id 在 scan上的查看截图:![Scan截图](./images/PackageID.png) + +## 02 move coin +- [] My Coin package id : 0x2f2df05764b2f0ba50d6b2d7b827c5d12750864dddd0740189ee9133bc87b188 +- [] Faucet package id : 0x5f6387d503e1a798c80c1ce162c3836f433b77f326daed1675935ff6c1562a4d +- [] 转账 `My Coin` hash:HdfzKc5vQpojmMaTvtUdhha5vz7gciww4RFRz5AetcHy +- [] `Faucet Coin` address1 mint hash:APqknZKuhkiMg4AYgxKAPFRawSNtWzj7V8JDMNBcVyU6 +- [] `Faucet Coin` address2 mint hash:7pd3ieANQQr8dhbDvMAw4UGLFvGzxA6CrF8YY1qugFqK + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : diff --git a/mover/howardlau2000/notes/readme.md b/mover/howardlau2000/notes/readme.md index 9ebf8a000..44ccddcee 100644 --- a/mover/howardlau2000/notes/readme.md +++ b/mover/howardlau2000/notes/readme.md @@ -90,7 +90,7 @@ Transaction Digest: 2Q7CDAAZzQXLxmopGuXTY9t4ksM6yKHbETaGJL6j7aFL export GAME_COIN=0xc2a934fde31d5e2216a89a6abb3f5692d649d8ec133ed8ad2b6c149d72875936 -sui client call --package $PACKAGE_ID --module howardlau2000_game --function play --args $GAME_ID $GAME_COIN 0x6 --gas-budget 100000000 +sui client call --package $PACKAGE_ID --module howardlau2000_game --function play --args $GAME_ID $GAME_COIN 0x6 Transaction Digest: FfNo8jjAF4PkTz8zryAPya7ntJaEJ63hoFzv5mQQXcYp diff --git a/mover/hstarorg/README.md b/mover/hstarorg/README.md new file mode 100644 index 000000000..7eb812ebd --- /dev/null +++ b/mover/hstarorg/README.md @@ -0,0 +1,27 @@ +## 基本信息 +- Sui钱包地址: `0x7456bc01b777214947ac935bad71f75a7b7b09352ad99877d15de56530df1408` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: [hstarorg](https://github.com/hstarorg) + +## 个人简介 +- 工作经验: 全栈工程师,web3 从业者 +- 技术栈: 前端、后端、合约(Solidity) +- 联系方式: hm910705@163.com + +## 任务 + +### 01. hello move +- [x] Sui cli 版本 ID: `sui 1.26.0-homebrew`,来自于命令 `sui -V` +- [x] Hello Move 合约的 Package ID: [0x040218d68cc02485fd128c67550b14615bf5ffa0ae475eed020713c058e980d5](https://suiscan.xyz/testnet/object/0x040218d68cc02485fd128c67550b14615bf5ffa0ae475eed020713c058e980d5/txs) + + +### 02. move coin +- [x] `HSTAR_COIN` package id: [0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad](https://suiscan.xyz/mainnet/coin/0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad::hstar_coin::HSTAR_COIN/txs) +- [x] `HSTAR_FAUCET_COIN` package id: [0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad](https://suiscan.xyz/mainnet/coin/0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad::faucet_coin::FAUCET_COIN/txs) +- [x] 发送 `HSTAR_COIN` 到指定地址 hash: 9G7U22fg6xPKa71ijvw1FbZJ5rs3xZCoLnkyrHLaBDPX +- [x] mint `HSTAR_FAUCET_COIN` tx hash 1: 9B7YAxmcLUHiqxTue86pJ63PXF5dyDvrF2sjnmMt1bCf +- [x] mint `HSTAR_FAUCET_COIN` tx hash 1: BmiRMFUxeCqU8TapfMrfH5NW7XyAmx76GUB3C5LdNzV7 + +### 03. move nft +- [x] hstar nft package id: [0x2fd04200daa26953880bea43e140694fe02c030f9a44bc2f97b50ca3dde6ee8f](https://suiscan.xyz/mainnet/object/0x2fd04200daa26953880bea43e140694fe02c030f9a44bc2f97b50ca3dde6ee8f) +- [x] 发送到指定地址的交易 hash: Ciik5ZzC83zHcJpzB9ekJb2gwo2JPwJuGiE4AdiboJ7t \ No newline at end of file diff --git a/mover/hstarorg/code/task1/hello_move/Move.lock b/mover/hstarorg/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..c25c06ffa --- /dev/null +++ b/mover/hstarorg/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x6d679e2b21890f64d19c4be54356486902f8b2d14b2d5dde9f59e03f6ae32fab" +latest-published-id = "0x6d679e2b21890f64d19c4be54356486902f8b2d14b2d5dde9f59e03f6ae32fab" +published-version = "1" diff --git a/mover/hstarorg/code/task1/hello_move/Move.toml b/mover/hstarorg/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/hstarorg/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/hstarorg/code/task1/hello_move/sources/hello_move.move b/mover/hstarorg/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..12a3543f0 --- /dev/null +++ b/mover/hstarorg/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,31 @@ +/* +/// Module: hello_move +module hello_move::hello_move { + +} +*/ + +module hello_move::hello_move { + use std::string; + // use sui::object::{Self, UID}; + // use sui::transfer; + // use sui::tx_context::{TxContext}; + + public struct Hello has key, store { + id: UID, + name: string::String + } + + fun init(ctx: &mut TxContext) { + let admin = Hello { + id: object::new(ctx), + name: string::utf8(b"hstarorg") + }; + // Transfer the forge object to the module/package publisher + transfer::transfer(admin, ctx.sender()); + } + + public fun hello(self: &Hello): string::String { + self.name + } +} \ No newline at end of file diff --git a/mover/hstarorg/code/task1/hello_move/tests/hello_move_tests.move b/mover/hstarorg/code/task1/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..60fd57469 --- /dev/null +++ b/mover/hstarorg/code/task1/hello_move/tests/hello_move_tests.move @@ -0,0 +1,37 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ + +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + use hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + assert!(hello_move.hello() == b"Hello, hstarorg.", 1); + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} \ No newline at end of file diff --git a/mover/hstarorg/code/task1/images/sui-scan.png b/mover/hstarorg/code/task1/images/sui-scan.png new file mode 100644 index 000000000..de7e36ba7 Binary files /dev/null and b/mover/hstarorg/code/task1/images/sui-scan.png differ diff --git a/mover/hstarorg/code/task1/images/sui-wallet.png b/mover/hstarorg/code/task1/images/sui-wallet.png new file mode 100644 index 000000000..d07553fc5 Binary files /dev/null and b/mover/hstarorg/code/task1/images/sui-wallet.png differ diff --git a/mover/hstarorg/code/task2/.gitkeep b/mover/hstarorg/code/task2/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/mover/hstarorg/code/task2/logs/deploy1.txt b/mover/hstarorg/code/task2/logs/deploy1.txt new file mode 100644 index 000000000..3e051406c --- /dev/null +++ b/mover/hstarorg/code/task2/logs/deploy1.txt @@ -0,0 +1,186 @@ +Successfully verified dependencies on-chain against source. +Transaction Digest: BAaqTh5kPF7XEwfxDcYGU9iWRmrisPZ8oAx1nBZuwB1L +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ Gas Owner: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ Gas Budget: 28457200 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Version: 194465249 │ +│ │ Digest: 4D4bZkpycAfMqfbbFZLriGysH3HyQp5w3YiZdgeCTvBX │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ Ffbhgy5iceUwE3+U+3YM/qmyLbIT60/4st9Yr+qrX9ql5FAmBjRX3kLpxp6TntUDB88hdonZxBfbusQrOo9MAA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: BAaqTh5kPF7XEwfxDcYGU9iWRmrisPZ8oAx1nBZuwB1L │ +│ Status: Success │ +│ Executed Epoch: 416 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x1e13e1023f7dce319f07bed53fc421c70782f0ec6687cd0b13a27e1e4ef1e9dc │ +│ │ Owner: Immutable │ +│ │ Version: 194465250 │ +│ │ Digest: GttA8Fq4UE2hxzwB2Dd7pjPCi4A7qQUGhFAPqTmbgCdo │ +│ └── │ +│ ┌── │ +│ │ ID: 0x41fdedcf7074da7ca1f348cf61c68f5ba93d6c80670b4b17bd3b372a0674b33a │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465250 │ +│ │ Digest: CkdKYMCN8JymypiTY4VfAw2Ps8LnnxJGw498MTFLQMYp │ +│ └── │ +│ ┌── │ +│ │ ID: 0x450d3c11a2fb743e54b5dac2bdcd81297caa5d0dd05c166eb66350fa0cabda03 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465250 │ +│ │ Digest: GbTL7dq9AewQ518CJfLhGDrawKEFCX6QibSvApRMUvBW │ +│ └── │ +│ ┌── │ +│ │ ID: 0x46cbaf4bfa7812080c152dcd8f0a609d51eaa9faec2082b5acd8d9657ecb0f13 │ +│ │ Owner: Immutable │ +│ │ Version: 194465250 │ +│ │ Digest: 9LvFkm7oemHUFDVuitJ3MDvotM5SdFurVXw52pNBQD9D │ +│ └── │ +│ ┌── │ +│ │ ID: 0x551ae8b7ce5b6fdcd459cb69c65356211c8d0a92e2992bbe2495d04c726a6748 │ +│ │ Owner: Shared( 194465250 ) │ +│ │ Version: 194465250 │ +│ │ Digest: 7E9xMnQpyU1RUzkjQDjVNr6j7BrEvryWRXPzvNy91tZU │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf2809ed93d578c2c998be11e7c9e5a8cfcf1b3ed8dccdd700fd1923c456dd329 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: EpZsTMp9SYzGsmaLo7kNyBeGqpUgZAC6GDg5xZ3Unm4 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465250 │ +│ │ Digest: B12TfXLgLzmX2pi7dr8Lyfi6JYFLnYsBDMUvSpJwc5VZ │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465250 │ +│ │ Digest: B12TfXLgLzmX2pi7dr8Lyfi6JYFLnYsBDMUvSpJwc5VZ │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 26957200 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ B7NXQPS19rwQ59TmNq8BvB9u2nq5MJ7nyeZA5qjyHZti │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x1e13e1023f7dce319f07bed53fc421c70782f0ec6687cd0b13a27e1e4ef1e9dc │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xf2809ed93d578c2c998be11e7c9e5a8cfcf1b3ed8dccdd700fd1923c456dd329::hstar_coin::HSTAR_COIN> │ +│ │ Version: 194465250 │ +│ │ Digest: GttA8Fq4UE2hxzwB2Dd7pjPCi4A7qQUGhFAPqTmbgCdo │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x41fdedcf7074da7ca1f348cf61c68f5ba93d6c80670b4b17bd3b372a0674b33a │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xf2809ed93d578c2c998be11e7c9e5a8cfcf1b3ed8dccdd700fd1923c456dd329::hstar_coin::HSTAR_COIN> │ +│ │ Version: 194465250 │ +│ │ Digest: CkdKYMCN8JymypiTY4VfAw2Ps8LnnxJGw498MTFLQMYp │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x450d3c11a2fb743e54b5dac2bdcd81297caa5d0dd05c166eb66350fa0cabda03 │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 194465250 │ +│ │ Digest: GbTL7dq9AewQ518CJfLhGDrawKEFCX6QibSvApRMUvBW │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x46cbaf4bfa7812080c152dcd8f0a609d51eaa9faec2082b5acd8d9657ecb0f13 │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xf2809ed93d578c2c998be11e7c9e5a8cfcf1b3ed8dccdd700fd1923c456dd329::faucet_coin::FAUCET_COIN> │ +│ │ Version: 194465250 │ +│ │ Digest: 9LvFkm7oemHUFDVuitJ3MDvotM5SdFurVXw52pNBQD9D │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x551ae8b7ce5b6fdcd459cb69c65356211c8d0a92e2992bbe2495d04c726a6748 │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Shared( 194465250 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xf2809ed93d578c2c998be11e7c9e5a8cfcf1b3ed8dccdd700fd1923c456dd329::faucet_coin::FAUCET_COIN> │ +│ │ Version: 194465250 │ +│ │ Digest: 7E9xMnQpyU1RUzkjQDjVNr6j7BrEvryWRXPzvNy91tZU │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 194465250 │ +│ │ Digest: B12TfXLgLzmX2pi7dr8Lyfi6JYFLnYsBDMUvSpJwc5VZ │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xf2809ed93d578c2c998be11e7c9e5a8cfcf1b3ed8dccdd700fd1923c456dd329 │ +│ │ Version: 1 │ +│ │ Digest: EpZsTMp9SYzGsmaLo7kNyBeGqpUgZAC6GDg5xZ3Unm4 │ +│ │ Modules: faucet_coin, hstar_coin │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -26729080 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ \ No newline at end of file diff --git a/mover/hstarorg/code/task2/logs/deploy2.txt b/mover/hstarorg/code/task2/logs/deploy2.txt new file mode 100644 index 000000000..027451445 --- /dev/null +++ b/mover/hstarorg/code/task2/logs/deploy2.txt @@ -0,0 +1,186 @@ +Successfully verified dependencies on-chain against source. +Transaction Digest: 9bBHAfh8P1sXjiZu9u7G1u3Hq5xPBPNnshnp2XDZkDMm +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ Gas Owner: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ Gas Budget: 28457200 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Version: 194465250 │ +│ │ Digest: B12TfXLgLzmX2pi7dr8Lyfi6JYFLnYsBDMUvSpJwc5VZ │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 03aLFEhyZhrbci7nSludSx6QdOGrEXOiViiNY/TsYHHaUAQIHhYo6FYwGy06X3oLdZliQ5n98NG2lLVa1EnJDg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 9bBHAfh8P1sXjiZu9u7G1u3Hq5xPBPNnshnp2XDZkDMm │ +│ Status: Success │ +│ Executed Epoch: 416 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x0121dfa128e2f330a59349b62131d92d3e4bf361050743874a350e6bd2b8007e │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465251 │ +│ │ Digest: 5gy8eXY1Cr7iRbhZubCzwmZjYmtuZ1EaeX2JZrghdV5m │ +│ └── │ +│ ┌── │ +│ │ ID: 0x041bb12d3dda5601a7ded6c54032fd813922abe0e7aac1b1337da4b2cdf56608 │ +│ │ Owner: Immutable │ +│ │ Version: 194465251 │ +│ │ Digest: 6TiWJ5jXcBDbEmjKKDfrxSfRVYtbRqaM8QS6b7jMa8t1 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: pGXFyVckufNWCYnj8N4r6Uig3iKSRyTbxj5j32t8B13 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x94630b425addf51541d382d3982f2935f464d0cc88f01430bf94c08dd17607cb │ +│ │ Owner: Shared( 194465251 ) │ +│ │ Version: 194465251 │ +│ │ Digest: ADXEggfNGNAMERWNZGGLsfW4eEWhJrAUJAdyukCxcUPv │ +│ └── │ +│ ┌── │ +│ │ ID: 0xdd47033846338386fa9a7b717bded8990283a2a33bf1b97a0dd8a063de397fe1 │ +│ │ Owner: Immutable │ +│ │ Version: 194465251 │ +│ │ Digest: A5GezWY1wS4Jyywtgm9FD2Ydq1WzgbH4NMLYUw9TikHa │ +│ └── │ +│ ┌── │ +│ │ ID: 0xfca161c1cd9b98078e18611c759f22043ad631d73b853a47eca32b31c230c042 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465251 │ +│ │ Digest: CC7Mg1JLuex5VDHRsrUZvy5MY5KjnVhfBzzDY7iqK5sC │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465251 │ +│ │ Digest: A4AdJkHffR25KVzMuZA5aMYxc5UoLvraANxKMTJAZSXk │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465251 │ +│ │ Digest: A4AdJkHffR25KVzMuZA5aMYxc5UoLvraANxKMTJAZSXk │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 26957200 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ BAaqTh5kPF7XEwfxDcYGU9iWRmrisPZ8oAx1nBZuwB1L │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0121dfa128e2f330a59349b62131d92d3e4bf361050743874a350e6bd2b8007e │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad::hstar_coin::HSTAR_COIN> │ +│ │ Version: 194465251 │ +│ │ Digest: 5gy8eXY1Cr7iRbhZubCzwmZjYmtuZ1EaeX2JZrghdV5m │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x041bb12d3dda5601a7ded6c54032fd813922abe0e7aac1b1337da4b2cdf56608 │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad::faucet_coin::FAUCET_COIN> │ +│ │ Version: 194465251 │ +│ │ Digest: 6TiWJ5jXcBDbEmjKKDfrxSfRVYtbRqaM8QS6b7jMa8t1 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x94630b425addf51541d382d3982f2935f464d0cc88f01430bf94c08dd17607cb │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Shared( 194465251 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad::faucet_coin::FAUCET_COIN> │ +│ │ Version: 194465251 │ +│ │ Digest: ADXEggfNGNAMERWNZGGLsfW4eEWhJrAUJAdyukCxcUPv │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xdd47033846338386fa9a7b717bded8990283a2a33bf1b97a0dd8a063de397fe1 │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad::hstar_coin::HSTAR_COIN> │ +│ │ Version: 194465251 │ +│ │ Digest: A5GezWY1wS4Jyywtgm9FD2Ydq1WzgbH4NMLYUw9TikHa │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xfca161c1cd9b98078e18611c759f22043ad631d73b853a47eca32b31c230c042 │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 194465251 │ +│ │ Digest: CC7Mg1JLuex5VDHRsrUZvy5MY5KjnVhfBzzDY7iqK5sC │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 194465251 │ +│ │ Digest: A4AdJkHffR25KVzMuZA5aMYxc5UoLvraANxKMTJAZSXk │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad │ +│ │ Version: 1 │ +│ │ Digest: pGXFyVckufNWCYnj8N4r6Uig3iKSRyTbxj5j32t8B13 │ +│ │ Modules: faucet_coin, hstar_coin │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -26729080 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ \ No newline at end of file diff --git a/mover/hstarorg/code/task2/logs/faucet_coin_mint01.txt b/mover/hstarorg/code/task2/logs/faucet_coin_mint01.txt new file mode 100644 index 000000000..eda456af7 --- /dev/null +++ b/mover/hstarorg/code/task2/logs/faucet_coin_mint01.txt @@ -0,0 +1,140 @@ +Transaction Digest: 9B7YAxmcLUHiqxTue86pJ63PXF5dyDvrF2sjnmMt1bCf +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ Gas Owner: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ Gas Budget: 3934888 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Version: 194465256 │ +│ │ Digest: G2kxARfDwdzbDVuktyYbU2z4ZA33c4ZaoTcfSiRnU46j │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x94630b425addf51541d382d3982f2935f464d0cc88f01430bf94c08dd17607cb │ │ +│ │ 1 Pure Arg: Type: u64, Value: "200000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: faucet_coin │ │ +│ │ │ Package: 0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ MriGV4wXRDRXTYc1CGoZk47fQ+UyjOrQTzZ1yR41NvOIHwoAunTSM3Do+7OjoLl/k2TwRudR3ii2L7BJDRd1Aw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 9B7YAxmcLUHiqxTue86pJ63PXF5dyDvrF2sjnmMt1bCf │ +│ Status: Success │ +│ Executed Epoch: 416 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xbe145cd07955d510980b9f5338a11aebb817ff34b85d80399174d287096950bd │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465257 │ +│ │ Digest: 58s8eLDxpU4668guDK6NemS2aYad4oPk2CxqEgp491Nf │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465257 │ +│ │ Digest: 4o77aFQ9aniV2jWr2HWx34ve1KNoVKwhXD4TWHq1EFdr │ +│ └── │ +│ ┌── │ +│ │ ID: 0x94630b425addf51541d382d3982f2935f464d0cc88f01430bf94c08dd17607cb │ +│ │ Owner: Shared( 194465251 ) │ +│ │ Version: 194465257 │ +│ │ Digest: Ejv1v3EhHrH1upLtrjP9HTHJctxTqTSbb6vsLtrijP6Y │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x94630b425addf51541d382d3982f2935f464d0cc88f01430bf94c08dd17607cb │ +│ │ Version: 194465251 │ +│ │ Digest: ADXEggfNGNAMERWNZGGLsfW4eEWhJrAUJAdyukCxcUPv │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465257 │ +│ │ Digest: 4o77aFQ9aniV2jWr2HWx34ve1KNoVKwhXD4TWHq1EFdr │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4225600 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 2768832 MIST │ +│ Non-refundable Storage Fee: 27968 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 9bBHAfh8P1sXjiZu9u7G1u3Hq5xPBPNnshnp2XDZkDMm │ +│ BAiL9iEy1ei6qyHFAZRBuxzD42paxyTHshXQju3HjdR9 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xbe145cd07955d510980b9f5338a11aebb817ff34b85d80399174d287096950bd │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad::faucet_coin::FAUCET_COIN> │ +│ │ Version: 194465257 │ +│ │ Digest: 58s8eLDxpU4668guDK6NemS2aYad4oPk2CxqEgp491Nf │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 194465257 │ +│ │ Digest: 4o77aFQ9aniV2jWr2HWx34ve1KNoVKwhXD4TWHq1EFdr │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x94630b425addf51541d382d3982f2935f464d0cc88f01430bf94c08dd17607cb │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Shared( 194465251 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad::faucet_coin::FAUCET_COIN> │ +│ │ Version: 194465257 │ +│ │ Digest: Ejv1v3EhHrH1upLtrjP9HTHJctxTqTSbb6vsLtrijP6Y │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2206768 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ CoinType: 0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad::faucet_coin::FAUCET_COIN │ +│ │ Amount: 200000000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ \ No newline at end of file diff --git a/mover/hstarorg/code/task2/logs/hstar_coin_mint.txt b/mover/hstarorg/code/task2/logs/hstar_coin_mint.txt new file mode 100644 index 000000000..e07c1c4bd --- /dev/null +++ b/mover/hstarorg/code/task2/logs/hstar_coin_mint.txt @@ -0,0 +1,134 @@ +Transaction Digest: EqtuUF7EgvLea6iEGCovQzXSAucPJ2MRodjkHCPwZgbB +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ Gas Owner: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ Gas Budget: 3919536 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Version: 194465252 │ +│ │ Digest: FL6zxZKgb3MXyVPwqGfK3fRF2wHMpxwjnU4yWnTz1uW4 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x0121dfa128e2f330a59349b62131d92d3e4bf361050743874a350e6bd2b8007e │ │ +│ │ 1 Pure Arg: Type: u64, Value: "100" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: hstar_coin │ │ +│ │ │ Package: 0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ XTr5CBRr9BGyRnacK1/4w0DuvNwd95tciQ3TwdLdCDpXOtxdAycI1d0st6BbtBIwhf3LEcrE85xmwhudGddMCg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: EqtuUF7EgvLea6iEGCovQzXSAucPJ2MRodjkHCPwZgbB │ +│ Status: Success │ +│ Executed Epoch: 416 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x9169007cc6fb9d099f1ac0caaf1436d121dfe89ae551d3cee59a0bab85094741 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465253 │ +│ │ Digest: CQQPgNKXMg2yDBfaXfesXivQveKquqUrBMVjGD5pNbjw │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0121dfa128e2f330a59349b62131d92d3e4bf361050743874a350e6bd2b8007e │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465253 │ +│ │ Digest: BdCeEihA46QZJPYgDg86Ppc1XBtDMjXJMShVCUAP9MW8 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465253 │ +│ │ Digest: 5rjYSG7tgfRBQ7kLXZ2G2oG5myE77LEuWuYZEgCb1a88 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465253 │ +│ │ Digest: 5rjYSG7tgfRBQ7kLXZ2G2oG5myE77LEuWuYZEgCb1a88 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4195200 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 2753784 MIST │ +│ Non-refundable Storage Fee: 27816 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 9bBHAfh8P1sXjiZu9u7G1u3Hq5xPBPNnshnp2XDZkDMm │ +│ AfrCMLH3kEdM1TXM2wHPHHGH2ygEy9TqTV4rvGPbMpPc │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x9169007cc6fb9d099f1ac0caaf1436d121dfe89ae551d3cee59a0bab85094741 │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad::hstar_coin::HSTAR_COIN> │ +│ │ Version: 194465253 │ +│ │ Digest: CQQPgNKXMg2yDBfaXfesXivQveKquqUrBMVjGD5pNbjw │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0121dfa128e2f330a59349b62131d92d3e4bf361050743874a350e6bd2b8007e │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad::hstar_coin::HSTAR_COIN> │ +│ │ Version: 194465253 │ +│ │ Digest: BdCeEihA46QZJPYgDg86Ppc1XBtDMjXJMShVCUAP9MW8 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 194465253 │ +│ │ Digest: 5rjYSG7tgfRBQ7kLXZ2G2oG5myE77LEuWuYZEgCb1a88 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2191416 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ CoinType: 0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad::hstar_coin::HSTAR_COIN │ +│ │ Amount: 100 │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ \ No newline at end of file diff --git a/mover/hstarorg/code/task2/sui_coin/Move.lock b/mover/hstarorg/code/task2/sui_coin/Move.lock new file mode 100644 index 000000000..5075ae03f --- /dev/null +++ b/mover/hstarorg/code/task2/sui_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "AB57FAB9556ADA64BD5FEB3572E92DEF9B8E8B1F0F37D07A8FC003E9E7E25746" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad" +latest-published-id = "0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad" +published-version = "1" diff --git a/mover/hstarorg/code/task2/sui_coin/Move.toml b/mover/hstarorg/code/task2/sui_coin/Move.toml new file mode 100644 index 000000000..0fc97d5ef --- /dev/null +++ b/mover/hstarorg/code/task2/sui_coin/Move.toml @@ -0,0 +1,36 @@ +[package] +name = "sui_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://github.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] +hstar = "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/hstarorg/code/task2/sui_coin/sources/faucet_coin.move b/mover/hstarorg/code/task2/sui_coin/sources/faucet_coin.move new file mode 100644 index 000000000..8f1ccba7a --- /dev/null +++ b/mover/hstarorg/code/task2/sui_coin/sources/faucet_coin.move @@ -0,0 +1,42 @@ +/// Module: my_coin +module hstar::faucet_coin { + use sui::coin::{Self, TreasuryCap, Coin}; + use sui::url::new_unsafe; + + public struct FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: FAUCET_COIN, ctx: &mut TxContext) { + // use my github avatar as the token icon + let icon_url = new_unsafe(std::ascii::string(b"https://avatars.githubusercontent.com/u/4043284")); + let (treasury, metadata) = coin::create_currency(witness, + 6, // decimals + b"HSTAR_FAUCET_COIN", // symbol + b"hstar faucet coin", // name + b"hstar's faucet coin", // description, + option::some(icon_url), // icon_url + ctx); + transfer::public_freeze_object(metadata); + // Import! Everyone can mint this token + transfer::public_share_object(treasury); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + // mint token + let coin = coin::mint(treasury_cap, amount, ctx); + // transfer to recipient + transfer::public_transfer(coin, recipient) + } + + public entry fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} diff --git a/mover/hstarorg/code/task2/sui_coin/sources/hstar_coin.move b/mover/hstarorg/code/task2/sui_coin/sources/hstar_coin.move new file mode 100644 index 000000000..18be635d9 --- /dev/null +++ b/mover/hstarorg/code/task2/sui_coin/sources/hstar_coin.move @@ -0,0 +1,48 @@ +/// Module: my_coin +module hstar::hstar_coin { + use sui::coin::{Self, TreasuryCap, Coin}; + use sui::url::new_unsafe; + + public struct HSTAR_COIN has drop {} + + /// Module initializer is called once on module publish. A treasury + /// cap is sent to the publisher, who then controls minting and burning + fun init(witness: HSTAR_COIN, ctx: &mut TxContext) { + // use my github avatar as the token icon + let icon_url = new_unsafe(std::ascii::string(b"https://avatars.githubusercontent.com/u/4043284")); + let (treasury, metadata) = coin::create_currency(witness, + 6, // decimals + b"HSTAR_COIN", // symbol + b"hstar coin", // name + b"hstar's coin", // description, + option::some(icon_url), // icon_url + ctx); + transfer::public_freeze_object(metadata); + // Sender has permission to mint token + transfer::public_transfer(treasury, tx_context::sender(ctx)) + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + // mint token + let coin = coin::mint(treasury_cap, amount, ctx); + // transfer to recipient + transfer::public_transfer(coin, recipient) + } + + public entry fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } + + #[test_only] + public fun test_init(ctx: &mut TxContext) { + init(HSTAR_COIN {}, ctx) + } +} diff --git a/mover/hstarorg/code/task2/sui_coin/tests/hstar_coin_tests.move b/mover/hstarorg/code/task2/sui_coin/tests/hstar_coin_tests.move new file mode 100644 index 000000000..5c0e3c042 --- /dev/null +++ b/mover/hstarorg/code/task2/sui_coin/tests/hstar_coin_tests.move @@ -0,0 +1,45 @@ +#[test_only] +module hstar::hstar_coin_tests { + use sui::coin::{TreasuryCap, Coin}; + use hstar::hstar_coin::{Self, HSTAR_COIN}; + use sui::test_scenario::{Self}; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hstar_coin() { + let sender = @0x1; + let mut scenario = test_scenario::begin(sender); + { + hstar_coin::test_init(test_scenario::ctx(&mut scenario)); + }; + + + test_scenario::next_tx(&mut scenario, sender); + { + let mut cap = test_scenario::take_from_sender>(&scenario); + + hstar_coin::mint(&mut cap, 1, sender, test_scenario::ctx(&mut scenario)); + + test_scenario::return_to_address>(sender, cap); + }; + + test_scenario::next_tx(&mut scenario, sender); + { + let mut cap = test_scenario::take_from_sender>(&scenario); + let coin = test_scenario::take_from_sender>(&scenario); + + hstar_coin::burn(&mut cap, coin); + + test_scenario::return_to_address>(sender, cap); + }; + + test_scenario::end(scenario); + } + + #[test, expected_failure(abort_code = hstar::hstar_coin_tests::ENotImplemented)] + fun test_hstar_coin_fail() { + abort ENotImplemented + } +} + diff --git a/mover/hstarorg/code/task3/hstar_nft/Move.lock b/mover/hstarorg/code/task3/hstar_nft/Move.lock new file mode 100644 index 000000000..904cc5d54 --- /dev/null +++ b/mover/hstarorg/code/task3/hstar_nft/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9D3D7B208FEDA8F45B1945A36AB98095DE32FAC6542FCA1BD31F0600F5BD892A" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x229ae9880ffcca821525a39b2dbc5d8cc33ff3b754258f95ac1bfa5e86fa2463" +latest-published-id = "0x229ae9880ffcca821525a39b2dbc5d8cc33ff3b754258f95ac1bfa5e86fa2463" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x2fd04200daa26953880bea43e140694fe02c030f9a44bc2f97b50ca3dde6ee8f" +latest-published-id = "0x2fd04200daa26953880bea43e140694fe02c030f9a44bc2f97b50ca3dde6ee8f" +published-version = "1" diff --git a/mover/hstarorg/code/task3/hstar_nft/Move.toml b/mover/hstarorg/code/task3/hstar_nft/Move.toml new file mode 100644 index 000000000..c1724bf22 --- /dev/null +++ b/mover/hstarorg/code/task3/hstar_nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hstar_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://github.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] +hstar = "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/hstarorg/code/task3/hstar_nft/sources/hstar_nft.move b/mover/hstarorg/code/task3/hstar_nft/sources/hstar_nft.move new file mode 100644 index 000000000..3a75733d3 --- /dev/null +++ b/mover/hstarorg/code/task3/hstar_nft/sources/hstar_nft.move @@ -0,0 +1,77 @@ +module hstar::hstar_nft { + use std::string; + use sui::event; + use sui::url; + use sui::url::{Url}; + + public struct HstarNFT has key, store { + id: UID, + name: string::String, + description: string::String, + url: Url + } + + // events + public struct NFTMintedEvent has copy, drop { + object_id: ID, + recipient: address, + name: string::String + } + + public struct NFTTransferEvent has copy, drop { + object_id: ID, + from: address, + to: address + } + + // update nft description + public entry fun update_desc( + nft: &mut HstarNFT, + new_description: vector, + ) { + nft.description = string::utf8(new_description) + } + + /// Permanently delete `nft` + public entry fun burn(nft: HstarNFT, _: &mut TxContext) { + let HstarNFT { id, name: _, description: _, url: _ } = nft; + object::delete(id) + } + + public entry fun mint( + name: vector, + description: vector, + url: vector, + ctx: &mut TxContext + ) { + let sender = tx_context::sender(ctx); + let nft = HstarNFT { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + url: url::new_unsafe_from_bytes(url) + }; + + event::emit(NFTMintedEvent { + object_id: object::id(&nft), + recipient: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + /// Transfer `nft` to `recipient` + public fun transfer( + nft: HstarNFT, recipient: address, ctx: &mut TxContext + ) { + let sender = tx_context::sender(ctx); + event::emit(NFTTransferEvent { + object_id: object::id(&nft), + from: sender, + to: recipient + }); + + transfer::public_transfer(nft, recipient) + } +} diff --git a/mover/hstarorg/code/task3/hstar_nft/tests/hstar_nft_tests.move b/mover/hstarorg/code/task3/hstar_nft/tests/hstar_nft_tests.move new file mode 100644 index 000000000..4bd548b0e --- /dev/null +++ b/mover/hstarorg/code/task3/hstar_nft/tests/hstar_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hstar_nft::hstar_nft_tests { + // uncomment this line to import the module + // use hstar_nft::hstar_nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hstar_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::hstar_nft::hstar_nft_tests::ENotImplemented)] + fun test_hstar_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/hstarorg/code/task3/images/sui-mint.png b/mover/hstarorg/code/task3/images/sui-mint.png new file mode 100644 index 000000000..9cbe92912 Binary files /dev/null and b/mover/hstarorg/code/task3/images/sui-mint.png differ diff --git a/mover/hstarorg/code/task3/logs/mint.txt b/mover/hstarorg/code/task3/logs/mint.txt new file mode 100644 index 000000000..64ae13393 --- /dev/null +++ b/mover/hstarorg/code/task3/logs/mint.txt @@ -0,0 +1,129 @@ +Transaction Digest: EG1C2munxzqmnJSRKSSY5DWN3Go9uqSjgggxmuSTLjdJ +╭──────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ Gas Owner: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ Gas Budget: 4365200 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Version: 194465260 │ +│ │ Digest: 2Yx2yuS2U6DcYZQNR6wNoVpYzBxAAeayTqn4g4ZhaXCM │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: "Hstar NFT" │ │ +│ │ 1 Pure Arg: Type: vector, Value: "hstar nft desc" │ │ +│ │ 2 Pure Arg: Type: vector, Value: "https://avatars.githubusercontent.com/u/4043284" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: hstar_nft │ │ +│ │ │ Package: 0x2fd04200daa26953880bea43e140694fe02c030f9a44bc2f97b50ca3dde6ee8f │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 2/ObcBZULhGJGfXHLBo1anjd3XPisoSxLMEJ8K3ZClAF91L2vYZJ4RmraJ/zREIx2qvkKlb5MhSsTDsNNWOODw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: EG1C2munxzqmnJSRKSSY5DWN3Go9uqSjgggxmuSTLjdJ │ +│ Status: Success │ +│ Executed Epoch: 416 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x978ab08382c28772d82ea7dd486ce7d994692a66522b2855d6107c28312dfe02 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465261 │ +│ │ Digest: JAPGJBLmFbYvAoTDiAvac6wT4Z3zBKbZZKyh3yNhf77c │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465261 │ +│ │ Digest: Bx1QfuNFrffTR1zKiEVXtocUD3XxPyCry57fepA4huCB │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465261 │ +│ │ Digest: Bx1QfuNFrffTR1zKiEVXtocUD3XxPyCry57fepA4huCB │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2865200 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ DB7LJdCYjpbpC434DR5XMy75x8xvscxdqxmhZ3t4R5eE │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: EG1C2munxzqmnJSRKSSY5DWN3Go9uqSjgggxmuSTLjdJ:0 │ +│ │ PackageID: 0x2fd04200daa26953880bea43e140694fe02c030f9a44bc2f97b50ca3dde6ee8f │ +│ │ Transaction Module: hstar_nft │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ EventType: 0x2fd04200daa26953880bea43e140694fe02c030f9a44bc2f97b50ca3dde6ee8f::hstar_nft::NFTMintedEvent │ +│ │ ParsedJSON: │ +│ │ ┌───────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ name │ Hstar NFT │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ object_id │ 0x978ab08382c28772d82ea7dd486ce7d994692a66522b2855d6107c28312dfe02 │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ recipient │ 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ │ +│ │ └───────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x978ab08382c28772d82ea7dd486ce7d994692a66522b2855d6107c28312dfe02 │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ ObjectType: 0x2fd04200daa26953880bea43e140694fe02c030f9a44bc2f97b50ca3dde6ee8f::hstar_nft::HstarNFT │ +│ │ Version: 194465261 │ +│ │ Digest: JAPGJBLmFbYvAoTDiAvac6wT4Z3zBKbZZKyh3yNhf77c │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 194465261 │ +│ │ Digest: Bx1QfuNFrffTR1zKiEVXtocUD3XxPyCry57fepA4huCB │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2637080 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ \ No newline at end of file diff --git a/mover/hstarorg/code/task3/logs/publish.txt b/mover/hstarorg/code/task3/logs/publish.txt new file mode 100644 index 000000000..eca3f8faf --- /dev/null +++ b/mover/hstarorg/code/task3/logs/publish.txt @@ -0,0 +1,129 @@ +Transaction Digest: DB7LJdCYjpbpC434DR5XMy75x8xvscxdqxmhZ3t4R5eE +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ Gas Owner: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ Gas Budget: 12922800 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Version: 194465259 │ +│ │ Digest: E6htmLFJxqFPua7dPfNXVMKRChk9shPFXvmERHNpy5pQ │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 4hCeyJNLP8jmmwH+FoIOa/H7MU3hwKHBRhhRxigw4G6XIVdK1n1220LueYN+13xbdrdecXq/wXFO53pRq6jcBw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: DB7LJdCYjpbpC434DR5XMy75x8xvscxdqxmhZ3t4R5eE │ +│ Status: Success │ +│ Executed Epoch: 416 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x2fd04200daa26953880bea43e140694fe02c030f9a44bc2f97b50ca3dde6ee8f │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: HegRzeEY9sauqm4vvnvJRcc4QhRjxADNdD2QKDw6wXay │ +│ └── │ +│ ┌── │ +│ │ ID: 0xc1b0d8d4786c8e8e85efaf0b326d9aefcfe7e68d692ced936f661bada847f609 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465260 │ +│ │ Digest: H71aPQhNV2JA1VBvhZWhStfodma1qwqQpT9HoPLQcx7a │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465260 │ +│ │ Digest: 2Yx2yuS2U6DcYZQNR6wNoVpYzBxAAeayTqn4g4ZhaXCM │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465260 │ +│ │ Digest: 2Yx2yuS2U6DcYZQNR6wNoVpYzBxAAeayTqn4g4ZhaXCM │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 11422800 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 9G7U22fg6xPKa71ijvw1FbZJ5rs3xZCoLnkyrHLaBDPX │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xc1b0d8d4786c8e8e85efaf0b326d9aefcfe7e68d692ced936f661bada847f609 │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 194465260 │ +│ │ Digest: H71aPQhNV2JA1VBvhZWhStfodma1qwqQpT9HoPLQcx7a │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 194465260 │ +│ │ Digest: 2Yx2yuS2U6DcYZQNR6wNoVpYzBxAAeayTqn4g4ZhaXCM │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x2fd04200daa26953880bea43e140694fe02c030f9a44bc2f97b50ca3dde6ee8f │ +│ │ Version: 1 │ +│ │ Digest: HegRzeEY9sauqm4vvnvJRcc4QhRjxADNdD2QKDw6wXay │ +│ │ Modules: hstar_nft │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -11194680 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/hstarorg/code/task3/logs/transfer.txt b/mover/hstarorg/code/task3/logs/transfer.txt new file mode 100644 index 000000000..5802a2538 --- /dev/null +++ b/mover/hstarorg/code/task3/logs/transfer.txt @@ -0,0 +1,125 @@ +Transaction Digest: Ciik5ZzC83zHcJpzB9ekJb2gwo2JPwJuGiE4AdiboJ7t +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ Gas Owner: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ Gas Budget: 2506772 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Version: 194465261 │ +│ │ Digest: Bx1QfuNFrffTR1zKiEVXtocUD3XxPyCry57fepA4huCB │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x978ab08382c28772d82ea7dd486ce7d994692a66522b2855d6107c28312dfe02 │ │ +│ │ 1 Pure Arg: Type: address, Value: "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: transfer │ │ +│ │ │ Module: hstar_nft │ │ +│ │ │ Package: 0x2fd04200daa26953880bea43e140694fe02c030f9a44bc2f97b50ca3dde6ee8f │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 7ol2FZoJmyKkOsD6/akDuvVPXcz835518yW9Hw6hHSlW2FSstw+bR3xyjxN0gW4gzY2Q2rSDtaZZ9s/W/mGCCg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: Ciik5ZzC83zHcJpzB9ekJb2gwo2JPwJuGiE4AdiboJ7t │ +│ Status: Success │ +│ Executed Epoch: 416 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465262 │ +│ │ Digest: 5jY17nCBmGqKChsF7CMTRkKX6gRySmxBJiZ3SUJ7vMu1 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x978ab08382c28772d82ea7dd486ce7d994692a66522b2855d6107c28312dfe02 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ Version: 194465262 │ +│ │ Digest: Go9Lsuhkif4UnNBBREiRHAxBNZcgmmknJybMWC9KMw6K │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ Version: 194465262 │ +│ │ Digest: 5jY17nCBmGqKChsF7CMTRkKX6gRySmxBJiZ3SUJ7vMu1 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2865200 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 2836548 MIST │ +│ Non-refundable Storage Fee: 28652 MIST │ +│ │ +│ Transaction Dependencies: │ +│ DB7LJdCYjpbpC434DR5XMy75x8xvscxdqxmhZ3t4R5eE │ +│ EG1C2munxzqmnJSRKSSY5DWN3Go9uqSjgggxmuSTLjdJ │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: Ciik5ZzC83zHcJpzB9ekJb2gwo2JPwJuGiE4AdiboJ7t:0 │ +│ │ PackageID: 0x2fd04200daa26953880bea43e140694fe02c030f9a44bc2f97b50ca3dde6ee8f │ +│ │ Transaction Module: hstar_nft │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ EventType: 0x2fd04200daa26953880bea43e140694fe02c030f9a44bc2f97b50ca3dde6ee8f::hstar_nft::NFTTransferEvent │ +│ │ ParsedJSON: │ +│ │ ┌───────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ from │ 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ object_id │ 0x978ab08382c28772d82ea7dd486ce7d994692a66522b2855d6107c28312dfe02 │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ to │ 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 │ │ +│ │ └───────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x211f6c114caf7d0a47ef6f5fb8c3ba34ba02e14648cd0f8be7fdac70a04bc45c │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 194465262 │ +│ │ Digest: 5jY17nCBmGqKChsF7CMTRkKX6gRySmxBJiZ3SUJ7vMu1 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x978ab08382c28772d82ea7dd486ce7d994692a66522b2855d6107c28312dfe02 │ +│ │ Sender: 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ ObjectType: 0x2fd04200daa26953880bea43e140694fe02c030f9a44bc2f97b50ca3dde6ee8f::hstar_nft::HstarNFT │ +│ │ Version: 194465262 │ +│ │ Digest: Go9Lsuhkif4UnNBBREiRHAxBNZcgmmknJybMWC9KMw6K │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -778652 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ \ No newline at end of file diff --git a/mover/hstarorg/notes/Task1-Note.md b/mover/hstarorg/notes/Task1-Note.md new file mode 100644 index 000000000..9dfed0082 --- /dev/null +++ b/mover/hstarorg/notes/Task1-Note.md @@ -0,0 +1,38 @@ +1. 安装钱包 Sui Wallet + * 本地生成钱包: `sui client new-address ed25519` +2. 安装 Sui: `brew install sui` +3. Sui 网络环境 + * 主网(mainnet): https://fullnode.mainnet.sui.io:443 + * 测试网(testnet): https://fullnode.testnet.sui.io:443 + * 开发网(devnet): https://fullnode.devnet.sui.io:443 + * 本地网(localnet): http://0.0.0.0:9000 + * 生成本地网络配置文件: `sui genesis` + * 启动本地网: `sui start` + * 查看客户端环境: `sui client envs` + * 测试本地网络: +```bash + curl --location --request POST 'http://127.0.0.1:9000' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "jsonrpc": "2.0", + "id": 1, + "method": "sui_getTotalTransactionBlocks", + "params": [] +}' +``` +5. 领取测试币 + * 激活网络: `sui client switch --env local`,其中 env 是网络名称,可通过 `sui client envs` 查看 + * 领取测试币:`sui client faucet --address 0x7456bc01b777214947ac935bad71f75a7b7b09352ad99877d15de56530df1408 --url http://127.0.0.1:9000` + * 创建新的网络: `sui client new-env --alias testnet --rpc https://fullnode.testnet.sui.io:443` +6. 领取测试币2 + * 直接加入 discord 领取,找到 `testnet-faucet` channel,发送: `!faucet 0x7456bc01b777214947ac935bad71f75a7b7b09352ad99877d15de56530df1408` + * dev 同理,channel 名为:`devnet-faucet` + * 另外,在 sui wallet 的设置页面,切换网络到 testnet\devent 之后,也有领取测试币的按钮 +7. 区块浏览器 + * 主网: https://suiscan.xyz/mainnet/home ,devnet测试网: https://suiscan.xyz/devnet/home +8. 合约开发' + * Move VSC 插件: `move-analyzer`,并安装 LSP: `cargo install --git https://github.com/move-language/move move-analyzer` + * 创建合约项目: `sui move new hello_move` + * 构建: `sui move build` + * 测试: `sui move test` + * 部署合约: `sui client publish` \ No newline at end of file diff --git a/mover/hstarorg/notes/Task2-Note.md b/mover/hstarorg/notes/Task2-Note.md new file mode 100644 index 000000000..1b5e50b8f --- /dev/null +++ b/mover/hstarorg/notes/Task2-Note.md @@ -0,0 +1,69 @@ +**核心目标是创建两个 Coin,并部署到主网** + +1. 通过 `sui move new sui_coin` 创建合约项目 +2. Move & Sui 学习资料 + * https://move-book.com/index.html + * https://examples.sui.io/basics/init-function.html + * https://docs.sui.io/guides/developer/sui-101/create-coin +3. 部署 +```bash +# 添加主网环境 +sui client new-env --alias mainnet --rpc https://fullnode.mainnet.sui.io:443 + +# 激活主网环境 +sui client switch --env mainnet + +# 执行发布 +sui client publish +``` +4. 合约调用 +```bash +sui client call --function mint --module mycoin --package --args --gas-budget + +# Mint Hstar Coin (100个) +sui client call --function mint --module hstar_coin --package 0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad --args 0x0121dfa128e2f330a59349b62131d92d3e4bf361050743874a350e6bd2b8007e 100000000 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 + +# Mint Hstar Faucet Coin (200个) +sui client call --function mint --module faucet_coin --package 0x1fead036b0e07882f7c127996c481a703de68071bd6a09a7ce49b8298e8d38ad --args 0x94630b425addf51541d382d3982f2935f464d0cc88f01430bf94c08dd17607cb 200000000 0xfb5a2e9c0cef2d6aa6e01ac671ddb4761ea97852abccb39591a204f5438c66c6 +``` + + +## 开发环境 +* VSC 插件(sui-move-analyzer): https://marketplace.visualstudio.com/items?itemName=MoveBit.sui-move-analyzer +* LSP(move): `cargo install --git http://github.com/movebit/sui-move-analyzer --branch master sui-move-analyzer` +* 一直没在 VSC 跑通代码格式化,如果有知道的,可以告诉我下 + +RustRover 也是一种选择(有格式化!!!): +* Move 插件: https://github.com/pontem-network/intellij-move + +## GAS 申请 +```bash +# 查看本地地址 +sui client active-address + +# 申请 gas(需要切换到测试用网络:如 testnet, devnet) +sui client faucet + +# 检查gas +sui client gas + +# 查看本地地址(私钥地址:~/.sui/sui_config/sui.keystore) +sui keytool list + +# 转换地址私钥: https://github.com/sui-foundation/sips/blob/main/sips/sip-15.md +sui keytool convert +``` + +## 典型问题 + +### 1. move-analyzer 插件报错: `Error parsing '[package]' section of manifest` +VSCode 安装 `move-analyzer` 并按照流程 `cargo install --git https://github.com/move-language/move move-analyzer` 安装 LSP 之后,会遇到如上错误 + +解决办法: sui 文档散乱,选错插件了。请换用 sui-move-analyzer + +相关链接: +* https://github.com/move-language/move/issues/801 +* https://github.com/move-language/move/issues/1109 + + +## 2. VSC 代码格式化(暂未找到方案) \ No newline at end of file diff --git a/mover/hstarorg/notes/Task3-Note.md b/mover/hstarorg/notes/Task3-Note.md new file mode 100644 index 000000000..8619745cd --- /dev/null +++ b/mover/hstarorg/notes/Task3-Note.md @@ -0,0 +1,24 @@ +**核心目标是创建一个 NFT Collection,并部署到主网** +1. `sui move new hstar_nft` 创建项目 +2. 调用(testnet) +```bash +# mint nft +sui client call --function mint --module hstar_nft --package 0x229ae9880ffcca821525a39b2dbc5d8cc33ff3b754258f95ac1bfa5e86fa2463 --args "Hstar NFT" "hstar nft desc" "https://avatars.githubusercontent.com/u/4043284" --gas-budget 5000000 + +# get nft info +sui client object 0x4af7574224a7acb047aa4d2c6fd4f6317b6d504a5c8703a7eddda9fac1c9fa4f + +# transfer +sui client call --function transfer --module hstar_nft --package 0x229ae9880ffcca821525a39b2dbc5d8cc33ff3b754258f95ac1bfa5e86fa2463 --args 0x4af7574224a7acb047aa4d2c6fd4f6317b6d504a5c8703a7eddda9fac1c9fa4f 0x7456bc01b777214947ac935bad71f75a7b7b09352ad99877d15de56530df1408 +``` +3. 调用(mainnet) +```bash +# mint +sui client call --function mint --module hstar_nft --package 0x2fd04200daa26953880bea43e140694fe02c030f9a44bc2f97b50ca3dde6ee8f --args "Hstar NFT" "hstar nft desc" "https://avatars.githubusercontent.com/u/4043284" --gas-budget 5000000 + +# transfer +sui client call --function transfer --module hstar_nft --package 0x2fd04200daa26953880bea43e140694fe02c030f9a44bc2f97b50ca3dde6ee8f --args 0x978ab08382c28772d82ea7dd486ce7d994692a66522b2855d6107c28312dfe02 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 +``` + +## 参考资料 +* sui 前端调用文档: https://sdk.mystenlabs.com/typescript \ No newline at end of file diff --git a/mover/huisq/code/task7/Move.lock b/mover/huisq/code/task7/Move.lock new file mode 100644 index 000000000..a559ce456 --- /dev/null +++ b/mover/huisq/code/task7/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "60ED2B08562863E03B32E589CB9D813832DBE08E722E777386028AACAA9C2B4A" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x89dca6b9c3e2f8b3fb645118a1cbcf7655c764cfd884bcb1633cde54a5864993" +latest-published-id = "0x89dca6b9c3e2f8b3fb645118a1cbcf7655c764cfd884bcb1633cde54a5864993" +published-version = "1" diff --git a/mover/huisq/code/task7/Move.toml b/mover/huisq/code/task7/Move.toml new file mode 100644 index 000000000..767a6440b --- /dev/null +++ b/mover/huisq/code/task7/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "check_in" +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/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] +check_in = "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/huisq/code/task7/sources/check_in.move b/mover/huisq/code/task7/sources/check_in.move new file mode 100644 index 000000000..04420da55 --- /dev/null +++ b/mover/huisq/code/task7/sources/check_in.move @@ -0,0 +1,74 @@ +module check_in::check_in { + use std::ascii::{String, string}; + use std::string; + use std::vector; + use sui::event; + use sui::object; + use sui::random; + use sui::random::Random; + use sui::transfer::share_object; + use sui::tx_context::{Self, TxContext}; + + const ESTRING: u64 = 0; + + public struct Flag has copy, drop { + sender: address, + flag: bool, + ture_num: u64, + github_id: String + } + + public struct FlagString has key { + id: UID, + str: String, + ture_num: u64 + } + + fun init(ctx: &mut TxContext) { + let flag_str = FlagString { + id: object::new(ctx), + str: string(b"LetsMoveCTF"), + ture_num: 0 + }; + share_object(flag_str); + } + + + entry fun get_flag( + string: String, + github_id: String, + flag_str: &mut FlagString, + rand: &Random, + ctx: &mut TxContext + ) { + assert!(string == flag_str.str, ESTRING); + + flag_str.str = getRandomString(rand, ctx); + + flag_str.ture_num = flag_str.ture_num + 1; + + event::emit(Flag { + sender: tx_context::sender(ctx), + flag: true, + ture_num: flag_str.ture_num, + github_id + }); + } + + + fun getRandomString(rand: &Random, ctx: &mut TxContext): String { + let mut gen = random::new_generator(rand, ctx); + + let mut str_len = random::generate_u8_in_range(&mut gen, 4, 30); + + let mut rand: vector = b""; + while (str_len != 0) { + let rand_num = random::generate_u8_in_range(&mut gen, 34, 126); + vector::push_back(&mut rand, rand_num); + str_len = str_len - 1; + }; + + string(rand) + } +} + diff --git a/mover/huisq/code/task7/tests/check_in_tests.move b/mover/huisq/code/task7/tests/check_in_tests.move new file mode 100644 index 000000000..acc72e7a2 --- /dev/null +++ b/mover/huisq/code/task7/tests/check_in_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module check_in::check_in_tests { + // uncomment this line to import the module + // use check_in::check_in; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_check_in() { + // pass + } + + #[test, expected_failure(abort_code = ::check_in::check_in_tests::ENotImplemented)] + fun test_check_in_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/huisq/readme.md b/mover/huisq/readme.md index 1bb4cf6a3..d0ae871dc 100644 --- a/mover/huisq/readme.md +++ b/mover/huisq/readme.md @@ -33,4 +33,10 @@ - [x] call swap hash: [BHVbXaXhzQ7xhAttdp5bCogjTPf4dAEhtT18DqkVudo6](https://suiscan.xyz/mainnet/tx/BHVbXaXhzQ7xhAttdp5bCogjTPf4dAEhtT18DqkVudo6) ## 06 SDK PTB -- [x] save hash : [BnWJzpGGM98xRRGppRshcN4jqmFe2rWcgiCYFv3BAUjt](https://suiscan.xyz/mainnet/tx/BnWJzpGGM98xRRGppRshcN4jqmFe2rWcgiCYFv3BAUjt) \ No newline at end of file +- [x] save hash : [BnWJzpGGM98xRRGppRshcN4jqmFe2rWcgiCYFv3BAUjt](https://suiscan.xyz/mainnet/tx/BnWJzpGGM98xRRGppRshcN4jqmFe2rWcgiCYFv3BAUjt) + +## 07 CHECK IN +- [x] package id : [0x89dca6b9c3e2f8b3fb645118a1cbcf7655c764cfd884bcb1633cde54a5864993](https://suiscan.xyz/testnet/object/0x89dca6b9c3e2f8b3fb645118a1cbcf7655c764cfd884bcb1633cde54a5864993) +- [x] FlagString : [0x697b994add9ace52d02c0ccd329856d8a2630b39e064fe36ea01bd3bd8130915](https://suiscan.xyz/testnet/object/0x697b994add9ace52d02c0ccd329856d8a2630b39e064fe36ea01bd3bd8130915) +- [x] Transaction Hash of get_flag call : [5J3uBKdqDHiJL9HPYWUWCceDaHPanSFZZBPEUSbmUrD] (https://suiscan.xyz/testnet/tx/5J3uBKdqDHiJL9HPYWUWCceDaHPanSFZZBPEUSbmUrD) +- [x] Event: [5J3uBKdqDHiJL9HPYWUWCceDaHPanSFZZBPEUSbmUrD:0] \ No newline at end of file diff --git a/mover/imdia/code/task1/Move.lock b/mover/imdia/code/task1/Move.lock new file mode 100644 index 000000000..527bd6edd --- /dev/null +++ b/mover/imdia/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2E267C18D553336099CDD31F7063857679825E46CD06EC67CC7F7FB0C20317C1" +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.28.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xa4321e15d5b64ed525781b8be865f0ba8f4d3d3bdd1846a006bd8925509dbcb1" +latest-published-id = "0xa4321e15d5b64ed525781b8be865f0ba8f4d3d3bdd1846a006bd8925509dbcb1" +published-version = "1" diff --git a/mover/imdia/code/task1/Move.toml b/mover/imdia/code/task1/Move.toml new file mode 100644 index 000000000..e75e497eb --- /dev/null +++ b/mover/imdia/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1" +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] +task1 = "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/imdia/code/task1/output.log b/mover/imdia/code/task1/output.log new file mode 100644 index 000000000..f66e24e60 --- /dev/null +++ b/mover/imdia/code/task1/output.log @@ -0,0 +1,143 @@ +Transaction Digest: EB4mqcWgSm6Qcfa85fvbAZuC7WLBvRQTFoiuXva6NDnk +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Owner: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0xb2f98213f4f3440aaffd10ef552220d7f69cc1518542f60eae0e694ebcd9b924 │ +│ │ Version: 1471191 │ +│ │ Digest: 9igNKGZkpFvx9qmMuuYvuFVTMCg9QurARAQ9aXhnMfxN │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ sLK3tKgn6lfBnjD6aFglB0EWtHuCXZCj7zKX/kfzoQIDRZz3AbnRkFgvJWLzqe2vISv0CW1X+865eMylMhL3Cg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: EB4mqcWgSm6Qcfa85fvbAZuC7WLBvRQTFoiuXva6NDnk │ +│ Status: Success │ +│ Executed Epoch: 439 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x8d2dbba89dfe7e0af19b83e2ee97f5570ef4c81bebaeb76f914c0b5b071ac3c9 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 1471192 │ +│ │ Digest: 2FAidTqWT8QcuCGb6yhGcbrUVCsr982ngXFNeXzKq9h7 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xa4321e15d5b64ed525781b8be865f0ba8f4d3d3bdd1846a006bd8925509dbcb1 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: HVoH1Ux2ffiGU4VTp2V7brcoJPYuM8x3s1BPQz5tQ1TC │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf87409486065d6c21a5da84402bb038430164fec8b0365fc34af817be03f6568 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 1471192 │ +│ │ Digest: 6Sn9zkucRAZh2yd5VNgcxZP2wvgLr2Q3XSwp9NniH5R2 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0xb2f98213f4f3440aaffd10ef552220d7f69cc1518542f60eae0e694ebcd9b924 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 1471192 │ +│ │ Digest: F7oAAVjPfbqsC28YkvCbDYoNWqPZxbjAHAcnbrJaFwk7 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0xb2f98213f4f3440aaffd10ef552220d7f69cc1518542f60eae0e694ebcd9b924 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 1471192 │ +│ │ Digest: F7oAAVjPfbqsC28YkvCbDYoNWqPZxbjAHAcnbrJaFwk7 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 8785600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 58LAir5DDFJ97j7M9gfgw6WCtvcSZFPBhndS4TH8Ck6M │ +│ HWaUuemDR4XMdUow7zgCohGMfuhqxqrnimLv7utXtjmg │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x8d2dbba89dfe7e0af19b83e2ee97f5570ef4c81bebaeb76f914c0b5b071ac3c9 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0xa4321e15d5b64ed525781b8be865f0ba8f4d3d3bdd1846a006bd8925509dbcb1::hello::Hello │ +│ │ Version: 1471192 │ +│ │ Digest: 2FAidTqWT8QcuCGb6yhGcbrUVCsr982ngXFNeXzKq9h7 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xf87409486065d6c21a5da84402bb038430164fec8b0365fc34af817be03f6568 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 1471192 │ +│ │ Digest: 6Sn9zkucRAZh2yd5VNgcxZP2wvgLr2Q3XSwp9NniH5R2 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0xb2f98213f4f3440aaffd10ef552220d7f69cc1518542f60eae0e694ebcd9b924 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 1471192 │ +│ │ Digest: F7oAAVjPfbqsC28YkvCbDYoNWqPZxbjAHAcnbrJaFwk7 │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xa4321e15d5b64ed525781b8be865f0ba8f4d3d3bdd1846a006bd8925509dbcb1 │ +│ │ Version: 1 │ +│ │ Digest: HVoH1Ux2ffiGU4VTp2V7brcoJPYuM8x3s1BPQz5tQ1TC │ +│ │ Modules: hello │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -8807480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/imdia/code/task1/sources/task1.move b/mover/imdia/code/task1/sources/task1.move new file mode 100644 index 000000000..b9bbcf417 --- /dev/null +++ b/mover/imdia/code/task1/sources/task1.move @@ -0,0 +1,19 @@ +/// Module: task1 +module task1::hello { + use std::ascii::{String, string}; + use sui::transfer::transfer; + use sui::tx_context::{sender}; + + public struct Hello has key { + id: UID, + say: String, + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id: object::new(ctx), + say: string(b"imdia"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/imdia/code/task2/Move.lock b/mover/imdia/code/task2/Move.lock new file mode 100644 index 000000000..e121213b2 --- /dev/null +++ b/mover/imdia/code/task2/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E602B0A9D264412FC58309F77F8541C9B21E72AA03A806FB3DCD28F54B80F65A" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x3d323380500929b1577e4489d79322685698b60fcc85d444cb8cc2a300c6d7a2" +latest-published-id = "0x3d323380500929b1577e4489d79322685698b60fcc85d444cb8cc2a300c6d7a2" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b" +latest-published-id = "0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b" +published-version = "1" diff --git a/mover/imdia/code/task2/Move.toml b/mover/imdia/code/task2/Move.toml new file mode 100644 index 000000000..69d634f3b --- /dev/null +++ b/mover/imdia/code/task2/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "task2" +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)"] +published-at = "0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b" + +[dependencies] +Sui = { git = "https://gitee.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] +task2 = "0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b" + +# 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/imdia/code/task2/notes/coin-mint.test.txt b/mover/imdia/code/task2/notes/coin-mint.test.txt new file mode 100644 index 000000000..26acc1770 --- /dev/null +++ b/mover/imdia/code/task2/notes/coin-mint.test.txt @@ -0,0 +1,133 @@ +Transaction Digest: DnvDwKFA6wzEHcT29EpqqxSE3jg2Ec95B6UN4GAsmGTd +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Owner: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0xb2f98213f4f3440aaffd10ef552220d7f69cc1518542f60eae0e694ebcd9b924 │ +│ │ Version: 1471193 │ +│ │ Digest: DuGSrTFbXWK4L2Dfm931a64C5mSEzpD6GuwrM2K8HAQB │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x851c867dd38cd62a5dcc420c703a113bff12b60eb18df331003945117eed087a │ │ +│ │ 1 Pure Arg: Type: u64, Value: "10000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: coin │ │ +│ │ │ Package: 0x3d323380500929b1577e4489d79322685698b60fcc85d444cb8cc2a300c6d7a2 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ bmxokeVxDVBz2/UoKUPArVmfQ0rH48J1e9CXUbaH577+P3TGjrji7sNgbeMqkllY8FgpiS6u8fb67owQSBL9DQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: DnvDwKFA6wzEHcT29EpqqxSE3jg2Ec95B6UN4GAsmGTd │ +│ Status: Success │ +│ Executed Epoch: 443 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x5f0afe28f5ddfaa7acbe2a03101f7b988bdd0a8d915289fe3a270974f9e598b8 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ Version: 1471194 │ +│ │ Digest: H9j4vbA2fJHeso2at2wVDkq4L1jKzzxkMaNrPpjJwgWx │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x851c867dd38cd62a5dcc420c703a113bff12b60eb18df331003945117eed087a │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 1471194 │ +│ │ Digest: 8Q96KaWZCDTB1woQ7otuxDYmDMudpcGAftD9aMtCgeTh │ +│ └── │ +│ ┌── │ +│ │ ID: 0xb2f98213f4f3440aaffd10ef552220d7f69cc1518542f60eae0e694ebcd9b924 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 1471194 │ +│ │ Digest: 8a2DU5ksGFqsozyaHCEDFHuxiTHaGY13qrkfZeC6JZyP │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0xb2f98213f4f3440aaffd10ef552220d7f69cc1518542f60eae0e694ebcd9b924 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 1471194 │ +│ │ Digest: 8a2DU5ksGFqsozyaHCEDFHuxiTHaGY13qrkfZeC6JZyP │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4012800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2663496 MIST │ +│ Non-refundable Storage Fee: 26904 MIST │ +│ │ +│ Transaction Dependencies: │ +│ J1qkVVQpwjNu3CL8jXkqBJfNpd2c6ppfjbUHfKHR7ZbQ │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x5f0afe28f5ddfaa7acbe2a03101f7b988bdd0a8d915289fe3a270974f9e598b8 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x3d323380500929b1577e4489d79322685698b60fcc85d444cb8cc2a300c6d7a2::coin::COIN> │ +│ │ Version: 1471194 │ +│ │ Digest: H9j4vbA2fJHeso2at2wVDkq4L1jKzzxkMaNrPpjJwgWx │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x851c867dd38cd62a5dcc420c703a113bff12b60eb18df331003945117eed087a │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x3d323380500929b1577e4489d79322685698b60fcc85d444cb8cc2a300c6d7a2::coin::COIN> │ +│ │ Version: 1471194 │ +│ │ Digest: 8Q96KaWZCDTB1woQ7otuxDYmDMudpcGAftD9aMtCgeTh │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xb2f98213f4f3440aaffd10ef552220d7f69cc1518542f60eae0e694ebcd9b924 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 1471194 │ +│ │ Digest: 8a2DU5ksGFqsozyaHCEDFHuxiTHaGY13qrkfZeC6JZyP │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2349304 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ CoinType: 0x3d323380500929b1577e4489d79322685698b60fcc85d444cb8cc2a300c6d7a2::coin::COIN │ +│ │ Amount: 10000 │ +│ └── │ +╰───────────────────────────────────────────────────────── diff --git a/mover/imdia/code/task2/notes/coin_mint.main.log b/mover/imdia/code/task2/notes/coin_mint.main.log new file mode 100644 index 000000000..47786bbd6 --- /dev/null +++ b/mover/imdia/code/task2/notes/coin_mint.main.log @@ -0,0 +1,134 @@ +Transaction Digest: 2kcpnzg9J3DXofhP9BMMjTMDWWWcdRYtG4gtLa1yzHjT +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Owner: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Version: 308908064 │ +│ │ Digest: EfyeZZKt6evmWvWy1XyJG3tdSKnbSReVTEFDW37rvPE6 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0xa1b21559ae42c53b175540472e19aa9adb787571bc97ca1cf690d07ac74f582a │ │ +│ │ 1 Pure Arg: Type: u64, Value: "10000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: coin │ │ +│ │ │ Package: 0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ gBCp1cTbismeiKNG1orGdxb1FRV5K4GHqtcWNIgpNq+lCPHc5CDiq5Hq2YraqCRibTVzk6XyoNAmae6F+aoMAA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 2kcpnzg9J3DXofhP9BMMjTMDWWWcdRYtG4gtLa1yzHjT │ +│ Status: Success │ +│ Executed Epoch: 471 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xbe06ed3f42867f8e0401bf19b40f2f954ad1a0c8fe7eb85d1f3adad19e40557a │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ Version: 308908065 │ +│ │ Digest: 54BayCVFvVQgwVSxcay8qK9M3ZP1tRUsB8ankmHg76Fd │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908065 │ +│ │ Digest: 4orqx4GXgEfuYNzrsuUn2bcEyx7JcGi4DTGU8GAWANDn │ +│ └── │ +│ ┌── │ +│ │ ID: 0xa1b21559ae42c53b175540472e19aa9adb787571bc97ca1cf690d07ac74f582a │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908065 │ +│ │ Digest: BhhmagDqThuuDgsBjmCj32m3p4xUqKE1A9B6wHtrD3CL │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908065 │ +│ │ Digest: 4orqx4GXgEfuYNzrsuUn2bcEyx7JcGi4DTGU8GAWANDn │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4012800 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 2663496 MIST │ +│ Non-refundable Storage Fee: 26904 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 8qLt9KGFen2R1yfJqmMQmpyLKFvxhiVsjuCV9rx4wP4P │ +│ Fiqq1oiy9j17NkBJFLwVSgFDGwjE7oKWTEsae5PeGYsg │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xbe06ed3f42867f8e0401bf19b40f2f954ad1a0c8fe7eb85d1f3adad19e40557a │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b::coin::COIN> │ +│ │ Version: 308908065 │ +│ │ Digest: 54BayCVFvVQgwVSxcay8qK9M3ZP1tRUsB8ankmHg76Fd │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 308908065 │ +│ │ Digest: 4orqx4GXgEfuYNzrsuUn2bcEyx7JcGi4DTGU8GAWANDn │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xa1b21559ae42c53b175540472e19aa9adb787571bc97ca1cf690d07ac74f582a │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b::coin::COIN> │ +│ │ Version: 308908065 │ +│ │ Digest: BhhmagDqThuuDgsBjmCj32m3p4xUqKE1A9B6wHtrD3CL │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2107304 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ CoinType: 0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b::coin::COIN │ +│ │ Amount: 10000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/imdia/code/task2/notes/faucet_mint.main.log b/mover/imdia/code/task2/notes/faucet_mint.main.log new file mode 100644 index 000000000..8beba34f5 --- /dev/null +++ b/mover/imdia/code/task2/notes/faucet_mint.main.log @@ -0,0 +1,139 @@ +Transaction Digest: 7PZv78dXqyTfrWaTHRRkEY4NQH9pHHkwfw6DDkvSxxrS +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Owner: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Version: 308908062 │ +│ │ Digest: EzkQGVJX2Z1iz2egunpENHfDhdwJjJMwQeKAcM5DTPqg │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x4e9a5e6b2851042d64841e607aded5df09a76c262b36230761281dc999e1a55a │ │ +│ │ 1 Pure Arg: Type: u64, Value: "10000000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: faucet_coin │ │ +│ │ │ Package: 0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ hEBiF0GNzPWcONWeI+oX17V0YCAM243DJfNjD15jUWAJNMA/SGulNQX4KkLRsCWev+1H82VyZ1usnGXwYqnjAQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 7PZv78dXqyTfrWaTHRRkEY4NQH9pHHkwfw6DDkvSxxrS │ +│ Status: Success │ +│ Executed Epoch: 471 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x7292518d281f13e221f18c5b890903374e3bcf91ed8d2830785f239b5db34e7b │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908063 │ +│ │ Digest: 9D8b2QycJWFVPzF3d9ydTWm6euLnyfRopUWfysS9VKDU │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908063 │ +│ │ Digest: jm4PG6VTFMmucvRq6zEToXWuSB8y9BCMJb6a5zDS8M8 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x4e9a5e6b2851042d64841e607aded5df09a76c262b36230761281dc999e1a55a │ +│ │ Owner: Shared( 308908062 ) │ +│ │ Version: 308908063 │ +│ │ Digest: 8isGR3tLtpRe6T5Cp9Yh1NQGRHpxSniymM47PyqqriAU │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x4e9a5e6b2851042d64841e607aded5df09a76c262b36230761281dc999e1a55a │ +│ │ Version: 308908062 │ +│ │ Digest: 5oFP6CYtUuUJULk2EykTwp8MQrdQAz73HDN5tGV99rv7 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908063 │ +│ │ Digest: jm4PG6VTFMmucvRq6zEToXWuSB8y9BCMJb6a5zDS8M8 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4225600 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 2768832 MIST │ +│ Non-refundable Storage Fee: 27968 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 8qLt9KGFen2R1yfJqmMQmpyLKFvxhiVsjuCV9rx4wP4P │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x7292518d281f13e221f18c5b890903374e3bcf91ed8d2830785f239b5db34e7b │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b::faucet_coin::FAUCET_COIN> │ +│ │ Version: 308908063 │ +│ │ Digest: 9D8b2QycJWFVPzF3d9ydTWm6euLnyfRopUWfysS9VKDU │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 308908063 │ +│ │ Digest: jm4PG6VTFMmucvRq6zEToXWuSB8y9BCMJb6a5zDS8M8 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x4e9a5e6b2851042d64841e607aded5df09a76c262b36230761281dc999e1a55a │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Shared( 308908062 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b::faucet_coin::FAUCET_COIN> │ +│ │ Version: 308908063 │ +│ │ Digest: 8isGR3tLtpRe6T5Cp9Yh1NQGRHpxSniymM47PyqqriAU │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2214768 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b::faucet_coin::FAUCET_COIN │ +│ │ Amount: 10000000000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/imdia/code/task2/notes/faucet_mint.test.txt b/mover/imdia/code/task2/notes/faucet_mint.test.txt new file mode 100644 index 000000000..e1a36e854 --- /dev/null +++ b/mover/imdia/code/task2/notes/faucet_mint.test.txt @@ -0,0 +1,140 @@ +Transaction Digest: 52SviPbqzCLkciLXgfYE4mbfP6P4hVhHk4rNShSSAh8E +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Owner: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0xb2f98213f4f3440aaffd10ef552220d7f69cc1518542f60eae0e694ebcd9b924 │ +│ │ Version: 1471194 │ +│ │ Digest: 8a2DU5ksGFqsozyaHCEDFHuxiTHaGY13qrkfZeC6JZyP │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x100a344067fd469b3ff31e433f959df14f92cbf2a479a5a5978213a776fcc457 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "10000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: faucet_coin │ │ +│ │ │ Package: 0x3d323380500929b1577e4489d79322685698b60fcc85d444cb8cc2a300c6d7a2 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 0FnB0pc1tZ7YrPGmwa4BqdPle85Tr3P4OnyDuM2TKPULHxpB8iISPNCh/q2QIzClCp33Iesss5LK5MKN1KOsAg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 52SviPbqzCLkciLXgfYE4mbfP6P4hVhHk4rNShSSAh8E │ +│ Status: Success │ +│ Executed Epoch: 443 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x434975a5f87e2969bede59f0ab333c7cfc6591c0a1804a7a146ec5c547afcacf │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ Version: 1471195 │ +│ │ Digest: 2r3Zvr8t3wKiSgqGWXnZVUZMHjwWL1HB4dZNofQgGBfN │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x100a344067fd469b3ff31e433f959df14f92cbf2a479a5a5978213a776fcc457 │ +│ │ Owner: Shared( 1471193 ) │ +│ │ Version: 1471195 │ +│ │ Digest: E9qCq37aHRYRTSjC2N6p9KKt2G9Z2eJiX52CQAjx1PvP │ +│ └── │ +│ ┌── │ +│ │ ID: 0xb2f98213f4f3440aaffd10ef552220d7f69cc1518542f60eae0e694ebcd9b924 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 1471195 │ +│ │ Digest: 3PEKxSHREd4Wo4H4SASSXi8VZrL9jTLFrTL1d2NLeHqz │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x100a344067fd469b3ff31e433f959df14f92cbf2a479a5a5978213a776fcc457 │ +│ │ Version: 1471193 │ +│ │ Digest: pp4vFiraSNdt9SRtNXA7T1qNrzn1kQJqL8nVNQ84BNw │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0xb2f98213f4f3440aaffd10ef552220d7f69cc1518542f60eae0e694ebcd9b924 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 1471195 │ +│ │ Digest: 3PEKxSHREd4Wo4H4SASSXi8VZrL9jTLFrTL1d2NLeHqz │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4225600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2768832 MIST │ +│ Non-refundable Storage Fee: 27968 MIST │ +│ │ +│ Transaction Dependencies: │ +│ DnvDwKFA6wzEHcT29EpqqxSE3jg2Ec95B6UN4GAsmGTd │ +│ J1qkVVQpwjNu3CL8jXkqBJfNpd2c6ppfjbUHfKHR7ZbQ │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x434975a5f87e2969bede59f0ab333c7cfc6591c0a1804a7a146ec5c547afcacf │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x3d323380500929b1577e4489d79322685698b60fcc85d444cb8cc2a300c6d7a2::faucet_coin::FAUCET_COIN> │ +│ │ Version: 1471195 │ +│ │ Digest: 2r3Zvr8t3wKiSgqGWXnZVUZMHjwWL1HB4dZNofQgGBfN │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x100a344067fd469b3ff31e433f959df14f92cbf2a479a5a5978213a776fcc457 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Shared( 1471193 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x3d323380500929b1577e4489d79322685698b60fcc85d444cb8cc2a300c6d7a2::faucet_coin::FAUCET_COIN> │ +│ │ Version: 1471195 │ +│ │ Digest: E9qCq37aHRYRTSjC2N6p9KKt2G9Z2eJiX52CQAjx1PvP │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xb2f98213f4f3440aaffd10ef552220d7f69cc1518542f60eae0e694ebcd9b924 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 1471195 │ +│ │ Digest: 3PEKxSHREd4Wo4H4SASSXi8VZrL9jTLFrTL1d2NLeHqz │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2456768 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ CoinType: 0x3d323380500929b1577e4489d79322685698b60fcc85d444cb8cc2a300c6d7a2::faucet_coin::FAUCET_COIN │ +│ │ Amount: 10000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/imdia/code/task2/notes/faucet_mint1.main.log b/mover/imdia/code/task2/notes/faucet_mint1.main.log new file mode 100644 index 000000000..5682deda5 --- /dev/null +++ b/mover/imdia/code/task2/notes/faucet_mint1.main.log @@ -0,0 +1,140 @@ +Transaction Digest: Fiqq1oiy9j17NkBJFLwVSgFDGwjE7oKWTEsae5PeGYsg +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Owner: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Version: 308908063 │ +│ │ Digest: jm4PG6VTFMmucvRq6zEToXWuSB8y9BCMJb6a5zDS8M8 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x4e9a5e6b2851042d64841e607aded5df09a76c262b36230761281dc999e1a55a │ │ +│ │ 1 Pure Arg: Type: u64, Value: "10000000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: faucet_coin │ │ +│ │ │ Package: 0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ EgQqFo5hNGyijahaE8SaKbQbr3diIqKybhx0NkglrM51hkPgOPJYQ+BMHmjeb+sRCunV1D/3aFTD4eNX+7nNDg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: Fiqq1oiy9j17NkBJFLwVSgFDGwjE7oKWTEsae5PeGYsg │ +│ Status: Success │ +│ Executed Epoch: 471 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x99964d160c4bcf7c1917bd6ade00539cae52b032613248b3e78b70a44add8764 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ Version: 308908064 │ +│ │ Digest: 56tWCYJySmJffchPD1gWvy55xKrXigD6SRxuttd1mzf4 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908064 │ +│ │ Digest: EfyeZZKt6evmWvWy1XyJG3tdSKnbSReVTEFDW37rvPE6 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x4e9a5e6b2851042d64841e607aded5df09a76c262b36230761281dc999e1a55a │ +│ │ Owner: Shared( 308908062 ) │ +│ │ Version: 308908064 │ +│ │ Digest: EgsQ1PHwRK77PNAVADxUcAgEpwY7P2fe4Cw66ymhxtr9 │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x4e9a5e6b2851042d64841e607aded5df09a76c262b36230761281dc999e1a55a │ +│ │ Version: 308908063 │ +│ │ Digest: 8isGR3tLtpRe6T5Cp9Yh1NQGRHpxSniymM47PyqqriAU │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908064 │ +│ │ Digest: EfyeZZKt6evmWvWy1XyJG3tdSKnbSReVTEFDW37rvPE6 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4225600 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 2768832 MIST │ +│ Non-refundable Storage Fee: 27968 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 7PZv78dXqyTfrWaTHRRkEY4NQH9pHHkwfw6DDkvSxxrS │ +│ 8qLt9KGFen2R1yfJqmMQmpyLKFvxhiVsjuCV9rx4wP4P │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x99964d160c4bcf7c1917bd6ade00539cae52b032613248b3e78b70a44add8764 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b::faucet_coin::FAUCET_COIN> │ +│ │ Version: 308908064 │ +│ │ Digest: 56tWCYJySmJffchPD1gWvy55xKrXigD6SRxuttd1mzf4 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 308908064 │ +│ │ Digest: EfyeZZKt6evmWvWy1XyJG3tdSKnbSReVTEFDW37rvPE6 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x4e9a5e6b2851042d64841e607aded5df09a76c262b36230761281dc999e1a55a │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Shared( 308908062 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b::faucet_coin::FAUCET_COIN> │ +│ │ Version: 308908064 │ +│ │ Digest: EgsQ1PHwRK77PNAVADxUcAgEpwY7P2fe4Cw66ymhxtr9 │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2214768 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ CoinType: 0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b::faucet_coin::FAUCET_COIN │ +│ │ Amount: 10000000000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/imdia/code/task2/output.test.log b/mover/imdia/code/task2/output.test.log new file mode 100644 index 000000000..b75e822b5 --- /dev/null +++ b/mover/imdia/code/task2/output.test.log @@ -0,0 +1,185 @@ +Transaction Digest: J1qkVVQpwjNu3CL8jXkqBJfNpd2c6ppfjbUHfKHR7ZbQ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Owner: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0xb2f98213f4f3440aaffd10ef552220d7f69cc1518542f60eae0e694ebcd9b924 │ +│ │ Version: 1471192 │ +│ │ Digest: F7oAAVjPfbqsC28YkvCbDYoNWqPZxbjAHAcnbrJaFwk7 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 6AydyMnvdPTxlOHywVH9uNgmMEJc1yIzhG14gC0aK1I0YkkuxQRcZln4ynbndNOSXXzjBzQwv1M1wBQKvq9UDA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: J1qkVVQpwjNu3CL8jXkqBJfNpd2c6ppfjbUHfKHR7ZbQ │ +│ Status: Success │ +│ Executed Epoch: 443 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x06abcf128d6fc3bf4bd6dd528f452eb2c323eda17f522ba9a42e34383ea92ffa │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 1471193 │ +│ │ Digest: 7pnTdk8NaiuASQnZDqnDGiieqLu5HGyAXHpie5zBw5Q9 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x100a344067fd469b3ff31e433f959df14f92cbf2a479a5a5978213a776fcc457 │ +│ │ Owner: Shared( 1471193 ) │ +│ │ Version: 1471193 │ +│ │ Digest: pp4vFiraSNdt9SRtNXA7T1qNrzn1kQJqL8nVNQ84BNw │ +│ └── │ +│ ┌── │ +│ │ ID: 0x3d323380500929b1577e4489d79322685698b60fcc85d444cb8cc2a300c6d7a2 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 8W1fiKQhSzcmtnTJFHDZD3285CRYPQfvHZ73MK9aPD48 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x527afe5da5f66d8feaddfafa9116ad372c3d795757a4586b44c4b6c4cb3c19c1 │ +│ │ Owner: Immutable │ +│ │ Version: 1471193 │ +│ │ Digest: FAZyEB8M7GmW5s3oShfkTQJhR7E95ZfbBjVsbtYzgFvY │ +│ └── │ +│ ┌── │ +│ │ ID: 0x851c867dd38cd62a5dcc420c703a113bff12b60eb18df331003945117eed087a │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 1471193 │ +│ │ Digest: 8Tsb8bzMDoma7AWQS5ykRSjzv9WkquHDSoUsWymPBHPP │ +│ └── │ +│ ┌── │ +│ │ ID: 0x9cb96f6675db4d09b5c642efdf3ac6f1e37b89d11f040e5ce190380fce609036 │ +│ │ Owner: Immutable │ +│ │ Version: 1471193 │ +│ │ Digest: 4o49oT7Yk3JHTe5zB6mWzrqTH1yX4ccnTqjpMGiZcRrw │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0xb2f98213f4f3440aaffd10ef552220d7f69cc1518542f60eae0e694ebcd9b924 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 1471193 │ +│ │ Digest: DuGSrTFbXWK4L2Dfm931a64C5mSEzpD6GuwrM2K8HAQB │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0xb2f98213f4f3440aaffd10ef552220d7f69cc1518542f60eae0e694ebcd9b924 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 1471193 │ +│ │ Digest: DuGSrTFbXWK4L2Dfm931a64C5mSEzpD6GuwrM2K8HAQB │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 23484000 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 58LAir5DDFJ97j7M9gfgw6WCtvcSZFPBhndS4TH8Ck6M │ +│ EB4mqcWgSm6Qcfa85fvbAZuC7WLBvRQTFoiuXva6NDnk │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x06abcf128d6fc3bf4bd6dd528f452eb2c323eda17f522ba9a42e34383ea92ffa │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 1471193 │ +│ │ Digest: 7pnTdk8NaiuASQnZDqnDGiieqLu5HGyAXHpie5zBw5Q9 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x100a344067fd469b3ff31e433f959df14f92cbf2a479a5a5978213a776fcc457 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Shared( 1471193 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x3d323380500929b1577e4489d79322685698b60fcc85d444cb8cc2a300c6d7a2::faucet_coin::FAUCET_COIN> │ +│ │ Version: 1471193 │ +│ │ Digest: pp4vFiraSNdt9SRtNXA7T1qNrzn1kQJqL8nVNQ84BNw │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x527afe5da5f66d8feaddfafa9116ad372c3d795757a4586b44c4b6c4cb3c19c1 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x3d323380500929b1577e4489d79322685698b60fcc85d444cb8cc2a300c6d7a2::coin::COIN> │ +│ │ Version: 1471193 │ +│ │ Digest: FAZyEB8M7GmW5s3oShfkTQJhR7E95ZfbBjVsbtYzgFvY │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x851c867dd38cd62a5dcc420c703a113bff12b60eb18df331003945117eed087a │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x3d323380500929b1577e4489d79322685698b60fcc85d444cb8cc2a300c6d7a2::coin::COIN> │ +│ │ Version: 1471193 │ +│ │ Digest: 8Tsb8bzMDoma7AWQS5ykRSjzv9WkquHDSoUsWymPBHPP │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x9cb96f6675db4d09b5c642efdf3ac6f1e37b89d11f040e5ce190380fce609036 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x3d323380500929b1577e4489d79322685698b60fcc85d444cb8cc2a300c6d7a2::faucet_coin::FAUCET_COIN> │ +│ │ Version: 1471193 │ +│ │ Digest: 4o49oT7Yk3JHTe5zB6mWzrqTH1yX4ccnTqjpMGiZcRrw │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0xb2f98213f4f3440aaffd10ef552220d7f69cc1518542f60eae0e694ebcd9b924 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 1471193 │ +│ │ Digest: DuGSrTFbXWK4L2Dfm931a64C5mSEzpD6GuwrM2K8HAQB │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x3d323380500929b1577e4489d79322685698b60fcc85d444cb8cc2a300c6d7a2 │ +│ │ Version: 1 │ +│ │ Digest: 8W1fiKQhSzcmtnTJFHDZD3285CRYPQfvHZ73MK9aPD48 │ +│ │ Modules: coin, faucet_coin │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -23505880 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/imdia/code/task2/publish.main.log b/mover/imdia/code/task2/publish.main.log new file mode 100644 index 000000000..76926bce5 --- /dev/null +++ b/mover/imdia/code/task2/publish.main.log @@ -0,0 +1,185 @@ +Transaction Digest: 8qLt9KGFen2R1yfJqmMQmpyLKFvxhiVsjuCV9rx4wP4P +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Owner: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Version: 308908061 │ +│ │ Digest: 2VsA7xB9rpLtwiviTuTB7j86x1BUTua43nbfv2NHEF1m │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 3JFDhW1XiPkccSgK8/gsaCUq15RwgKjIa0vX+cDgG3qRHLOM/Os7OOcHDeSqlPSDK7tB7I0gJKZh5mBGyiSCCg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 8qLt9KGFen2R1yfJqmMQmpyLKFvxhiVsjuCV9rx4wP4P │ +│ Status: Success │ +│ Executed Epoch: 471 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x2169f4c548565b9df6a8c2e029fa46bf143a82b1ac01b029d1015274dc995835 │ +│ │ Owner: Immutable │ +│ │ Version: 308908062 │ +│ │ Digest: pgYXo5kf5E9sC2o9aHMNXq8CyTvHS7kJTaN4w7PhLpp │ +│ └── │ +│ ┌── │ +│ │ ID: 0x4e9a5e6b2851042d64841e607aded5df09a76c262b36230761281dc999e1a55a │ +│ │ Owner: Shared( 308908062 ) │ +│ │ Version: 308908062 │ +│ │ Digest: 5oFP6CYtUuUJULk2EykTwp8MQrdQAz73HDN5tGV99rv7 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 2Svg6azN8EB3raJHaYc1MoA8vsHqQD548hw4JgSC4b8z │ +│ └── │ +│ ┌── │ +│ │ ID: 0xa0ec2dc413de394916e8229e5f82fef64b18583818247f93aad1ffb8d59acaec │ +│ │ Owner: Immutable │ +│ │ Version: 308908062 │ +│ │ Digest: 6NK9H2oGTewspQ7TtYp9Ev1tA6n5hH8AmDmNMqwJpX19 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xa1b21559ae42c53b175540472e19aa9adb787571bc97ca1cf690d07ac74f582a │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908062 │ +│ │ Digest: A5grSEXFVxJAJJN4vLqUN71quBz6m7p9EyVMhDwDdhja │ +│ └── │ +│ ┌── │ +│ │ ID: 0xdf3c5be61c25af9cc092d78aa06fb31b0c22b6c435d42046271abf886d32585b │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908062 │ +│ │ Digest: 7sPT19CHCYVDnHRb25P476GjqoiE7ZmYoPeAW7fwJ9kW │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908062 │ +│ │ Digest: EzkQGVJX2Z1iz2egunpENHfDhdwJjJMwQeKAcM5DTPqg │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908062 │ +│ │ Digest: EzkQGVJX2Z1iz2egunpENHfDhdwJjJMwQeKAcM5DTPqg │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 23484000 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 7xVipyUK46Pj6XFoAeeKXYMeHjgGXEvHaNB3eCvHKHvr │ +│ 9xmraeM5wyRGqviKSR8xBZqqmWqmqNTeP1Ukjf9ziuvU │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x2169f4c548565b9df6a8c2e029fa46bf143a82b1ac01b029d1015274dc995835 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b::coin::COIN> │ +│ │ Version: 308908062 │ +│ │ Digest: pgYXo5kf5E9sC2o9aHMNXq8CyTvHS7kJTaN4w7PhLpp │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x4e9a5e6b2851042d64841e607aded5df09a76c262b36230761281dc999e1a55a │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Shared( 308908062 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b::faucet_coin::FAUCET_COIN> │ +│ │ Version: 308908062 │ +│ │ Digest: 5oFP6CYtUuUJULk2EykTwp8MQrdQAz73HDN5tGV99rv7 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xa0ec2dc413de394916e8229e5f82fef64b18583818247f93aad1ffb8d59acaec │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b::faucet_coin::FAUCET_COIN> │ +│ │ Version: 308908062 │ +│ │ Digest: 6NK9H2oGTewspQ7TtYp9Ev1tA6n5hH8AmDmNMqwJpX19 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xa1b21559ae42c53b175540472e19aa9adb787571bc97ca1cf690d07ac74f582a │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b::coin::COIN> │ +│ │ Version: 308908062 │ +│ │ Digest: A5grSEXFVxJAJJN4vLqUN71quBz6m7p9EyVMhDwDdhja │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xdf3c5be61c25af9cc092d78aa06fb31b0c22b6c435d42046271abf886d32585b │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 308908062 │ +│ │ Digest: 7sPT19CHCYVDnHRb25P476GjqoiE7ZmYoPeAW7fwJ9kW │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 308908062 │ +│ │ Digest: EzkQGVJX2Z1iz2egunpENHfDhdwJjJMwQeKAcM5DTPqg │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b │ +│ │ Version: 1 │ +│ │ Digest: 2Svg6azN8EB3raJHaYc1MoA8vsHqQD548hw4JgSC4b8z │ +│ │ Modules: coin, faucet_coin │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -23263880 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/imdia/code/task2/sources/coin.move b/mover/imdia/code/task2/sources/coin.move new file mode 100644 index 000000000..6ecf80839 --- /dev/null +++ b/mover/imdia/code/task2/sources/coin.move @@ -0,0 +1,37 @@ +/// Module: task2 +module task2::coin { + use sui::coin::{Self, Coin, TreasuryCap}; + + public struct COIN has drop {} + + fun init(witness: COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 2, + b"COIN", + b"IMDIA", + b"learning move", + option::none(), + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} diff --git a/mover/imdia/code/task2/sources/faucet_coin.move b/mover/imdia/code/task2/sources/faucet_coin.move new file mode 100644 index 000000000..31c40dad9 --- /dev/null +++ b/mover/imdia/code/task2/sources/faucet_coin.move @@ -0,0 +1,32 @@ +module task2::faucet_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + + public struct FAUCET_COIN has drop {} + fun init(witness: FAUCET_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"FAUCET_COIN", + b"FAUCET_COIN", + b"imdia's first faucet coin", + option::none(), + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury_cap); + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} diff --git a/mover/imdia/code/task3/Move.lock b/mover/imdia/code/task3/Move.lock new file mode 100644 index 000000000..dfe384b59 --- /dev/null +++ b/mover/imdia/code/task3/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "EAB89BE9AB696DF2B08888FFE8F2835679FEAFD4876B876C5A1761F7FF3BD6DF" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x2c6bda444ed347f4fe7cc42421a209974b07bb5591da363e61cc05eb3d3c4b33" +latest-published-id = "0x2c6bda444ed347f4fe7cc42421a209974b07bb5591da363e61cc05eb3d3c4b33" +published-version = "1" diff --git a/mover/imdia/code/task3/Move.toml b/mover/imdia/code/task3/Move.toml new file mode 100644 index 000000000..084bf0aba --- /dev/null +++ b/mover/imdia/code/task3/Move.toml @@ -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://gitee.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" + diff --git a/mover/imdia/code/task3/notes/mint.log b/mover/imdia/code/task3/notes/mint.log new file mode 100644 index 000000000..25ea91c76 --- /dev/null +++ b/mover/imdia/code/task3/notes/mint.log @@ -0,0 +1,129 @@ +Transaction Digest: 4YBgaodPrgDvH6gQvqbnY1egwUjtkp9uYMt79Q8oSPkH +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Owner: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Budget: 7500000 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Version: 308908066 │ +│ │ Digest: GMMot6EiPgCjGF13f5wfkxcHArv21Y4qudaiEv7jQNeW │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: "imdia" │ │ +│ │ 1 Pure Arg: Type: vector, Value: "nft power by imdia" │ │ +│ │ 2 Pure Arg: Type: vector, Value: "https://avatars.githubusercontent.com/u/44016918?u=2ba82f1b909ebb257abe79c3342c6c2120bf74f7&v=4&size=256" │ │ +│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: nft_imdia │ │ +│ │ │ Package: 0x2c6bda444ed347f4fe7cc42421a209974b07bb5591da363e61cc05eb3d3c4b33 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ di9A+4D4XbJ4l1VIs4V7//gPcGi1XlWBW7WUKRYX+2rrcL9o84Yz7F5gZPYc29t4y2PlH9E9Rd8o5etDIVdUDw== │ +│ │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 4YBgaodPrgDvH6gQvqbnY1egwUjtkp9uYMt79Q8oSPkH │ +│ Status: Success │ +│ Executed Epoch: 471 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x9319fe23689c64009da25f1572c7ec8a53ff3bb50c039dc797f08854b399bf59 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908067 │ +│ │ Digest: 13UgrUEeaswT49GX3RSUnPH6DU78PF8oRF1mX18gGNgj │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908067 │ +│ │ Digest: 5ufL29JqcnwX5wjsy58drBvxXJzLXndtAA8TMMNwQaJo │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908067 │ +│ │ Digest: 5ufL29JqcnwX5wjsy58drBvxXJzLXndtAA8TMMNwQaJo │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3298400 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ En8TCQAU2a4udKCczxuq9h3f13nR1YxpUBtTy9YegKw6 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 4YBgaodPrgDvH6gQvqbnY1egwUjtkp9uYMt79Q8oSPkH:0 │ +│ │ PackageID: 0x2c6bda444ed347f4fe7cc42421a209974b07bb5591da363e61cc05eb3d3c4b33 │ +│ │ Transaction Module: nft_imdia │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ EventType: 0x2c6bda444ed347f4fe7cc42421a209974b07bb5591da363e61cc05eb3d3c4b33::nft_imdia::ImdiaNFTMintEvent │ +│ │ ParsedJSON: │ +│ │ ┌───────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ creator │ 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ name │ imdia │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ object_id │ 0x9319fe23689c64009da25f1572c7ec8a53ff3bb50c039dc797f08854b399bf59 │ │ +│ │ └───────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x9319fe23689c64009da25f1572c7ec8a53ff3bb50c039dc797f08854b399bf59 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2c6bda444ed347f4fe7cc42421a209974b07bb5591da363e61cc05eb3d3c4b33::nft_imdia::ImdiaNFT │ +│ │ Version: 308908067 │ +│ │ Digest: 13UgrUEeaswT49GX3RSUnPH6DU78PF8oRF1mX18gGNgj │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 308908067 │ +│ │ Digest: 5ufL29JqcnwX5wjsy58drBvxXJzLXndtAA8TMMNwQaJo │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -3078280 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/imdia/code/task3/notes/publish.log b/mover/imdia/code/task3/notes/publish.log new file mode 100644 index 000000000..876bfca36 --- /dev/null +++ b/mover/imdia/code/task3/notes/publish.log @@ -0,0 +1,129 @@ +Transaction Digest: En8TCQAU2a4udKCczxuq9h3f13nR1YxpUBtTy9YegKw6 +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Owner: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Version: 308908065 │ +│ │ Digest: 4orqx4GXgEfuYNzrsuUn2bcEyx7JcGi4DTGU8GAWANDn │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 5zxYj4y5PhALKifRoLG0DBZYqtlLeT+myy/5AtpFDlBv1CzELonHo5gCXBXXTnUJJdxrsAbXmOCRZoXXsyhgBA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: En8TCQAU2a4udKCczxuq9h3f13nR1YxpUBtTy9YegKw6 │ +│ Status: Success │ +│ Executed Epoch: 471 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x2c6bda444ed347f4fe7cc42421a209974b07bb5591da363e61cc05eb3d3c4b33 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: G5sPvb1m64MjQuWnf9CJ5aZ9rP6WxWEbS4P4aBJ5MMfv │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd3fb9efedcb89e3aed36eb6f6f21d10b453c9b4e90eb74fb709ec758c050aec4 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908066 │ +│ │ Digest: Bg63zT4JBfQPgd3A1kYX4cEcKNiG6HnetJFw4gCr8Qvk │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908066 │ +│ │ Digest: GMMot6EiPgCjGF13f5wfkxcHArv21Y4qudaiEv7jQNeW │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908066 │ +│ │ Digest: GMMot6EiPgCjGF13f5wfkxcHArv21Y4qudaiEv7jQNeW │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 12707200 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 2kcpnzg9J3DXofhP9BMMjTMDWWWcdRYtG4gtLa1yzHjT │ +│ 7xVipyUK46Pj6XFoAeeKXYMeHjgGXEvHaNB3eCvHKHvr │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xd3fb9efedcb89e3aed36eb6f6f21d10b453c9b4e90eb74fb709ec758c050aec4 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 308908066 │ +│ │ Digest: Bg63zT4JBfQPgd3A1kYX4cEcKNiG6HnetJFw4gCr8Qvk │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 308908066 │ +│ │ Digest: GMMot6EiPgCjGF13f5wfkxcHArv21Y4qudaiEv7jQNeW │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x2c6bda444ed347f4fe7cc42421a209974b07bb5591da363e61cc05eb3d3c4b33 │ +│ │ Version: 1 │ +│ │ Digest: G5sPvb1m64MjQuWnf9CJ5aZ9rP6WxWEbS4P4aBJ5MMfv │ +│ │ Modules: nft_imdia │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -12487080 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/imdia/code/task3/notes/send_nft.log b/mover/imdia/code/task3/notes/send_nft.log new file mode 100644 index 000000000..225db1191 --- /dev/null +++ b/mover/imdia/code/task3/notes/send_nft.log @@ -0,0 +1,125 @@ +Transaction Digest: GmDdsMmiVsri9hbbGoBcHnBY57hRbPThYov3JJConqPc +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Owner: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Budget: 7500000 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Version: 308908067 │ +│ │ Digest: 5ufL29JqcnwX5wjsy58drBvxXJzLXndtAA8TMMNwQaJo │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x9319fe23689c64009da25f1572c7ec8a53ff3bb50c039dc797f08854b399bf59 │ │ +│ │ 1 Pure Arg: Type: address, Value: "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: transfer_nft │ │ +│ │ │ Module: nft_imdia │ │ +│ │ │ Package: 0x2c6bda444ed347f4fe7cc42421a209974b07bb5591da363e61cc05eb3d3c4b33 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ q8UdRpKGwM4dCKcRYiAN1jEFmrorIvS7cFl83JEcMBv2s0iR9NSxa6JXOQGZ9/wuMcytmfw76Ma8PzmM1tGBCQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: GmDdsMmiVsri9hbbGoBcHnBY57hRbPThYov3JJConqPc │ +│ Status: Success │ +│ Executed Epoch: 471 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908068 │ +│ │ Digest: GSiFvFNRHiZ9oYBzWHtBCKAt6njgF8aVYJmDBMrgp1hS │ +│ └── │ +│ ┌── │ +│ │ ID: 0x9319fe23689c64009da25f1572c7ec8a53ff3bb50c039dc797f08854b399bf59 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ Version: 308908068 │ +│ │ Digest: 8GXzVRyr3387a973XCcHAecXQfpxmHuJj8ombGUKQQYT │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908068 │ +│ │ Digest: GSiFvFNRHiZ9oYBzWHtBCKAt6njgF8aVYJmDBMrgp1hS │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3298400 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 3265416 MIST │ +│ Non-refundable Storage Fee: 32984 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 4YBgaodPrgDvH6gQvqbnY1egwUjtkp9uYMt79Q8oSPkH │ +│ En8TCQAU2a4udKCczxuq9h3f13nR1YxpUBtTy9YegKw6 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: GmDdsMmiVsri9hbbGoBcHnBY57hRbPThYov3JJConqPc:0 │ +│ │ PackageID: 0x2c6bda444ed347f4fe7cc42421a209974b07bb5591da363e61cc05eb3d3c4b33 │ +│ │ Transaction Module: nft_imdia │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ EventType: 0x2c6bda444ed347f4fe7cc42421a209974b07bb5591da363e61cc05eb3d3c4b33::nft_imdia::ImdiaNFTTransferEvent │ +│ │ ParsedJSON: │ +│ │ ┌───────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ from │ 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ object_id │ 0x9319fe23689c64009da25f1572c7ec8a53ff3bb50c039dc797f08854b399bf59 │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ to │ 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 │ │ +│ │ └───────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 308908068 │ +│ │ Digest: GSiFvFNRHiZ9oYBzWHtBCKAt6njgF8aVYJmDBMrgp1hS │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x9319fe23689c64009da25f1572c7ec8a53ff3bb50c039dc797f08854b399bf59 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ ObjectType: 0x2c6bda444ed347f4fe7cc42421a209974b07bb5591da363e61cc05eb3d3c4b33::nft_imdia::ImdiaNFT │ +│ │ Version: 308908068 │ +│ │ Digest: 8GXzVRyr3387a973XCcHAecXQfpxmHuJj8ombGUKQQYT │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -790984 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/imdia/code/task3/sources/task3.move b/mover/imdia/code/task3/sources/task3.move new file mode 100644 index 000000000..f9fcf3c2e --- /dev/null +++ b/mover/imdia/code/task3/sources/task3.move @@ -0,0 +1,92 @@ +/// Module: task3 +module task3::nft_imdia { + use sui::tx_context; + use std::string::{String, Self}; + use sui::event; + use sui::transfer; + use sui::url::{Url, Self}; + + public struct ImdiaNFT has key, store { + id: UID, + name: String, + description: String, + url: Url, + } + + public struct ImdiaNFTTransferEvent has copy, drop { + object_id: ID, + from: address, + to: address, + } + + public struct ImdiaNFTMintEvent has copy, drop { + object_id: ID, + creator: address, + name: String, + } + + public struct ImdiaNFTBurnEvent has copy, drop { + object_id: ID, + } + + public fun name(nft: &ImdiaNFT): String { + nft.name + } + + public fun description(nft: &ImdiaNFT): String { + nft.description + } + + public fun url(nft: &ImdiaNFT): Url { + nft.url + } + + public entry fun mint( + name: vector, + description: vector, + url: vector, + ctx: &mut TxContext, + ) { + let sender = tx_context::sender(ctx); + let nft = ImdiaNFT { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + url: url::new_unsafe_from_bytes(url), + }; + + event::emit(ImdiaNFTMintEvent { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + public entry fun transfer_nft( + nft: ImdiaNFT, + recipient: address, + _: &mut TxContext, + ) { + event::emit(ImdiaNFTTransferEvent { + object_id: object::id(&nft), + from: tx_context::sender(_), + to: recipient, + }); + + transfer::public_transfer(nft, recipient); + } + + public entry fun burn( + nft: ImdiaNFT, + _: &mut TxContext, + ) { + let ImdiaNFT {id, name: _, description: _, url: _} = nft; + event::emit(ImdiaNFTBurnEvent { + object_id: object::uid_to_inner(&id) + }); + + object::delete(id); + } +} diff --git a/mover/imdia/code/task4/Move.lock b/mover/imdia/code/task4/Move.lock new file mode 100644 index 000000000..83b6ba6a6 --- /dev/null +++ b/mover/imdia/code/task4/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "08E725D369560A84904CDFF0021C98C6FCE9CB5A09722DFEC8797778F4227E6C" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "task2" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "task2" +source = { local = "../task2" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.28.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x147bd4512e6ae9fd6e2e733e4a51714ec966be7359be617cf8eb352d79ce723a" +latest-published-id = "0x147bd4512e6ae9fd6e2e733e4a51714ec966be7359be617cf8eb352d79ce723a" +published-version = "1" diff --git a/mover/imdia/code/task4/Move.toml b/mover/imdia/code/task4/Move.toml new file mode 100644 index 000000000..aa9bc7fc5 --- /dev/null +++ b/mover/imdia/code/task4/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "task4" +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/testnet" } +task2 = { local = '../task2' } + +# 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] +task4 = "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/imdia/code/task4/notes/deposit.log b/mover/imdia/code/task4/notes/deposit.log new file mode 100644 index 000000000..4971bc59f --- /dev/null +++ b/mover/imdia/code/task4/notes/deposit.log @@ -0,0 +1,122 @@ +Transaction Digest: 5KD8bPTtwK8kzFr9XY9KHLo7aSW8kyXU34q1zCHmqDmL +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Owner: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Budget: 7500000 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Version: 308908070 │ +│ │ Digest: xw9oUxfkx265wT9DSczNWLRkHGwFy7hAAodTyLaTPbm │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x7292518d281f13e221f18c5b890903374e3bcf91ed8d2830785f239b5db34e7b │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: init_pool │ │ +│ │ │ Module: game │ │ +│ │ │ Package: 0x147bd4512e6ae9fd6e2e733e4a51714ec966be7359be617cf8eb352d79ce723a │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ ICA1h06rkTevtmpMYDLuJGwnxVflNGQ8DHu0Ll4cR33E0ZQSFTemTd7YeVa1zJGd8y7x4RkD43EiU+Df2zCcAg== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 5KD8bPTtwK8kzFr9XY9KHLo7aSW8kyXU34q1zCHmqDmL │ +│ Status: Success │ +│ Executed Epoch: 471 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xb5dad34786e0f1653abbb6e59243503bcee8a0b82006db64d0554a4736706b96 │ +│ │ Owner: Shared( 308908071 ) │ +│ │ Version: 308908071 │ +│ │ Digest: 3nEfg9YVYYwJJ1ZRCuDZ97uh5uHSZWYtRv2VzKN7uoZK │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908071 │ +│ │ Digest: 25L5dhkYaerTArQKNWjzXyzf22Njc6Ju5zrJfuUxcsu2 │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0x7292518d281f13e221f18c5b890903374e3bcf91ed8d2830785f239b5db34e7b │ +│ │ Version: 308908071 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908071 │ +│ │ Digest: 25L5dhkYaerTArQKNWjzXyzf22Njc6Ju5zrJfuUxcsu2 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2348400 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 2392632 MIST │ +│ Non-refundable Storage Fee: 24168 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 5LkUyCruZ1bQx3RS1ysXBkuHYrcC64tksPA7akbP8n2G │ +│ 7PZv78dXqyTfrWaTHRRkEY4NQH9pHHkwfw6DDkvSxxrS │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xb5dad34786e0f1653abbb6e59243503bcee8a0b82006db64d0554a4736706b96 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Shared( 308908071 ) │ +│ │ ObjectType: 0x147bd4512e6ae9fd6e2e733e4a51714ec966be7359be617cf8eb352d79ce723a::game::RewardPool │ +│ │ Version: 308908071 │ +│ │ Digest: 3nEfg9YVYYwJJ1ZRCuDZ97uh5uHSZWYtRv2VzKN7uoZK │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 308908071 │ +│ │ Digest: 25L5dhkYaerTArQKNWjzXyzf22Njc6Ju5zrJfuUxcsu2 │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -713768 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b::faucet_coin::FAUCET_COIN │ +│ │ Amount: -10000000000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/imdia/code/task4/notes/play.log b/mover/imdia/code/task4/notes/play.log new file mode 100644 index 000000000..7d51dedd4 --- /dev/null +++ b/mover/imdia/code/task4/notes/play.log @@ -0,0 +1,163 @@ +Transaction Digest: 3p2Aq7g54RiNH76fSeLMJb5cL6BmRiPK7XPgDdYLsF8Y +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Owner: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Budget: 7500000 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Version: 308908071 │ +│ │ Digest: 25L5dhkYaerTArQKNWjzXyzf22Njc6Ju5zrJfuUxcsu2 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: u8, Value: 2 │ │ +│ │ 1 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000006 │ │ +│ │ 2 Shared Object ID: 0xb5dad34786e0f1653abbb6e59243503bcee8a0b82006db64d0554a4736706b96 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: play │ │ +│ │ │ Module: game │ │ +│ │ │ Package: 0x147bd4512e6ae9fd6e2e733e4a51714ec966be7359be617cf8eb352d79ce723a │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 6t23Jaxy/mLX1AJfPPNG8Vvf16uTVSzNbWhYXwtRI9uTQPw0iCY7E9q/n9D7jOCKnRJ60W6nrKxhLa6MoCR5Dw== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 3p2Aq7g54RiNH76fSeLMJb5cL6BmRiPK7XPgDdYLsF8Y │ +│ Status: Success │ +│ Executed Epoch: 471 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xbeacdbffc308cb17ca588dc5626d078cb27366688b131c375e89570c9d213fb4 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908072 │ +│ │ Digest: DU88aUCHTJzn2eBTdPtMkdv7pyH5tW3ZXgEX93JumddT │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908072 │ +│ │ Digest: HhTUTfuYvwi9KzCSAC7oxLisBXNEBknhHm3c4tnGQ52i │ +│ └── │ +│ ┌── │ +│ │ ID: 0xb5dad34786e0f1653abbb6e59243503bcee8a0b82006db64d0554a4736706b96 │ +│ │ Owner: Shared( 308908071 ) │ +│ │ Version: 308908072 │ +│ │ Digest: 6tDTFuMfLQSBpKsiFcpGeDEZ2gBFdMkctjYcLSh1CaQh │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xb5dad34786e0f1653abbb6e59243503bcee8a0b82006db64d0554a4736706b96 │ +│ │ Version: 308908071 │ +│ │ Digest: 3nEfg9YVYYwJJ1ZRCuDZ97uh5uHSZWYtRv2VzKN7uoZK │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000006 │ +│ │ Version: 42159371 │ +│ │ Digest: 4aKXUwoA3maiCbZXgnDLvM51r4SrXus27CDGBJF41pWx │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908072 │ +│ │ Digest: HhTUTfuYvwi9KzCSAC7oxLisBXNEBknhHm3c4tnGQ52i │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3777200 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 2324916 MIST │ +│ Non-refundable Storage Fee: 23484 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3x8CZSwxrF43FqkLZzqDGU6ouj1i5sJHEp1AmrCkozjt │ +│ 5KD8bPTtwK8kzFr9XY9KHLo7aSW8kyXU34q1zCHmqDmL │ +│ 5LkUyCruZ1bQx3RS1ysXBkuHYrcC64tksPA7akbP8n2G │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 3p2Aq7g54RiNH76fSeLMJb5cL6BmRiPK7XPgDdYLsF8Y:0 │ +│ │ PackageID: 0x147bd4512e6ae9fd6e2e733e4a51714ec966be7359be617cf8eb352d79ce723a │ +│ │ Transaction Module: game │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ EventType: 0x147bd4512e6ae9fd6e2e733e4a51714ec966be7359be617cf8eb352d79ce723a::game::GResultEvent │ +│ │ ParsedJSON: │ +│ │ ┌─────────────────┬──────┐ │ +│ │ │ computer_choice │ 1 │ │ +│ │ ├─────────────────┼──────┤ │ +│ │ │ is_win │ true │ │ +│ │ ├─────────────────┼──────┤ │ +│ │ │ result │ Win │ │ +│ │ ├─────────────────┼──────┤ │ +│ │ │ your_choice │ 2 │ │ +│ │ └─────────────────┴──────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xbeacdbffc308cb17ca588dc5626d078cb27366688b131c375e89570c9d213fb4 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b::faucet_coin::FAUCET_COIN> │ +│ │ Version: 308908072 │ +│ │ Digest: DU88aUCHTJzn2eBTdPtMkdv7pyH5tW3ZXgEX93JumddT │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 308908072 │ +│ │ Digest: HhTUTfuYvwi9KzCSAC7oxLisBXNEBknhHm3c4tnGQ52i │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xb5dad34786e0f1653abbb6e59243503bcee8a0b82006db64d0554a4736706b96 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Shared( 308908071 ) │ +│ │ ObjectType: 0x147bd4512e6ae9fd6e2e733e4a51714ec966be7359be617cf8eb352d79ce723a::game::RewardPool │ +│ │ Version: 308908072 │ +│ │ Digest: 6tDTFuMfLQSBpKsiFcpGeDEZ2gBFdMkctjYcLSh1CaQh │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2210284 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b::faucet_coin::FAUCET_COIN │ +│ │ Amount: 1 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/imdia/code/task4/notes/play1.log b/mover/imdia/code/task4/notes/play1.log new file mode 100644 index 000000000..5afd6411e --- /dev/null +++ b/mover/imdia/code/task4/notes/play1.log @@ -0,0 +1,141 @@ +Transaction Digest: FMVsYT3pQTMdPkhL5MC1fzeg7ekEw14REVVvSQR3aFHD +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Owner: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Budget: 7500000 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Version: 308908072 │ +│ │ Digest: HhTUTfuYvwi9KzCSAC7oxLisBXNEBknhHm3c4tnGQ52i │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: u8, Value: 0 │ │ +│ │ 1 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000006 │ │ +│ │ 2 Shared Object ID: 0xb5dad34786e0f1653abbb6e59243503bcee8a0b82006db64d0554a4736706b96 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: play │ │ +│ │ │ Module: game │ │ +│ │ │ Package: 0x147bd4512e6ae9fd6e2e733e4a51714ec966be7359be617cf8eb352d79ce723a │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 3PptYrjtexsSLQJBUl+Kb0uK/HK4x7OM20Y9oByA+PT3kbYkvAmZtwofy3C37oga15djICTPULI5YgAWEZVGAg== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: FMVsYT3pQTMdPkhL5MC1fzeg7ekEw14REVVvSQR3aFHD │ +│ Status: Success │ +│ Executed Epoch: 471 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908073 │ +│ │ Digest: 9bd4Hq9BUtFNjtCHuYzSxdaZ9gqvKbbYttq3uMsTbr93 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xb5dad34786e0f1653abbb6e59243503bcee8a0b82006db64d0554a4736706b96 │ +│ │ Owner: Shared( 308908071 ) │ +│ │ Version: 308908073 │ +│ │ Digest: 6syMM6N3uYpj8KtuKPQ6dmKkUdWdhYGkFMEJ9dJWUXaP │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xb5dad34786e0f1653abbb6e59243503bcee8a0b82006db64d0554a4736706b96 │ +│ │ Version: 308908072 │ +│ │ Digest: 6tDTFuMfLQSBpKsiFcpGeDEZ2gBFdMkctjYcLSh1CaQh │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000006 │ +│ │ Version: 42161795 │ +│ │ Digest: ATMgXkamqUHxBjunJSP6HBuTtGs2fu4sCPG3vjKuCw9F │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908073 │ +│ │ Digest: 9bd4Hq9BUtFNjtCHuYzSxdaZ9gqvKbbYttq3uMsTbr93 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2348400 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 2324916 MIST │ +│ Non-refundable Storage Fee: 23484 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3p2Aq7g54RiNH76fSeLMJb5cL6BmRiPK7XPgDdYLsF8Y │ +│ 5LkUyCruZ1bQx3RS1ysXBkuHYrcC64tksPA7akbP8n2G │ +│ GVG9Rz4L5oBoTviukrE5MGSGo4Bd3PTaBbgKmDnTFYki │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: FMVsYT3pQTMdPkhL5MC1fzeg7ekEw14REVVvSQR3aFHD:0 │ +│ │ PackageID: 0x147bd4512e6ae9fd6e2e733e4a51714ec966be7359be617cf8eb352d79ce723a │ +│ │ Transaction Module: game │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ EventType: 0x147bd4512e6ae9fd6e2e733e4a51714ec966be7359be617cf8eb352d79ce723a::game::GResultEvent │ +│ │ ParsedJSON: │ +│ │ ┌─────────────────┬───────┐ │ +│ │ │ computer_choice │ 1 │ │ +│ │ ├─────────────────┼───────┤ │ +│ │ │ is_win │ false │ │ +│ │ ├─────────────────┼───────┤ │ +│ │ │ result │ Lose │ │ +│ │ ├─────────────────┼───────┤ │ +│ │ │ your_choice │ 0 │ │ +│ │ └─────────────────┴───────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 308908073 │ +│ │ Digest: 9bd4Hq9BUtFNjtCHuYzSxdaZ9gqvKbbYttq3uMsTbr93 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xb5dad34786e0f1653abbb6e59243503bcee8a0b82006db64d0554a4736706b96 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Shared( 308908071 ) │ +│ │ ObjectType: 0x147bd4512e6ae9fd6e2e733e4a51714ec966be7359be617cf8eb352d79ce723a::game::RewardPool │ +│ │ Version: 308908073 │ +│ │ Digest: 6syMM6N3uYpj8KtuKPQ6dmKkUdWdhYGkFMEJ9dJWUXaP │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -781484 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/imdia/code/task4/notes/publish.log b/mover/imdia/code/task4/notes/publish.log new file mode 100644 index 000000000..c9a71ba32 --- /dev/null +++ b/mover/imdia/code/task4/notes/publish.log @@ -0,0 +1,131 @@ +Transaction Digest: 5LkUyCruZ1bQx3RS1ysXBkuHYrcC64tksPA7akbP8n2G +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Owner: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ Gas Budget: 20000000 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Version: 308908069 │ +│ │ Digest: HRLGKMkrQP6bjVLx9MeXubBzkccoiWFSaydYxcBXJKNC │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ │ 0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ gF5JqoLKVdNg+Y7kb209nr4+VqYXndY0N6kAp59QrQSQu5ZRLEQEiru2ZnCzgAUUZOZ37ocu0T6BjH3695lLAg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 5LkUyCruZ1bQx3RS1ysXBkuHYrcC64tksPA7akbP8n2G │ +│ Status: Success │ +│ Executed Epoch: 471 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x147bd4512e6ae9fd6e2e733e4a51714ec966be7359be617cf8eb352d79ce723a │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: FNyb2AXCEaESovJPtmCsFi2eSRD2ZJUoWY47gaTSZnQK │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf96d857307373c3f5e206e3eaf2aedfead59fc29204b62895df4028720de81d4 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908070 │ +│ │ Digest: 4nHpsEShLtMDu3wotsY2uMCxmT3RTk4rivUJURRw3z4j │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908070 │ +│ │ Digest: xw9oUxfkx265wT9DSczNWLRkHGwFy7hAAodTyLaTPbm │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ Version: 308908070 │ +│ │ Digest: xw9oUxfkx265wT9DSczNWLRkHGwFy7hAAodTyLaTPbm │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 13284800 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 7R95tKwbmzQLa8B3LPb2aMfkSdfHvTsoN7VRFS5AoWJt │ +│ 7xVipyUK46Pj6XFoAeeKXYMeHjgGXEvHaNB3eCvHKHvr │ +│ 8qLt9KGFen2R1yfJqmMQmpyLKFvxhiVsjuCV9rx4wP4P │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xf96d857307373c3f5e206e3eaf2aedfead59fc29204b62895df4028720de81d4 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 308908070 │ +│ │ Digest: 4nHpsEShLtMDu3wotsY2uMCxmT3RTk4rivUJURRw3z4j │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x496348493f043f275b305c6c528c6e4b4438ab94f8b105d3a112398c006ea229 │ +│ │ Sender: 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 308908070 │ +│ │ Digest: xw9oUxfkx265wT9DSczNWLRkHGwFy7hAAodTyLaTPbm │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x147bd4512e6ae9fd6e2e733e4a51714ec966be7359be617cf8eb352d79ce723a │ +│ │ Version: 1 │ +│ │ Digest: FNyb2AXCEaESovJPtmCsFi2eSRD2ZJUoWY47gaTSZnQK │ +│ │ Modules: game │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -13064680 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/imdia/code/task4/sources/task4.move b/mover/imdia/code/task4/sources/task4.move new file mode 100644 index 000000000..85d6934ad --- /dev/null +++ b/mover/imdia/code/task4/sources/task4.move @@ -0,0 +1,64 @@ +/// Module: task4 +module task4::game { + use std::string::{Self, String}; + use sui::clock::{Self, Clock}; + use sui::coin::{Self, Coin, from_balance, into_balance}; + use sui::balance::{Self, Balance}; + use sui::tx_context::{Self, TxContext, sender}; + use sui::event; + use sui::transfer::{share_object, transfer, public_transfer}; + use task2::faucet_coin::FAUCET_COIN; + + const InvalidNumber: u64 = 1; + + public struct GResultEvent has copy, drop { + result: String, + is_win: bool, + your_choice: u8, + computer_choice: u8, + } + + public struct RewardPool has key { + id: UID, + balance: Balance, + } + + fun random_choice(clock: &Clock): u8 { + ( (clock::timestamp_ms(clock) % 3) as u8 ) + } + + public fun play(choice: u8, clock: &Clock, pool: &mut RewardPool, ctx: &mut TxContext){ + assert!(choice < 3, InvalidNumber); + + let computer_choice = random_choice(clock); + let (result, is_win) = if (computer_choice > choice) { + (string::utf8(b"Lose"), false) + } else if (computer_choice == choice) { + (string::utf8(b"Draw"), false) + } else { + (string::utf8(b"Win"), true) + }; + + if (is_win) { + let fee_amount = 1; + let fees = balance::split(&mut pool.balance, fee_amount); + public_transfer(coin::from_balance(fees, ctx), sender(ctx)); + }; + + event::emit(GResultEvent { + result, + is_win, + your_choice: choice, + computer_choice, + }); + } + + public entry fun init_pool(coin: Coin, ctx: &mut TxContext) { + let pool = RewardPool { + id: object::new(ctx), + balance: coin::into_balance(coin), + }; + + share_object(pool); + } +} diff --git a/mover/imdia/images/nft_suiscan_imdia.png b/mover/imdia/images/nft_suiscan_imdia.png new file mode 100644 index 000000000..e7eec4aa8 Binary files /dev/null and b/mover/imdia/images/nft_suiscan_imdia.png differ diff --git a/mover/imdia/images/suiscan_imdia.png b/mover/imdia/images/suiscan_imdia.png new file mode 100644 index 000000000..aeec7e322 Binary files /dev/null and b/mover/imdia/images/suiscan_imdia.png differ diff --git a/mover/imdia/images/suiwallet_imdia.png b/mover/imdia/images/suiwallet_imdia.png new file mode 100644 index 000000000..ff6279cd8 Binary files /dev/null and b/mover/imdia/images/suiwallet_imdia.png differ diff --git a/mover/imdia/readme.md b/mover/imdia/readme.md new file mode 100644 index 000000000..62c572e71 --- /dev/null +++ b/mover/imdia/readme.md @@ -0,0 +1,38 @@ +## 基本信息 +- Sui钱包地址: `0x78444b9e42a6f9bd2544e80656270bfba227d3238154bcded245192a362683bc` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `imdia` + +## 个人简介 +- 工作经验: 1年 +- 技术栈: `Rust` `nodejs` `tailwindcss` `react` +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `@Y8XwQ42qVvUxZGVh` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.28.4-fc0623927416 +- [x] Sui钱包截图: ![Sui钱包截图](./images/suiwallet_imdia.png) +- [x] package id: 0xa4321e15d5b64ed525781b8be865f0ba8f4d3d3bdd1846a006bd8925509dbcb1 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/suiscan_imdia.png) + +## 02 move coin +- [x] My Coin package id : 0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b +- [x] Faucet package id : 0x6b6c7b2c758e0a391cf636013f9ce177f6b81f4834a7d4c472e156d260148a2b +- [x] 转账 `My Coin` hash: 2kcpnzg9J3DXofhP9BMMjTMDWWWcdRYtG4gtLa1yzHjT +- [x] `Faucet Coin` address1 mint hash: Fiqq1oiy9j17NkBJFLwVSgFDGwjE7oKWTEsae5PeGYsg +- [x] `Faucet Coin` address2 mint hash: 52SviPbqzCLkciLXgfYE4mbfP6P4hVhHk4rNShSSAh8E + +## 03 move NFT +- [x] nft package id : 0x2c6bda444ed347f4fe7cc42421a209974b07bb5591da363e61cc05eb3d3c4b33 +- [x] nft object id : 0xd3fb9efedcb89e3aed36eb6f6f21d10b453c9b4e90eb74fb709ec758c050aec4 +- [x] 转账 nft hash: GmDdsMmiVsri9hbbGoBcHnBY57hRbPThYov3JJConqPc +- [x] scan上的NFT截图:![Scan截图](./images/nft_suiscan_imdia.png) + +## 04 Move Game +- [x] game package id : 0x147bd4512e6ae9fd6e2e733e4a51714ec966be7359be617cf8eb352d79ce723a +- [x] deposit Coin hash: 5KD8bPTtwK8kzFr9XY9KHLo7aSW8kyXU34q1zCHmqDmL +- [x] withdraw `Coin` hash: 3p2Aq7g54RiNH76fSeLMJb5cL6BmRiPK7XPgDdYLsF8Y +- [x] play game hash: FMVsYT3pQTMdPkhL5MC1fzeg7ekEw14REVVvSQR3aFHD + diff --git a/mover/isQyoung/code/readme.md b/mover/isQyoung/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/isQyoung/code/task1/hello_move/Move.lock b/mover/isQyoung/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..0798607c5 --- /dev/null +++ b/mover/isQyoung/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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.26.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xf4b4cee5d0687e79def2efb561f17c183e3e526a86382d7db5cf2d33f69d7152" +latest-published-id = "0xf4b4cee5d0687e79def2efb561f17c183e3e526a86382d7db5cf2d33f69d7152" +published-version = "1" diff --git a/mover/isQyoung/code/task1/hello_move/Move.toml b/mover/isQyoung/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/isQyoung/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/isQyoung/code/task1/hello_move/sources/hello_move.move b/mover/isQyoung/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..f379ce4b6 --- /dev/null +++ b/mover/isQyoung/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"isQyoung"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/isQyoung/code/task1/hello_move/tests/hello_move_tests.move b/mover/isQyoung/code/task1/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/isQyoung/code/task1/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/isQyoung/code/task2/faucet_coin/Move.lock b/mover/isQyoung/code/task2/faucet_coin/Move.lock new file mode 100644 index 000000000..38f632be2 --- /dev/null +++ b/mover/isQyoung/code/task2/faucet_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "975865E1298DFAC37DC96A7AF58C6E59A7ECE199D1222B88AA447F902393B6CF" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x2d5da0195bef2cbef4644999afb9b2d5cd0f5b5b6c1f3887f75060a3b821d137" +latest-published-id = "0x2d5da0195bef2cbef4644999afb9b2d5cd0f5b5b6c1f3887f75060a3b821d137" +published-version = "1" diff --git a/mover/isQyoung/code/task2/faucet_coin/Move.toml b/mover/isQyoung/code/task2/faucet_coin/Move.toml new file mode 100644 index 000000000..86ecc467c --- /dev/null +++ b/mover/isQyoung/code/task2/faucet_coin/Move.toml @@ -0,0 +1,40 @@ +[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)"] +published-at = "0x2d5da0195bef2cbef4644999afb9b2d5cd0f5b5b6c1f3887f75060a3b821d137" +# admin = "0x43d00d1c0a9f2621e6e1f58d7f244872b59606afc3b83d4d30a23eff7ad76cf2" +[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] +#faucet_coin = "0x0" +faucet_coin = "0x2d5da0195bef2cbef4644999afb9b2d5cd0f5b5b6c1f3887f75060a3b821d137" + +# 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/isQyoung/code/task2/faucet_coin/sources/faucet_coin.move b/mover/isQyoung/code/task2/faucet_coin/sources/faucet_coin.move new file mode 100644 index 000000000..27c4af2f8 --- /dev/null +++ b/mover/isQyoung/code/task2/faucet_coin/sources/faucet_coin.move @@ -0,0 +1,25 @@ +/// Module: faucet_coin +module faucet_coin::faucet_coin { + use sui::coin::{Self, TreasuryCap}; + + public struct FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: FAUCET_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, 6, b"Q_FC", b"Q_FC", b"Move coin by isQyoung", option::none(), ctx); + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury); + + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } + +} diff --git a/mover/isQyoung/code/task2/faucet_coin/tests/faucet_coin_tests.move b/mover/isQyoung/code/task2/faucet_coin/tests/faucet_coin_tests.move new file mode 100644 index 000000000..88a42bf8e --- /dev/null +++ b/mover/isQyoung/code/task2/faucet_coin/tests/faucet_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[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/isQyoung/code/task2/my_coin/Move.lock b/mover/isQyoung/code/task2/my_coin/Move.lock new file mode 100644 index 000000000..63278d37b --- /dev/null +++ b/mover/isQyoung/code/task2/my_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "0A4652D38CF3C3FDB79EC6C1C98FCFF7B2E933E12B84A1DA267DB28F66AFECE3" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x10a875b82f2809e40b75af3b7d12b161007b90d5653e07e88d516fa229ed0cfa" +latest-published-id = "0x10a875b82f2809e40b75af3b7d12b161007b90d5653e07e88d516fa229ed0cfa" +published-version = "1" diff --git a/mover/isQyoung/code/task2/my_coin/Move.toml b/mover/isQyoung/code/task2/my_coin/Move.toml new file mode 100644 index 000000000..a806f229c --- /dev/null +++ b/mover/isQyoung/code/task2/my_coin/Move.toml @@ -0,0 +1,40 @@ +[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)"] +published-at = "0x10a875b82f2809e40b75af3b7d12b161007b90d5653e07e88d516fa229ed0cfa" +# admin = "0x63e6b9c9e22c0e09492ced54e6e5008e109ee87dcf3714560c38454433cc0344" + +[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] +#my_coin = "0x0" +my_coin = "0x10a875b82f2809e40b75af3b7d12b161007b90d5653e07e88d516fa229ed0cfa" + +# 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/isQyoung/code/task2/my_coin/sources/my_coin.move b/mover/isQyoung/code/task2/my_coin/sources/my_coin.move new file mode 100644 index 000000000..435f9bde1 --- /dev/null +++ b/mover/isQyoung/code/task2/my_coin/sources/my_coin.move @@ -0,0 +1,24 @@ +/// Module: my_coin +module my_coin::my_coin { + use sui::coin::{Self, TreasuryCap}; + + public struct MY_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: MY_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, 6, b"Q_MC", b"Q_MC", b"Move coin by isQyoung", option::none(), ctx); + transfer::public_share_object(metadata); + transfer::public_transfer(treasury, ctx.sender()) + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } +} + diff --git a/mover/isQyoung/code/task2/my_coin/tests/my_coin_tests.move b/mover/isQyoung/code/task2/my_coin/tests/my_coin_tests.move new file mode 100644 index 000000000..4be556acf --- /dev/null +++ b/mover/isQyoung/code/task2/my_coin/tests/my_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[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/isQyoung/code/task3/move_nft/Move.lock b/mover/isQyoung/code/task3/move_nft/Move.lock new file mode 100644 index 000000000..076dabe33 --- /dev/null +++ b/mover/isQyoung/code/task3/move_nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "4540D330C6E846CAE6F9BE6749EE389FEBF0A14ECFBE748ED332A79FDCAF28EE" +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 = "0x106afe9a22dda46d5e91e53202fb45bb820af80444f8404745ba3f867aba1a7c" +latest-published-id = "0x106afe9a22dda46d5e91e53202fb45bb820af80444f8404745ba3f867aba1a7c" +published-version = "1" diff --git a/mover/isQyoung/code/task3/move_nft/Move.toml b/mover/isQyoung/code/task3/move_nft/Move.toml new file mode 100644 index 000000000..eb96b74de --- /dev/null +++ b/mover/isQyoung/code/task3/move_nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "move_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://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] +move_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/isQyoung/code/task3/move_nft/publish.txt b/mover/isQyoung/code/task3/move_nft/publish.txt new file mode 100644 index 000000000..463120f99 --- /dev/null +++ b/mover/isQyoung/code/task3/move_nft/publish.txt @@ -0,0 +1,191 @@ +Transaction Digest: FaR1JMeneL4gnQRKQNTgcYcVyMiAvCocEZ6uTip3ifnm +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Owner: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Budget: 18241200 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Version: 922949 │ +│ │ Digest: HLmR2ML9nRE5JbZ44UxrbNAZawmagXH8FZzmgzGrxx6w │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ B5wPARk42xgYKEQkQBFq2FXtTq9hxX4JZlat2LlC+eLO7Z3jV8JugPKKy8Hz8WqVZJ2s3faQu/S5QUP2Vh0TAQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: FaR1JMeneL4gnQRKQNTgcYcVyMiAvCocEZ6uTip3ifnm │ +│ Status: Success │ +│ Executed Epoch: 407 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x106afe9a22dda46d5e91e53202fb45bb820af80444f8404745ba3f867aba1a7c │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: HgA6RVMwhUzFbpzmWLupJYqoZe8nGaAnnMWsLvabQvvu │ +│ └── │ +│ ┌── │ +│ │ ID: 0x9707d9b9269369e022deb2efc1c4dab5fa643348737b5845562a90f90b45f14c │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 922950 │ +│ │ Digest: E4YTFiJp3dTGfpXnJBqm9NdBQskKgNkHVu4CAz4xbjDS │ +│ └── │ +│ ┌── │ +│ │ ID: 0xc96066f186536298adf904d43aadaee721ab85065d5f28eade2506a1f6b3b666 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 922950 │ +│ │ Digest: DsJBwow65S2B7xrYxsMptSLLxdD5yePa8gBo31nU36Ao │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd529460e7ecf3feba55029e089181c407b967c0352760f3560dbb7f0f8b4fa6b │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 922950 │ +│ │ Digest: ETazDQ39tCWDGitG3DRwAShBfSrwLMAVsLHn88163UHv │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 922950 │ +│ │ Digest: rbPpa3qZcXRfFpxgLeZzLrVek178eiVy3vv5H8uaK9y │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 922950 │ +│ │ Digest: rbPpa3qZcXRfFpxgLeZzLrVek178eiVy3vv5H8uaK9y │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 16241200 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ AAuTBDjTipQtS5PHWbFugZNWHDYXrTranbVT1ytijniw │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: FaR1JMeneL4gnQRKQNTgcYcVyMiAvCocEZ6uTip3ifnm:0 │ +│ │ PackageID: 0x106afe9a22dda46d5e91e53202fb45bb820af80444f8404745ba3f867aba1a7c │ +│ │ Transaction Module: qyoung_nft │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ EventType: 0x2::display::DisplayCreated<0x106afe9a22dda46d5e91e53202fb45bb820af80444f8404745ba3f867aba1a7c::qyoung_nft::Qyoung> │ +│ │ ParsedJSON: │ +│ │ ┌────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ id │ 0xc96066f186536298adf904d43aadaee721ab85065d5f28eade2506a1f6b3b666 │ │ +│ │ └────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +│ ┌── │ +│ │ EventID: FaR1JMeneL4gnQRKQNTgcYcVyMiAvCocEZ6uTip3ifnm:1 │ +│ │ PackageID: 0x106afe9a22dda46d5e91e53202fb45bb820af80444f8404745ba3f867aba1a7c │ +│ │ Transaction Module: qyoung_nft │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ EventType: 0x2::display::VersionUpdated<0x106afe9a22dda46d5e91e53202fb45bb820af80444f8404745ba3f867aba1a7c::qyoung_nft::Qyoung> │ +│ │ ParsedJSON: │ +│ │ ┌─────────┬──────────┬───────┬─────────────────────────────────────────────────────────────────────────────────────────────┐ │ +│ │ │ fields │ contents │ key │ name │ │ +│ │ │ │ ├───────┼─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ │ │ │ value │ QYOUNG_NFT │ │ +│ │ │ │ ├───────┼─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ │ │ │ key │ image_url │ │ +│ │ │ │ ├───────┼─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ │ │ │ value │ https://raw.githubusercontent.com/isQyoung/letsmove/main/mover/isQyoung/images/isqyoung.png │ │ +│ │ ├─────────┼──────────┴───────┴─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ │ id │ 0xc96066f186536298adf904d43aadaee721ab85065d5f28eade2506a1f6b3b666 │ │ +│ │ ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ │ version │ 1 │ │ +│ │ └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x9707d9b9269369e022deb2efc1c4dab5fa643348737b5845562a90f90b45f14c │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::package::Publisher │ +│ │ Version: 922950 │ +│ │ Digest: E4YTFiJp3dTGfpXnJBqm9NdBQskKgNkHVu4CAz4xbjDS │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xc96066f186536298adf904d43aadaee721ab85065d5f28eade2506a1f6b3b666 │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::display::Display<0x106afe9a22dda46d5e91e53202fb45bb820af80444f8404745ba3f867aba1a7c::qyoung_nft::Qyoung> │ +│ │ Version: 922950 │ +│ │ Digest: DsJBwow65S2B7xrYxsMptSLLxdD5yePa8gBo31nU36Ao │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xd529460e7ecf3feba55029e089181c407b967c0352760f3560dbb7f0f8b4fa6b │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 922950 │ +│ │ Digest: ETazDQ39tCWDGitG3DRwAShBfSrwLMAVsLHn88163UHv │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 922950 │ +│ │ Digest: rbPpa3qZcXRfFpxgLeZzLrVek178eiVy3vv5H8uaK9y │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x106afe9a22dda46d5e91e53202fb45bb820af80444f8404745ba3f867aba1a7c │ +│ │ Version: 1 │ +│ │ Digest: HgA6RVMwhUzFbpzmWLupJYqoZe8nGaAnnMWsLvabQvvu │ +│ │ Modules: qyoung_nft │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -16263080 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + diff --git a/mover/isQyoung/code/task3/move_nft/sources/move_nft.move b/mover/isQyoung/code/task3/move_nft/sources/move_nft.move new file mode 100644 index 000000000..e511ac0ec --- /dev/null +++ b/mover/isQyoung/code/task3/move_nft/sources/move_nft.move @@ -0,0 +1,46 @@ +/// Module: move_nft +module move_nft::qyoung_nft { + use std::string::{utf8, String}; + use sui::package; + use sui::display; + + //funtion some nft + public struct Qyoung has key, store { + id: UID, + name: String + } + + //OTW is same with module name + public struct QYOUNG_NFT has drop {} + + fun init(otw: QYOUNG_NFT, ctx: &mut TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url")]; + + let values = vector[ + utf8(b"QYOUNG_NFT"), + utf8(b"https://raw.githubusercontent.com/isQyoung/letsmove/main/mover/isQyoung/images/isqyoung.png")]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values, ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + public entry fun mint_to_sender(name: String, ctx: &mut TxContext) { + let sender = tx_context::sender(ctx); + let nft = Qyoung{ + id: object::new(ctx), + name, + }; + transfer::public_transfer(nft, sender); + } + + public entry fun transfer(nft: Qyoung, recipient: address, _: &mut TxContext) { + transfer::public_transfer(nft, recipient) + } +} + diff --git a/mover/isQyoung/code/task3/move_nft/tests/move_nft_tests.move b/mover/isQyoung/code/task3/move_nft/tests/move_nft_tests.move new file mode 100644 index 000000000..c1a1b24ce --- /dev/null +++ b/mover/isQyoung/code/task3/move_nft/tests/move_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module move_nft::move_nft_tests { + // uncomment this line to import the module + // use move_nft::move_nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_move_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::move_nft::move_nft_tests::ENotImplemented)] + fun test_move_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/isQyoung/code/task4/move_game/Move.lock b/mover/isQyoung/code/task4/move_game/Move.lock new file mode 100644 index 000000000..8f9a9cace --- /dev/null +++ b/mover/isQyoung/code/task4/move_game/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "CAD6EE0A39D91D0345BB44973362DE7FA195815F970E9C447CEDFFE2C1BAC247" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "faucet_coin" }, +] + +[[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.package]] +name = "faucet_coin" +source = { local = "../../task2/faucet_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.27.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x31827cb9ca9237858a2d070eb11444996b15ebe2962cfd808bf47e8b3de39ade" +latest-published-id = "0x31827cb9ca9237858a2d070eb11444996b15ebe2962cfd808bf47e8b3de39ade" +published-version = "1" diff --git a/mover/isQyoung/code/task4/move_game/Move.toml b/mover/isQyoung/code/task4/move_game/Move.toml new file mode 100644 index 000000000..87021e0f5 --- /dev/null +++ b/mover/isQyoung/code/task4/move_game/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "move_game" +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" } +faucet_coin = {local = "../../task2/faucet_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] +move_game = "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/isQyoung/code/task4/move_game/publish.txt b/mover/isQyoung/code/task4/move_game/publish.txt new file mode 100644 index 000000000..995d36c92 --- /dev/null +++ b/mover/isQyoung/code/task4/move_game/publish.txt @@ -0,0 +1,160 @@ +Transaction Digest: ABVDzqUd9VoBQgY6pNtHBCTcEqBtWPEzfQrbkFYGenqQ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Owner: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Budget: 29641200 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Version: 1271301 │ +│ │ Digest: VC4SqqGck2mbexfUKvkVcjKmNjNQXKT5mtJ8nVn2YL7 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ │ 0x2d5da0195bef2cbef4644999afb9b2d5cd0f5b5b6c1f3887f75060a3b821d137 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 9oZw6tB+ZtKsDM/BYFghb9DhixIukhLa2aSNTNBcsG8IxLE69mNO+Y1kOIKWCb8yhSA6mYXUyWm4aEezzYcmDQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: ABVDzqUd9VoBQgY6pNtHBCTcEqBtWPEzfQrbkFYGenqQ │ +│ Status: Success │ +│ Executed Epoch: 408 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x11cd7f41efe7f5f5d6a40f855da5587ef374f2882e12bdbadfdedcb1bb8b57a7 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 1271302 │ +│ │ Digest: 9vNVWmtfoJ5Gu3VyjUYVNfXEjiDHP62U7QU7FgfckMka │ +│ └── │ +│ ┌── │ +│ │ ID: 0x31827cb9ca9237858a2d070eb11444996b15ebe2962cfd808bf47e8b3de39ade │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: FUgYF8Kzc4UfrZcC1BpdQ38vexdWLQybii4f5mUiSAen │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd5c0233f13c4b7d5fdb6d2821ecb916b3ecf3a920dc37e8b727a9f2d92a25746 │ +│ │ Owner: Shared( 1271302 ) │ +│ │ Version: 1271302 │ +│ │ Digest: EfB8uPN7L19PPF794jbTV7Su1ce2pqFYbzdAraNSad9k │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf50b3feb7be5c835414d461f9c9c1c09008895d4f9da64ff1dd383abde3070d8 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 1271302 │ +│ │ Digest: 9opdq2KcAMVXzBVESXgqTvHYqMErVf9uAxs5U29hiyx8 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 1271302 │ +│ │ Digest: 4UQYR58bS9V1emzkmsXvbmat5mg5mvstU7dNGFJ96W3v │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 1271302 │ +│ │ Digest: 4UQYR58bS9V1emzkmsXvbmat5mg5mvstU7dNGFJ96W3v │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 27641200 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ 8jkf8Nou5EL7oSUz5WoU11baQtMGFEBakqcnqg5YY7Cy │ +│ 95Yjr1dvGkiQ7tDbNSJwBvXGSr1M5GFMVxCwQERQKgXH │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x11cd7f41efe7f5f5d6a40f855da5587ef374f2882e12bdbadfdedcb1bb8b57a7 │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 1271302 │ +│ │ Digest: 9vNVWmtfoJ5Gu3VyjUYVNfXEjiDHP62U7QU7FgfckMka │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xd5c0233f13c4b7d5fdb6d2821ecb916b3ecf3a920dc37e8b727a9f2d92a25746 │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Shared( 1271302 ) │ +│ │ ObjectType: 0x31827cb9ca9237858a2d070eb11444996b15ebe2962cfd808bf47e8b3de39ade::move_game::Director │ +│ │ Version: 1271302 │ +│ │ Digest: EfB8uPN7L19PPF794jbTV7Su1ce2pqFYbzdAraNSad9k │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xf50b3feb7be5c835414d461f9c9c1c09008895d4f9da64ff1dd383abde3070d8 │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x31827cb9ca9237858a2d070eb11444996b15ebe2962cfd808bf47e8b3de39ade::move_game::AdminCap │ +│ │ Version: 1271302 │ +│ │ Digest: 9opdq2KcAMVXzBVESXgqTvHYqMErVf9uAxs5U29hiyx8 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 1271302 │ +│ │ Digest: 4UQYR58bS9V1emzkmsXvbmat5mg5mvstU7dNGFJ96W3v │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x31827cb9ca9237858a2d070eb11444996b15ebe2962cfd808bf47e8b3de39ade │ +│ │ Version: 1 │ +│ │ Digest: FUgYF8Kzc4UfrZcC1BpdQ38vexdWLQybii4f5mUiSAen │ +│ │ Modules: move_game │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -27663080 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/isQyoung/code/task4/move_game/sources/move_game.move b/mover/isQyoung/code/task4/move_game/sources/move_game.move new file mode 100644 index 000000000..1f13d1501 --- /dev/null +++ b/mover/isQyoung/code/task4/move_game/sources/move_game.move @@ -0,0 +1,220 @@ +/// Module: move_game +module move_game::move_game { + use sui::balance; + use sui::balance::Balance; + use sui::coin; + use sui::coin::{Coin}; + use sui::event::emit; + use sui::random; + use sui::random::{Random, new_generator}; + use sui::table; + use sui::table::Table; + use sui::transfer::{transfer, share_object, public_transfer}; + use sui::tx_context::{sender}; + use faucet_coin::faucet_coin::FAUCET_COIN; + + const EEmptyRound: u64 = 1; + const EPlayerCntNotEnough: u64 = 2; + const ELastRoundIsDrawed: u64 = 3; + + + public struct Director has key { + id: UID, + rounds: vector + } + + public struct AdminCap has key, store { + id: UID + } + + public struct Round has key, store { + id: UID, + balance: Balance, + players: vector
, + playersDeposit: Table, + totalDeposit: u64, + drawed: bool, + winner1: Option
, + winner2: Option
, + } + + public struct EventDeposit has copy, drop { + player: address, + amount: u64 + } + + public struct EventDraw has copy, drop { + winner1Index: u64, + winner2Index: u64, + winner1Address: address, + winner2Address: address, + winner1Amount: u64, + winner2Amount: u64 + } + + public struct EventRnd has copy, drop { + total: u8, + winner1Index: u64, + winner2Index: u64 + } + + public struct EventAmount has copy, drop { + amount: u64, + winner1PrizeAmount: u64, + winner2PrizeAmount: u64 + } + + fun init(ctx: &mut TxContext) { + let adminCap = AdminCap { + id: object::new(ctx) + }; + + let director = Director { + id: object::new(ctx), + rounds: vector::empty() + }; + + share_object(director); + + transfer(adminCap, sender(ctx)); + } + + public entry fun deposit(director: &mut Director, coin: Coin, ctx: &mut TxContext) { + if(vector::is_empty(&director.rounds)) { + vector::push_back(&mut director.rounds, Round { + id: object::new(ctx), + balance: balance::zero(), + players: vector::empty(), + playersDeposit: table::new(ctx), + totalDeposit: 0, + drawed: false, + winner1: option::none(), + winner2: option::none() + }); + }; + + let len = vector::length(&director.rounds); + let mut currentRound = vector::borrow_mut(&mut director.rounds, len - 1); + + if(currentRound.drawed){ + vector::push_back(&mut director.rounds, Round { + id: object::new(ctx), + balance: balance::zero(), + players: vector::empty(), + playersDeposit: table::new(ctx), + totalDeposit: 0, + drawed: false, + winner1: option::none(), + winner2: option::none() + }); + + let len2 = vector::length(&director.rounds); + + currentRound = vector::borrow_mut(&mut director.rounds, len2 - 1); + }; + + + let depositBalance = coin::into_balance(coin); + let amount = balance::value(&depositBalance); + + currentRound.totalDeposit = currentRound.totalDeposit + amount; + + let player = sender(ctx); + + if(table::contains(¤tRound.playersDeposit, player)){ + let oldAmount = table::borrow_mut(&mut currentRound.playersDeposit, player); + *oldAmount = *oldAmount + amount; + } else { + table::add(&mut currentRound.playersDeposit, player, amount); + }; + + if (!vector::contains(¤tRound.players, &player)) { + vector::push_back(&mut currentRound.players, player); + }; + + balance::join(&mut currentRound.balance, depositBalance); + + emit(EventDeposit { + player, + amount + }); + } + + #[allow(lint(public_random))] + public entry fun draw(_: &AdminCap, director: &mut Director, r: &Random, ctx: &mut TxContext) { + assert!(vector::length(&director.rounds) > 0, EEmptyRound); + + let len = vector::length(&director.rounds); + let currentRound = vector::borrow_mut(&mut director.rounds, len - 1); + + let playerCnt = vector::length(¤tRound.players); + assert!(playerCnt > 1, EPlayerCntNotEnough); + assert!(!currentRound.drawed, ELastRoundIsDrawed); + + + let mut generator = new_generator(r, ctx); + let winner1IdxR = random::generate_u64_in_range(&mut generator, 0, 1024); + let winner2IdxR = random::generate_u64_in_range(&mut generator, 0, 1024); + let winner1Idx = winner1IdxR % playerCnt; + let winner2Idx = winner2IdxR % playerCnt; + + emit(EventRnd { + total: (playerCnt as u8), + winner1Index: winner1Idx, + winner2Index: winner2Idx + }); + + let winner1Address = vector::borrow(¤tRound.players, winner1Idx); + let winner2Address = vector::borrow(¤tRound.players, winner2Idx); + + let amount = balance::value(¤tRound.balance); + + let winner1PrizeAmount = amount / 2; + let winner2PrizeAmount = amount - winner1PrizeAmount; + + + emit(EventAmount { + amount: amount, + winner1PrizeAmount: winner1PrizeAmount, + winner2PrizeAmount: winner2PrizeAmount + }); + + + let winner1PrizeBalance = balance::split(&mut currentRound.balance, winner1PrizeAmount); + let winner2PrizeBalance = balance::split(&mut currentRound.balance, winner2PrizeAmount); + + + let winner1Coin = coin::from_balance(winner1PrizeBalance, ctx); + let winner2Coin = coin::from_balance(winner2PrizeBalance, ctx); + + public_transfer(winner1Coin, *winner1Address); + public_transfer(winner2Coin, *winner2Address); + + currentRound.winner1 = option::some(*winner1Address); + currentRound.winner2 = option::some(*winner2Address); + currentRound.drawed = true; + + emit(EventDraw { + winner1Index: winner1Idx, + winner2Index: winner2Idx, + winner1Address: *winner1Address, + winner2Address: *winner2Address, + winner1Amount: winner1PrizeAmount, + winner2Amount: winner2PrizeAmount + }) + } + + + entry fun rnd(r: &Random, ctx: &mut TxContext) { + let mut generator = new_generator(r, ctx); + let winner1Idx = random::generate_u64_in_range(&mut generator, 0, 100); + let winner2Idx = random::generate_u64_in_range(&mut generator, 0, 100); + + emit(EventRnd { + total: 3, + winner1Index: winner1Idx, + winner2Index: winner2Idx + }) + } + +} diff --git a/mover/isQyoung/code/task4/move_game/tests/move_game_tests.move b/mover/isQyoung/code/task4/move_game/tests/move_game_tests.move new file mode 100644 index 000000000..bd672b7da --- /dev/null +++ b/mover/isQyoung/code/task4/move_game/tests/move_game_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module move_game::move_game_tests { + // uncomment this line to import the module + // use move_game::move_game; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_move_game() { + // pass + } + + #[test, expected_failure(abort_code = ::move_game::move_game_tests::ENotImplemented)] + fun test_move_game_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/isQyoung/code/task5/move_swap/Move.lock b/mover/isQyoung/code/task5/move_swap/Move.lock new file mode 100644 index 000000000..e2d167122 --- /dev/null +++ b/mover/isQyoung/code/task5/move_swap/Move.lock @@ -0,0 +1,52 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "ECA8981A942A981B1C4C5022BFC248E383F3C88867A2637BB043C67532E4CC35" +deps_digest = "060AD7E57DFB13104F21BE5F5C3759D03F0553FC3229247D9A7A6B45F50D03A3" +dependencies = [ + { name = "Sui" }, + { name = "faucet_coin" }, + { name = "my_coin" }, +] + +[[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.package]] +name = "faucet_coin" +source = { local = "../../task2/faucet_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "my_coin" +source = { local = "../../task2/my_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.27.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04" +latest-published-id = "0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04" +published-version = "1" diff --git a/mover/isQyoung/code/task5/move_swap/Move.toml b/mover/isQyoung/code/task5/move_swap/Move.toml new file mode 100644 index 000000000..3893a0739 --- /dev/null +++ b/mover/isQyoung/code/task5/move_swap/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "move_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 (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" } +my_coin = {local = "../../task2/my_coin"} +faucet_coin = {local = "../../task2/faucet_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] +move_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" + diff --git a/mover/isQyoung/code/task5/move_swap/faucet_coin b/mover/isQyoung/code/task5/move_swap/faucet_coin new file mode 100644 index 000000000..eeff5936c --- /dev/null +++ b/mover/isQyoung/code/task5/move_swap/faucet_coin @@ -0,0 +1,426 @@ +Transaction Digest: GfNQzRJxazZLPa2WP8mhHRrE8wHFcZE1eJLUr2hj2EoY +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Owner: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Version: 49066807 │ +│ │ Digest: 8Bn62cHBLUqViQPANvGAzJtX78shNJHuWHYfEDuvXR9r │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x43d00d1c0a9f2621e6e1f58d7f244872b59606afc3b83d4d30a23eff7ad76cf2 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "1000000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: faucet_coin │ │ +│ │ │ Package: 0x2d5da0195bef2cbef4644999afb9b2d5cd0f5b5b6c1f3887f75060a3b821d137 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ EvuZFKtv5/DU8Ec26U9VlEuuJsQ9rAOYTvmsVe5LWiJflj8SAbYnoUi0rnt6BeYsmxHznyBkeXoBl4Q8WgO1Dg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: GfNQzRJxazZLPa2WP8mhHRrE8wHFcZE1eJLUr2hj2EoY │ +│ Status: Success │ +│ Executed Epoch: 409 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xeb56a58c0a6a17e7d327d287d5fd26d44b9eb106c2d9202d5c953457e8957e08 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066808 │ +│ │ Digest: 2TdD7ZTGx39zHEr7hDZZCMf4H3QZUokMtsKH9dyYYcoV │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066808 │ +│ │ Digest: CxAnrUXJjNULtZvJUtWQs9erka9mrAiuVtxxJAvHARW4 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x43d00d1c0a9f2621e6e1f58d7f244872b59606afc3b83d4d30a23eff7ad76cf2 │ +│ │ Owner: Shared( 922943 ) │ +│ │ Version: 49066808 │ +│ │ Digest: yBWQqUbokfqUcouT3NaYAGWe2zCkJWsbfQWqoPXV4fY │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x43d00d1c0a9f2621e6e1f58d7f244872b59606afc3b83d4d30a23eff7ad76cf2 │ +│ │ Version: 1271312 │ +│ │ Digest: 5uagNRU9EnPvw4XqmLTESYcLwUizSjQbheva3PjTuDBB │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066808 │ +│ │ Digest: CxAnrUXJjNULtZvJUtWQs9erka9mrAiuVtxxJAvHARW4 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4225600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2768832 MIST │ +│ Non-refundable Storage Fee: 27968 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 32fNNEb8Ukg3sK2Nd3n7s6Uo3o1ndDUvy9L3vB3HoEuy │ +│ 8jkf8Nou5EL7oSUz5WoU11baQtMGFEBakqcnqg5YY7Cy │ +│ AFX2uxnGCv2Wf6d2iGziAVoYdki3h7pCkPEv2tpA7cwA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xeb56a58c0a6a17e7d327d287d5fd26d44b9eb106c2d9202d5c953457e8957e08 │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2d5da0195bef2cbef4644999afb9b2d5cd0f5b5b6c1f3887f75060a3b821d137::faucet_coin::FAUCET_COIN> │ +│ │ Version: 49066808 │ +│ │ Digest: 2TdD7ZTGx39zHEr7hDZZCMf4H3QZUokMtsKH9dyYYcoV │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 49066808 │ +│ │ Digest: CxAnrUXJjNULtZvJUtWQs9erka9mrAiuVtxxJAvHARW4 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x43d00d1c0a9f2621e6e1f58d7f244872b59606afc3b83d4d30a23eff7ad76cf2 │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Shared( 922943 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x2d5da0195bef2cbef4644999afb9b2d5cd0f5b5b6c1f3887f75060a3b821d137::faucet_coin::FAUCET_COIN> │ +│ │ Version: 49066808 │ +│ │ Digest: yBWQqUbokfqUcouT3NaYAGWe2zCkJWsbfQWqoPXV4fY │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2456768 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x2d5da0195bef2cbef4644999afb9b2d5cd0f5b5b6c1f3887f75060a3b821d137::faucet_coin::FAUCET_COIN │ +│ │ Amount: 1000000000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +#####################################deposit_b###############################33 + +Transaction Digest: 3cAKynHjvLbb1R7CNAjMj9zaSj1eNPFMBnfhqWHhaQ8p +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Owner: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Version: 49066809 │ +│ │ Digest: 572NL94X2JbkbdAEkmXNBhmCbhYiPYcrD9XdhVCRhZY4 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ │ +│ │ 1 Imm/Owned Object ID: 0xeb56a58c0a6a17e7d327d287d5fd26d44b9eb106c2d9202d5c953457e8957e08 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: deposit_b │ │ +│ │ │ Module: move_swap │ │ +│ │ │ Package: 0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ YINgz1YKU8EOBqlnzUrQNPotNhZdFTO9OVKlKimyEyDRggQVp6DInFYmcSEyOV0OvMXiAG6R5VibyF1uCohGDQ== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 3cAKynHjvLbb1R7CNAjMj9zaSj1eNPFMBnfhqWHhaQ8p │ +│ Status: Success │ +│ Executed Epoch: 409 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066810 │ +│ │ Digest: 8YL5XgZcYi8zUAZzY7XcMCW8j7uhgMDpsgvJ6UJWd1Xh │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ +│ │ Owner: Shared( 49066806 ) │ +│ │ Version: 49066810 │ +│ │ Digest: 6ThwWftTzrakMSVho6Vaoao49aiW7LvcGdsUG3i3YSiK │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ +│ │ Version: 49066809 │ +│ │ Digest: 4VZqcMXTbQNd7UPHbw2mv4v3zewzb4D9rKibGJr5a1AG │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0xeb56a58c0a6a17e7d327d287d5fd26d44b9eb106c2d9202d5c953457e8957e08 │ +│ │ Version: 49066810 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066810 │ +│ │ Digest: 8YL5XgZcYi8zUAZzY7XcMCW8j7uhgMDpsgvJ6UJWd1Xh │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2401600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3792096 MIST │ +│ Non-refundable Storage Fee: 38304 MIST │ +│ │ +│ Transaction Dependencies: │ +│ Dd2cL54c1aLcmoz7rjFPpPPUhrx18jm7Qt8DhCy9xq6z │ +│ FRcekYMdqeWc72acoMupQ3zGqSg3mg7oxeM1Ljs5tYX8 │ +│ GfNQzRJxazZLPa2WP8mhHRrE8wHFcZE1eJLUr2hj2EoY │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 49066810 │ +│ │ Digest: 8YL5XgZcYi8zUAZzY7XcMCW8j7uhgMDpsgvJ6UJWd1Xh │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Shared( 49066806 ) │ +│ │ ObjectType: 0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04::move_swap::Pool │ +│ │ Version: 49066810 │ +│ │ Digest: 6ThwWftTzrakMSVho6Vaoao49aiW7LvcGdsUG3i3YSiK │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: 390496 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x2d5da0195bef2cbef4644999afb9b2d5cd0f5b5b6c1f3887f75060a3b821d137::faucet_coin::FAUCET_COIN │ +│ │ Amount: -1000000000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +#############################################w_b +Transaction Digest: Et1dn6dFXoAaevAJZBZ4cVt2dme1jnCJj7vF9tYtGJES +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Owner: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Version: 49066821 │ +│ │ Digest: Grj3ksDsdHb5FQfYHBgyLygdi3EuR9ebuJ3ahama7r8D │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x6c154f1c92ed32d0caf49802d9b59d389f02c4c5411c2614295a7d963b4e8b8a │ │ +│ │ 1 Shared Object ID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ │ +│ │ 2 Pure Arg: Type: u64, Value: "100" │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: withdraw_b │ │ +│ │ │ Module: move_swap │ │ +│ │ │ Package: 0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ Dp0RKqDAuEwN47lhtUXPjS6SwudoIJf8xzZBvrPoXjjGpqGnbZW3DLFqeqv6kXPab++SUypANNGc5CL5sVCDBA== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: Et1dn6dFXoAaevAJZBZ4cVt2dme1jnCJj7vF9tYtGJES │ +│ Status: Success │ +│ Executed Epoch: 409 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x89538d04964831de0b531be8449962b4337f7fc13d4ccf45756b9e130c1f8527 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066822 │ +│ │ Digest: 3p7T584ChjjGy5E5zK1wRFdHFQU5kE68jbWDFtqNUsGy │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066822 │ +│ │ Digest: 85YqKzn4NmLT5bK3zbueH9djfDXyRy3jjWzCFYmrHU4t │ +│ └── │ +│ ┌── │ +│ │ ID: 0x6c154f1c92ed32d0caf49802d9b59d389f02c4c5411c2614295a7d963b4e8b8a │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066822 │ +│ │ Digest: 89FNJ4dUNSTs48cULRUgfisT3hbh6F3sCpSFV84VJgcq │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ +│ │ Owner: Shared( 49066806 ) │ +│ │ Version: 49066822 │ +│ │ Digest: 6ZUAwAmpCA8qknFEBkjpD1aoTTsNJK764uvoN8cHh6bD │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ +│ │ Version: 49066821 │ +│ │ Digest: 3XQYct2U51cMgXVwzuMzSbPyRvykTEo1iFoGMZs3ABQz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066822 │ +│ │ Digest: 85YqKzn4NmLT5bK3zbueH9djfDXyRy3jjWzCFYmrHU4t │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 5152800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3686760 MIST │ +│ Non-refundable Storage Fee: 37240 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 8EWhfABYeYaAMaQCrPCg2xRxa2nCD2aqxrxQQKDm4x7S │ +│ Dd2cL54c1aLcmoz7rjFPpPPUhrx18jm7Qt8DhCy9xq6z │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x89538d04964831de0b531be8449962b4337f7fc13d4ccf45756b9e130c1f8527 │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2d5da0195bef2cbef4644999afb9b2d5cd0f5b5b6c1f3887f75060a3b821d137::faucet_coin::FAUCET_COIN> │ +│ │ Version: 49066822 │ +│ │ Digest: 3p7T584ChjjGy5E5zK1wRFdHFQU5kE68jbWDFtqNUsGy │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 49066822 │ +│ │ Digest: 85YqKzn4NmLT5bK3zbueH9djfDXyRy3jjWzCFYmrHU4t │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x6c154f1c92ed32d0caf49802d9b59d389f02c4c5411c2614295a7d963b4e8b8a │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04::move_swap::AdminCap │ +│ │ Version: 49066822 │ +│ │ Digest: 89FNJ4dUNSTs48cULRUgfisT3hbh6F3sCpSFV84VJgcq │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Shared( 49066806 ) │ +│ │ ObjectType: 0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04::move_swap::Pool │ +│ │ Version: 49066822 │ +│ │ Digest: 6ZUAwAmpCA8qknFEBkjpD1aoTTsNJK764uvoN8cHh6bD │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2466040 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x2d5da0195bef2cbef4644999afb9b2d5cd0f5b5b6c1f3887f75060a3b821d137::faucet_coin::FAUCET_COIN │ +│ │ Amount: 100 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/isQyoung/code/task5/move_swap/my_coin b/mover/isQyoung/code/task5/move_swap/my_coin new file mode 100644 index 000000000..38b3efa3d --- /dev/null +++ b/mover/isQyoung/code/task5/move_swap/my_coin @@ -0,0 +1,423 @@ +Transaction Digest: AFX2uxnGCv2Wf6d2iGziAVoYdki3h7pCkPEv2tpA7cwA +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Owner: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Version: 49066806 │ +│ │ Digest: 9WD7JfQXUj6LMBo41XnAL58UUr6iuhsAzLXQooPJjJwM │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x63e6b9c9e22c0e09492ced54e6e5008e109ee87dcf3714560c38454433cc0344 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "1000000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: my_coin │ │ +│ │ │ Package: 0x10a875b82f2809e40b75af3b7d12b161007b90d5653e07e88d516fa229ed0cfa │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ TrecuRJ5J94UA47QE8PAhY9vuabeux/4aLGtdILuOB5jxXJoj8L3oXAHEGlQ5Cxz4XKIKEoCce7VPqHVnqBaBA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: AFX2uxnGCv2Wf6d2iGziAVoYdki3h7pCkPEv2tpA7cwA │ +│ Status: Success │ +│ Executed Epoch: 409 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xb69617d39f379793c3f8e83187e65c388802be0c15d5e92240dffe81ec1111f7 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066807 │ +│ │ Digest: 26rV7G3nCeYrQxNmyURY7PptxkovBzo9K1aqkRjhJUax │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066807 │ +│ │ Digest: 8Bn62cHBLUqViQPANvGAzJtX78shNJHuWHYfEDuvXR9r │ +│ └── │ +│ ┌── │ +│ │ ID: 0x63e6b9c9e22c0e09492ced54e6e5008e109ee87dcf3714560c38454433cc0344 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066807 │ +│ │ Digest: 6o1rdY7MpMZPvc1coHwgjQoZ6bD8ogfXCMmhHdCnHzwY │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066807 │ +│ │ Digest: 8Bn62cHBLUqViQPANvGAzJtX78shNJHuWHYfEDuvXR9r │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4104000 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2708640 MIST │ +│ Non-refundable Storage Fee: 27360 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3r7T1ER65BWToKDcTTfNpaFtcD8kiubvtk4huJ53spty │ +│ Dd2cL54c1aLcmoz7rjFPpPPUhrx18jm7Qt8DhCy9xq6z │ +│ F913oMHxT2maCZBZ9gLv9WkRbpXnahKrkjmEg7cFXorE │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xb69617d39f379793c3f8e83187e65c388802be0c15d5e92240dffe81ec1111f7 │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x10a875b82f2809e40b75af3b7d12b161007b90d5653e07e88d516fa229ed0cfa::my_coin::MY_COIN> │ +│ │ Version: 49066807 │ +│ │ Digest: 26rV7G3nCeYrQxNmyURY7PptxkovBzo9K1aqkRjhJUax │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 49066807 │ +│ │ Digest: 8Bn62cHBLUqViQPANvGAzJtX78shNJHuWHYfEDuvXR9r │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x63e6b9c9e22c0e09492ced54e6e5008e109ee87dcf3714560c38454433cc0344 │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x10a875b82f2809e40b75af3b7d12b161007b90d5653e07e88d516fa229ed0cfa::my_coin::MY_COIN> │ +│ │ Version: 49066807 │ +│ │ Digest: 6o1rdY7MpMZPvc1coHwgjQoZ6bD8ogfXCMmhHdCnHzwY │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2395360 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x10a875b82f2809e40b75af3b7d12b161007b90d5653e07e88d516fa229ed0cfa::my_coin::MY_COIN │ +│ │ Amount: 1000000000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ + +#############################################deposit_a#################################################### +Transaction Digest: FRcekYMdqeWc72acoMupQ3zGqSg3mg7oxeM1Ljs5tYX8 +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Owner: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Version: 49066808 │ +│ │ Digest: CxAnrUXJjNULtZvJUtWQs9erka9mrAiuVtxxJAvHARW4 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ │ +│ │ 1 Imm/Owned Object ID: 0xb69617d39f379793c3f8e83187e65c388802be0c15d5e92240dffe81ec1111f7 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: deposit_a │ │ +│ │ │ Module: move_swap │ │ +│ │ │ Package: 0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ Aj6Wxyi+bmJoC7Sdw0EV19dz7yVs5gmMUy9J3b36DC0B2IXtC1cDnnjB3iJANIOy8RDieNrLVWadFipwsApiCg== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: FRcekYMdqeWc72acoMupQ3zGqSg3mg7oxeM1Ljs5tYX8 │ +│ Status: Success │ +│ Executed Epoch: 409 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066809 │ +│ │ Digest: 572NL94X2JbkbdAEkmXNBhmCbhYiPYcrD9XdhVCRhZY4 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ +│ │ Owner: Shared( 49066806 ) │ +│ │ Version: 49066809 │ +│ │ Digest: 4VZqcMXTbQNd7UPHbw2mv4v3zewzb4D9rKibGJr5a1AG │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ +│ │ Version: 49066806 │ +│ │ Digest: 4McxVuH342soXZbYcruUSKirTCrJ4w5Pex6Fo63wn2b4 │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0xb69617d39f379793c3f8e83187e65c388802be0c15d5e92240dffe81ec1111f7 │ +│ │ Version: 49066809 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066809 │ +│ │ Digest: 572NL94X2JbkbdAEkmXNBhmCbhYiPYcrD9XdhVCRhZY4 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2401600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3731904 MIST │ +│ Non-refundable Storage Fee: 37696 MIST │ +│ │ +│ Transaction Dependencies: │ +│ AFX2uxnGCv2Wf6d2iGziAVoYdki3h7pCkPEv2tpA7cwA │ +│ Dd2cL54c1aLcmoz7rjFPpPPUhrx18jm7Qt8DhCy9xq6z │ +│ GfNQzRJxazZLPa2WP8mhHRrE8wHFcZE1eJLUr2hj2EoY │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 49066809 │ +│ │ Digest: 572NL94X2JbkbdAEkmXNBhmCbhYiPYcrD9XdhVCRhZY4 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Shared( 49066806 ) │ +│ │ ObjectType: 0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04::move_swap::Pool │ +│ │ Version: 49066809 │ +│ │ Digest: 4VZqcMXTbQNd7UPHbw2mv4v3zewzb4D9rKibGJr5a1AG │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: 330304 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x10a875b82f2809e40b75af3b7d12b161007b90d5653e07e88d516fa229ed0cfa::my_coin::MY_COIN │ +│ │ Amount: -1000000000 │ +│ └── │ + +###############################################w_b + +Transaction Digest: 8EWhfABYeYaAMaQCrPCg2xRxa2nCD2aqxrxQQKDm4x7S +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Owner: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Version: 49066820 │ +│ │ Digest: 5RrN5CnN55zpXWix9RHBQ4bfwUmPVe19N7QHLpHwQQXr │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x6c154f1c92ed32d0caf49802d9b59d389f02c4c5411c2614295a7d963b4e8b8a │ │ +│ │ 1 Shared Object ID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ │ +│ │ 2 Pure Arg: Type: u64, Value: "100" │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: withdraw_a │ │ +│ │ │ Module: move_swap │ │ +│ │ │ Package: 0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ iOsVCSg78KktinWZWR4QMLeQMMrqYKUvZV16ETcKOj8R1jG5wSWoPPgzS3tHym1IDT3Ekp9ClquR7cQSvtDHCA== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 8EWhfABYeYaAMaQCrPCg2xRxa2nCD2aqxrxQQKDm4x7S │ +│ Status: Success │ +│ Executed Epoch: 409 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xaf08882bce66aefbfcf950bdd9e465ba892c3f44d65d823ebd3848b9fe0527a7 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066821 │ +│ │ Digest: EPSQW5z8C6pcDXGTt88NKHhm5WAsJ2koyqKgxrFVZWBT │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066821 │ +│ │ Digest: Grj3ksDsdHb5FQfYHBgyLygdi3EuR9ebuJ3ahama7r8D │ +│ └── │ +│ ┌── │ +│ │ ID: 0x6c154f1c92ed32d0caf49802d9b59d389f02c4c5411c2614295a7d963b4e8b8a │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066821 │ +│ │ Digest: GehScLxY2hFP9FKUm5LBZ3EtEPLdLpJG1LtBDKGdQP4R │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ +│ │ Owner: Shared( 49066806 ) │ +│ │ Version: 49066821 │ +│ │ Digest: 3XQYct2U51cMgXVwzuMzSbPyRvykTEo1iFoGMZs3ABQz │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ +│ │ Version: 49066820 │ +│ │ Digest: Fso1BtVK5aKRf8mo3HjgrEE71MMq7a14by2Fr3eeUvXP │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066821 │ +│ │ Digest: Grj3ksDsdHb5FQfYHBgyLygdi3EuR9ebuJ3ahama7r8D │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 5092000 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 3686760 MIST │ +│ Non-refundable Storage Fee: 37240 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 5y48GXyLt2Um7Np1jZZFn3kYSrGvA3XVm72JQKcRhMAQ │ +│ 7wEcqKtWs46w8HHedG6wva73HZZL6DuubA72H6EW9WDP │ +│ Dd2cL54c1aLcmoz7rjFPpPPUhrx18jm7Qt8DhCy9xq6z │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xaf08882bce66aefbfcf950bdd9e465ba892c3f44d65d823ebd3848b9fe0527a7 │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x10a875b82f2809e40b75af3b7d12b161007b90d5653e07e88d516fa229ed0cfa::my_coin::MY_COIN> │ +│ │ Version: 49066821 │ +│ │ Digest: EPSQW5z8C6pcDXGTt88NKHhm5WAsJ2koyqKgxrFVZWBT │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 49066821 │ +│ │ Digest: Grj3ksDsdHb5FQfYHBgyLygdi3EuR9ebuJ3ahama7r8D │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x6c154f1c92ed32d0caf49802d9b59d389f02c4c5411c2614295a7d963b4e8b8a │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04::move_swap::AdminCap │ +│ │ Version: 49066821 │ +│ │ Digest: GehScLxY2hFP9FKUm5LBZ3EtEPLdLpJG1LtBDKGdQP4R │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Shared( 49066806 ) │ +│ │ ObjectType: 0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04::move_swap::Pool │ +│ │ Version: 49066821 │ +│ │ Digest: 3XQYct2U51cMgXVwzuMzSbPyRvykTEo1iFoGMZs3ABQz │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2405240 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x10a875b82f2809e40b75af3b7d12b161007b90d5653e07e88d516fa229ed0cfa::my_coin::MY_COIN │ +│ │ Amount: 100 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ + diff --git a/mover/isQyoung/code/task5/move_swap/publish.txt b/mover/isQyoung/code/task5/move_swap/publish.txt new file mode 100644 index 000000000..fda73af26 --- /dev/null +++ b/mover/isQyoung/code/task5/move_swap/publish.txt @@ -0,0 +1,162 @@ +Transaction Digest: Dd2cL54c1aLcmoz7rjFPpPPUhrx18jm7Qt8DhCy9xq6z +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Owner: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Budget: 19274800 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Version: 49066805 │ +│ │ Digest: Gux82UiRgT7ttfzkeptcqbUxSVokuAqoW4Ri1K7y5Vdr │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ │ 0x2d5da0195bef2cbef4644999afb9b2d5cd0f5b5b6c1f3887f75060a3b821d137 │ │ +│ │ │ 0x10a875b82f2809e40b75af3b7d12b161007b90d5653e07e88d516fa229ed0cfa │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 9+1WssQDaiT2ptzdNhhb821bGz32OEH2ws6bwKhKU1Fr6qsJeErEOd1CEwzUreMiyseUjDynJARg98qDtYvlAQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: Dd2cL54c1aLcmoz7rjFPpPPUhrx18jm7Qt8DhCy9xq6z │ +│ Status: Success │ +│ Executed Epoch: 409 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x65f71fe779bf6f068bbaecd582742636ff2f0a18c96e5aa2d2c85f100a54dbfb │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066806 │ +│ │ Digest: HzWkgeuLyGGNBSyjhmeCTTUuynQLSfpWLndXizjnkdoa │ +│ └── │ +│ ┌── │ +│ │ ID: 0x6c154f1c92ed32d0caf49802d9b59d389f02c4c5411c2614295a7d963b4e8b8a │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066806 │ +│ │ Digest: 87kaW9quzfk93vgD1Jqko9yZJuPpinqcDt4vFjVyM6E2 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 6JFpQA4Acv85Xa6nyKyY8fuoJXntoXriaCwDPXq16xYx │ +│ └── │ +│ ┌── │ +│ │ ID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ +│ │ Owner: Shared( 49066806 ) │ +│ │ Version: 49066806 │ +│ │ Digest: 4McxVuH342soXZbYcruUSKirTCrJ4w5Pex6Fo63wn2b4 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066806 │ +│ │ Digest: 9WD7JfQXUj6LMBo41XnAL58UUr6iuhsAzLXQooPJjJwM │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 49066806 │ +│ │ Digest: 9WD7JfQXUj6LMBo41XnAL58UUr6iuhsAzLXQooPJjJwM │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 17274800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ 8jkf8Nou5EL7oSUz5WoU11baQtMGFEBakqcnqg5YY7Cy │ +│ DyctAYagDdzDui8Z6eggbYbqAA9kLkGAhxvXje997oic │ +│ F913oMHxT2maCZBZ9gLv9WkRbpXnahKrkjmEg7cFXorE │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x65f71fe779bf6f068bbaecd582742636ff2f0a18c96e5aa2d2c85f100a54dbfb │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 49066806 │ +│ │ Digest: HzWkgeuLyGGNBSyjhmeCTTUuynQLSfpWLndXizjnkdoa │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x6c154f1c92ed32d0caf49802d9b59d389f02c4c5411c2614295a7d963b4e8b8a │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04::move_swap::AdminCap │ +│ │ Version: 49066806 │ +│ │ Digest: 87kaW9quzfk93vgD1Jqko9yZJuPpinqcDt4vFjVyM6E2 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xd12ee9c0e75e706fc60cd7c04425384eb94661c9080872813d96495e96e28a55 │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Shared( 49066806 ) │ +│ │ ObjectType: 0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04::move_swap::Pool │ +│ │ Version: 49066806 │ +│ │ Digest: 4McxVuH342soXZbYcruUSKirTCrJ4w5Pex6Fo63wn2b4 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 49066806 │ +│ │ Digest: 9WD7JfQXUj6LMBo41XnAL58UUr6iuhsAzLXQooPJjJwM │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04 │ +│ │ Version: 1 │ +│ │ Digest: 6JFpQA4Acv85Xa6nyKyY8fuoJXntoXriaCwDPXq16xYx │ +│ │ Modules: move_swap │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -17296680 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/isQyoung/code/task5/move_swap/sources/move_swap.move b/mover/isQyoung/code/task5/move_swap/sources/move_swap.move new file mode 100644 index 000000000..2047a1b67 --- /dev/null +++ b/mover/isQyoung/code/task5/move_swap/sources/move_swap.move @@ -0,0 +1,90 @@ +/// Module: move_swap +module move_swap::move_swap { + + use sui::balance; + use sui::balance::Balance; + use sui::coin; + use sui::coin::{Coin, balance}; + use sui::sui::transfer; + use sui::transfer::{public_transfer, share_object}; + use sui::tx_context::sender; + use my_coin::my_coin::MY_COIN; + use faucet_coin::faucet_coin::FAUCET_COIN; + + // 1a swap 2b + const SWAP_A_2_B: u64 = 2; + + public struct AdminCap has key { + id: UID + } + + public struct Pool has key { + id: UID, + balanceA: Balance, + balanceB: Balance, + } + + fun init(ctx: &mut TxContext) { + let pool = Pool{ + id: object::new(ctx), + balanceA: balance::zero(), + balanceB: balance::zero() + }; + + share_object(pool); + + let adminCap = AdminCap { + id: object::new(ctx) + }; + + transfer::transfer(adminCap, sender(ctx)); + } + + public entry fun deposit_a(pool: &mut Pool, coin: Coin, _: &mut TxContext) { + balance::join(&mut pool.balanceA, coin::into_balance(coin)); + } + + public entry fun deposit_b(pool: &mut Pool, coin: Coin, _: &mut TxContext) { + balance::join(&mut pool.balanceB, coin::into_balance(coin)); + } + + public entry fun withdraw_a(_: &AdminCap, pool: &mut Pool, amount: u64, ctx: &mut TxContext) { + let withdrawBalance = balance::split(&mut pool.balanceA, amount); + let coin = coin::from_balance(withdrawBalance, ctx); + public_transfer(coin, sender(ctx)); + } + + public entry fun withdraw_b(_: &AdminCap, pool: &mut Pool, amount: u64, ctx: &mut TxContext) { + let withdrawBalance = balance::split(&mut pool.balanceB, amount); + let coin = coin::from_balance(withdrawBalance, ctx); + public_transfer(coin, sender(ctx)); + } + + public entry fun swap_a_2_b(pool: &mut Pool, coin: Coin, ctx: &mut TxContext) { + let amtA = coin::value(&coin); + let amtB = amtA * 20000 / 10000; + + balance::join(&mut pool.balanceA, coin::into_balance(coin)); + + let balanceB = balance::split(&mut pool.balanceB, amtB); + let coinB = coin::from_balance(balanceB, ctx); + public_transfer(coinB, sender(ctx)); + } + + public entry fun swap_b_2_a(pool: &mut Pool, coin: Coin, ctx: &mut TxContext) { + let amtB = coin::value(&coin); + let amtA = amtB * 10000 / 20000; + + balance::join(&mut pool.balanceB, coin::into_balance(coin)); + + let balanceA = balance::split(&mut pool.balanceA, amtA); + let coinA = coin::from_balance(balanceA, ctx); + public_transfer(coinA, sender(ctx)); + } + + #[test_only] + public fun test_init(ctx: &mut TxContext) { + init(ctx); + } +} + diff --git a/mover/isQyoung/code/task5/move_swap/tests/move_swap_tests.move b/mover/isQyoung/code/task5/move_swap/tests/move_swap_tests.move new file mode 100644 index 000000000..0afc2856e --- /dev/null +++ b/mover/isQyoung/code/task5/move_swap/tests/move_swap_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module move_swap::move_swap_tests { + // uncomment this line to import the module + // use move_swap::move_swap; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_move_swap() { + // pass + } + + #[test, expected_failure(abort_code = ::move_swap::move_swap_tests::ENotImplemented)] + fun test_move_swap_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/isQyoung/code/task6/package-lock.json b/mover/isQyoung/code/task6/package-lock.json new file mode 100644 index 000000000..b4796b97f --- /dev/null +++ b/mover/isQyoung/code/task6/package-lock.json @@ -0,0 +1,2742 @@ +{ + "name": "sdk.js", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "sdk.js", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "navi-sdk": "^1.1.23" + } + }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, + "node_modules/@0no-co/graphqlsp": { + "version": "1.12.10", + "resolved": "https://registry.npmjs.org/@0no-co/graphqlsp/-/graphqlsp-1.12.10.tgz", + "integrity": "sha512-PrkGVc+XhSjU+7ALSjd4ANlyRZkKOdmOGqj7bqPcKI6C+opuN5MeXSBWKE9383EW27/+MkY+/U1LAaCoZKtkfQ==", + "dependencies": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@digitak/grubber": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@digitak/grubber/-/grubber-3.1.4.tgz", + "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@gql.tada/cli-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@gql.tada/cli-utils/-/cli-utils-1.4.0.tgz", + "integrity": "sha512-8CeKMsUHQSj2MVTJqb6LRfanfhfDrPyfmiYuLY75/aKnRBk70Oe3m7YuBc6/QzatLjj6egxPezNdt25MTluSpg==", + "dependencies": { + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/internal": "1.0.2", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + }, + "peerDependencies": { + "@0no-co/graphqlsp": "^1.12.9", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@gql.tada/internal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@gql.tada/internal/-/internal-1.0.2.tgz", + "integrity": "sha512-5PH+l47yRpz97YCuKiBdIyLRRCM9fJ56J7yEnwMny1RIR8U4CV39eT0VokvHUjFY6x2Kxh4fH4KeJYezssiOXw==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@scure/base": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.7.tgz", + "integrity": "sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "dependencies": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.3.4.tgz", + "integrity": "sha512-wXBhY11qG6pCDAqDnbBRFIDSIwbqkWI7no+lj5+L7IlA7HRIjRP7YQLGzT0LF4lS6eHkMSsclXqy9DwYJasZTQ==", + "dependencies": { + "@volar/source-map": "2.3.4" + } + }, + "node_modules/@volar/source-map": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.3.4.tgz", + "integrity": "sha512-C+t63nwcblqLIVTYXaVi/+gC8NukDaDIQI72J3R7aXGvtgaVB16c+J8Iz7/VfOy7kjYv7lf5GhBny6ACw9fTGQ==" + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.31.tgz", + "integrity": "sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.31", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.31.tgz", + "integrity": "sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==", + "dependencies": { + "@vue/compiler-core": "3.4.31", + "@vue/shared": "3.4.31" + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.22.tgz", + "integrity": "sha512-dNTAAtEOuMiz7N1s5tKpypnVVCtawxVSF5BukD0ELcYSw+DSbrSlYYSw8GuwvurodCeYFSHsmslE+c2sYDNoiA==", + "dependencies": { + "@volar/language-core": "~2.3.1", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.31.tgz", + "integrity": "sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==" + }, + "node_modules/acorn": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/code-red/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "peer": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==" + }, + "node_modules/deep-eql": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/esrun": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/esrun/-/esrun-3.2.26.tgz", + "integrity": "sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==", + "dependencies": { + "@digitak/grubber": "^3.1.4", + "chokidar": "^3.5.1", + "esbuild": "^0.17.4" + }, + "bin": { + "esrun": "bin.js" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "engines": { + "node": "*" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gql.tada": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/gql.tada/-/gql.tada-1.8.0.tgz", + "integrity": "sha512-BsdmtWPmCb3oorPnU6DidBNsIDTjbvRc7P5LUZ43ISMz9dNsl2vFvT7i1AEsbK2xV5AtdjgywPKAFHJd4dQr6Q==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5", + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/cli-utils": "1.4.0", + "@gql.tada/internal": "1.0.2" + }, + "bin": { + "gql-tada": "bin/cli.js", + "gql.tada": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/graphql": { + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", + "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "peer": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "peer": true + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "peer": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mlly": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", + "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/navi-sdk": { + "version": "1.1.23", + "resolved": "https://registry.npmjs.org/navi-sdk/-/navi-sdk-1.1.23.tgz", + "integrity": "sha512-ikTjgPXj6XzTk90j8Fy5cjaIaO1z44Odq+jmI0p27kceX2l50pgHyN3k0oyIffW9Q2/XkWAyoUJzDYVT7W1PRA==", + "dependencies": { + "@mysten/sui.js": "^0.50.1", + "axios": "^1.6.7", + "esrun": "^3.2.26", + "tsconfig-paths": "^4.2.0", + "vitest": "^1.3.1" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/periscopic/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/svelte": { + "version": "4.2.18", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.18.tgz", + "integrity": "sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/svelte2tsx": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.13.tgz", + "integrity": "sha512-aObZ93/kGAiLXA/I/kP+x9FriZM+GboB/ReOIGmLNbVGEd2xC+aTCppm3mk1cc9I/z60VQf7b2QDxC3jOXu3yw==", + "dependencies": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + }, + "peerDependencies": { + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", + "typescript": "^4.9.4 || ^5.0.0" + } + }, + "node_modules/tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==" + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz", + "integrity": "sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" + }, + "node_modules/vite": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.2.tgz", + "integrity": "sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "dependencies": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/mover/isQyoung/code/task6/package.json b/mover/isQyoung/code/task6/package.json new file mode 100644 index 000000000..6c10ddfc3 --- /dev/null +++ b/mover/isQyoung/code/task6/package.json @@ -0,0 +1,16 @@ +{ + "name": "sdk.js", + "version": "1.0.0", + "description": "", + "main": "sdk.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "navi-sdk": "^1.1.23" + }, + "type": "module" +} diff --git a/mover/isQyoung/code/task6/save.log b/mover/isQyoung/code/task6/save.log new file mode 100644 index 000000000..8dd86f6bc --- /dev/null +++ b/mover/isQyoung/code/task6/save.log @@ -0,0 +1,157 @@ +Network Type: mainnet +AccountManager { + client: SuiClient { transport: SuiHTTPTransport {} }, + address: '0x741a3483255771b31d81d52b2018d6d69c739ec49f3077dadda93414825baa1b', + keypair: Ed25519Keypair { + keypair: { publicKey: [Uint8Array], secretKey: [Uint8Array] } + } +} +{ + digest: '21Hu85qu8k57qjQNBrUr34WckG8J77q5dJasA1Lmk6G7', + effects: { + messageVersion: 'v1', + status: { status: 'success' }, + executedEpoch: '442', + gasUsed: { + computationCost: '4518000', + storageCost: '614072400', + storageRebate: '394092072', + nonRefundableStorageFee: '3980728' + }, + modifiedAtVersions: [ + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object] + ], + sharedObjects: [ [Object], [Object], [Object], [Object], [Object] ], + transactionDigest: '21Hu85qu8k57qjQNBrUr34WckG8J77q5dJasA1Lmk6G7', + created: [ + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + ... 20 more items + ], + mutated: [ + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object] + ], + deleted: [ [Object], [Object], [Object], [Object] ], + gasObject: { owner: [Object], reference: [Object] }, + eventsDigest: '6P2ndsQ9KqvnpJyB7WM5md9s6oz5A74zhHqerxLFJp9E', + dependencies: [ + '8iam8V13n7W5ZMvN4DBLRHPRnrsYeFwXvBhTiDqYy56', + '34e7fKaK9a4JZbsBco8hW5XAqWtC2tfNh4UHvdVWT4Tg', + '4kajRRWz6c3Lp33fXTyeJ2gFNodfDw5cTEuwu32xciJ3', + '4vjYQYgbtCWiGJEG8DytMq9mn8R6bwiBHtoo1mmyRZDq', + '6o2XStdhMWJL5ywSgRpLGJW3SApRFoYmyTnbA62sewvR', + 'BBir5QSG441hd5BfGTRSP7bx9sXif6hFLxji2pSBAmGb', + 'BJwP2eaj2zfkj1w4C6oCMZbsay6wA45gVs5fchmpNn5n', + 'DoVa7yuMs7gBFAzeyAq2VEQmWePBCCfWte7fopr7QY3n', + 'EY8ZaDkjhyBXX8iu9HXPQWznBp4QUcpAaTuwXSheDVuq' + ] + }, + confirmedLocalExecution: true +} +{ + digest: '7JLn9g3aGzVDdjGs4EgxeW1ihL4CXFDyUYf3Mjrbr1Yu', + effects: { + messageVersion: 'v1', + status: { status: 'success' }, + executedEpoch: '442', + gasUsed: { + computationCost: '8283000', + storageCost: '615052800', + storageRebate: '607931676', + nonRefundableStorageFee: '6140724' + }, + modifiedAtVersions: [ + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + ... 72 more items + ], + sharedObjects: [ [Object], [Object], [Object], [Object], [Object], [Object] ], + transactionDigest: '7JLn9g3aGzVDdjGs4EgxeW1ihL4CXFDyUYf3Mjrbr1Yu', + created: [ [Object] ], + mutated: [ + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], [Object], [Object], + [Object], [Object], [Object], [Object], + ... 72 more items + ], + gasObject: { owner: [Object], reference: [Object] }, + eventsDigest: 'Hz2oT6rsUuNPqrpjrkE7eVfEVDuBcwFU8TriBAeK39xv', + dependencies: [ + '21Hu85qu8k57qjQNBrUr34WckG8J77q5dJasA1Lmk6G7', + '9RQQ6BLRwUm3uBR6r4ejCVs9PpuCdyiVERC71UM3YySf', + 'BBir5QSG441hd5BfGTRSP7bx9sXif6hFLxji2pSBAmGb', + 'EY8ZaDkjhyBXX8iu9HXPQWznBp4QUcpAaTuwXSheDVuq', + 'G5iEpdcc42nL13Q2wKd7MTVoLThdxE8UMmzY8ebavByX' + ] + }, + confirmedLocalExecution: true +} diff --git a/mover/isQyoung/code/task6/sdk.js b/mover/isQyoung/code/task6/sdk.js new file mode 100644 index 000000000..c5a8b8b47 --- /dev/null +++ b/mover/isQyoung/code/task6/sdk.js @@ -0,0 +1,15 @@ +import { NAVISDKClient } from 'navi-sdk' +import { Sui } from 'navi-sdk/dist/address.js' + +const mnemonic = 'xxx' //填自己的助记词,省事很多 +const client = new NAVISDKClient({ mnemonic, networkType: "mainnet", numberOfAccounts: 1 }) //如果要随机生成,就删除这句代码中的mnemonic, +const account = client.accounts[0]//默认刚刚传入的地址 +console.log(account) +async function main() { + let result = await account.depositToNavi(Sui, 1)//(Sui, 1)这里面的数字,大点,0.几会报错 + console.log(result) + result = await account.withdraw(Sui, 1)//(Sui, 1)这里面的数字,大点,0.几会报错 + console.log(result) +} + +main() diff --git a/mover/isQyoung/code/task7/check_in/Move.lock b/mover/isQyoung/code/task7/check_in/Move.lock new file mode 100644 index 000000000..3c6293a7b --- /dev/null +++ b/mover/isQyoung/code/task7/check_in/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "CADBA560F959A19B76FB7025DC2079CCDB1E948BF9F3E73E0C1FEF81CA1F31FB" +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 = "0x42fd69e72707f6b5699e1b37b827d139bce75116f67f9ffb1fff5c2f6ba958e6" +latest-published-id = "0x42fd69e72707f6b5699e1b37b827d139bce75116f67f9ffb1fff5c2f6ba958e6" +published-version = "1" diff --git a/mover/isQyoung/code/task7/check_in/Move.toml b/mover/isQyoung/code/task7/check_in/Move.toml new file mode 100644 index 000000000..87af25a2b --- /dev/null +++ b/mover/isQyoung/code/task7/check_in/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "check_in" +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] +check_in = "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/isQyoung/code/task7/check_in/get_flag.log b/mover/isQyoung/code/task7/check_in/get_flag.log new file mode 100644 index 000000000..d774ffa88 --- /dev/null +++ b/mover/isQyoung/code/task7/check_in/get_flag.log @@ -0,0 +1,144 @@ +Transaction Digest: 8wyTVLHAeBzG4BBnoGDj5YJEKTZvBQXBUVhRbFC9nnfS +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Owner: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Budget: 2972420 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Version: 59320784 │ +│ │ Digest: 5K87pd3J9N9ATjSAsRHbjUSgLXK2gqHBur6FUFa6yoEZ │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: [227,129,3,142,251,128,180,230,144,65,28,104,199,36,181,210,169,141,183,121,177,124,233,173,130,134,177,166,232,104,76,4] │ │ +│ │ 1 Pure Arg: Type: 0x1::ascii::String, Value: "isQyoung" │ │ +│ │ 2 Shared Object ID: 0xc9750d187491a5bc5fd245b4cf72f408aca593c886e577ae6e9730889f9e56bd │ │ +│ │ 3 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: get_flag │ │ +│ │ │ Module: check_in │ │ +│ │ │ Package: 0x42fd69e72707f6b5699e1b37b827d139bce75116f67f9ffb1fff5c2f6ba958e6 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ │ Input 3 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ w5jL6EWwQ2JxzD8fc9++F3XiP+GYLMCAGMk50EhmkZEfG9K7dJuLNJrRTvIsIhlsE7XaS+MPmUTrZXzjLrWbCA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 8wyTVLHAeBzG4BBnoGDj5YJEKTZvBQXBUVhRbFC9nnfS │ +│ Status: Success │ +│ Executed Epoch: 414 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 59320785 │ +│ │ Digest: AadHbq4q7YUwcTKqDEAXLwGjUwebXXrLKWdvETRHMsGf │ +│ └── │ +│ ┌── │ +│ │ ID: 0xc9750d187491a5bc5fd245b4cf72f408aca593c886e577ae6e9730889f9e56bd │ +│ │ Owner: Shared( 59320774 ) │ +│ │ Version: 59320785 │ +│ │ Digest: CmU2eBtHAtcsXpABTacHxX5yHkhoBUmdQL7psnMYzqCo │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xc9750d187491a5bc5fd245b4cf72f408aca593c886e577ae6e9730889f9e56bd │ +│ │ Version: 59320784 │ +│ │ Digest: 2Xbbt6CAXkotiAVFZizFhMGbjV57zL19kTq8L4HdEMDi │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ +│ │ Version: 51112284 │ +│ │ Digest: GDm6dEcSwMuUP16zDcJVmaquF7SjwDsWT3xRMvGjq79E │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 59320785 │ +│ │ Digest: AadHbq4q7YUwcTKqDEAXLwGjUwebXXrLKWdvETRHMsGf │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2530800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2445300 MIST │ +│ Non-refundable Storage Fee: 24700 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3svUMYqbYbNVpzx3hDBAb7tCtot2xYzgeRRz1fZM1jCz │ +│ A7fDmw21pbX2SCjHQF8uy1Fstk7ZT4DjypynpFRoHBh1 │ +│ GKrrMt7Q9WERjeBYKRAc5zKDm3GoMbTuNgBFwHaoWmA3 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 8wyTVLHAeBzG4BBnoGDj5YJEKTZvBQXBUVhRbFC9nnfS:0 │ +│ │ PackageID: 0x42fd69e72707f6b5699e1b37b827d139bce75116f67f9ffb1fff5c2f6ba958e6 │ +│ │ Transaction Module: check_in │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ EventType: 0x42fd69e72707f6b5699e1b37b827d139bce75116f67f9ffb1fff5c2f6ba958e6::check_in::Flag │ +│ │ ParsedJSON: │ +│ │ ┌───────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ flag │ true │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ github_id │ isQyoung │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ sender │ 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ ture_num │ 1 │ │ +│ │ └───────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 59320785 │ +│ │ Digest: AadHbq4q7YUwcTKqDEAXLwGjUwebXXrLKWdvETRHMsGf │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xc9750d187491a5bc5fd245b4cf72f408aca593c886e577ae6e9730889f9e56bd │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Shared( 59320774 ) │ +│ │ ObjectType: 0x42fd69e72707f6b5699e1b37b827d139bce75116f67f9ffb1fff5c2f6ba958e6::check_in::FlagString │ +│ │ Version: 59320785 │ +│ │ Digest: CmU2eBtHAtcsXpABTacHxX5yHkhoBUmdQL7psnMYzqCo │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1085500 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + diff --git a/mover/isQyoung/code/task7/check_in/publish.log b/mover/isQyoung/code/task7/check_in/publish.log new file mode 100644 index 000000000..8c6a544fd --- /dev/null +++ b/mover/isQyoung/code/task7/check_in/publish.log @@ -0,0 +1,158 @@ +[warn] Client/Server api version mismatch, client api version : 1.27.2, server api version : 1.28.0 +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING check_in +warning[W09002]: unused variable + ┌─ /home/qyoung/github/letsmove/mover/isQyoung/code/task7/check_in/sources/check_in.move:79:9 + │ +79 │ ctx: &mut TxContext + │ ^^^ Unused parameter 'ctx'. Consider removing or prefixing with an underscore: '_ctx' + │ + = This warning can be suppressed with '#[allow(unused_variable)]' applied to the 'module' or module member ('const', 'fun', or 'struct') + +Successfully verified dependencies on-chain against source. +Transaction Digest: 3svUMYqbYbNVpzx3hDBAb7tCtot2xYzgeRRz1fZM1jCz +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Owner: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Budget: 15953600 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Version: 59320773 │ +│ │ Digest: 7qRMFZTHaf6X4czRdP34t3Q2QtvQ1JGUDkDAk1ZJLoUN │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ XWUPXL72JNCgWvX0xzar5fNESVub2ErPVmmJnQHvMV0YG9Lsy9VDygfD2LI8oRa1Cu2a0o95sN4byNeTSF3SDA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 3svUMYqbYbNVpzx3hDBAb7tCtot2xYzgeRRz1fZM1jCz │ +│ Status: Success │ +│ Executed Epoch: 414 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x42fd69e72707f6b5699e1b37b827d139bce75116f67f9ffb1fff5c2f6ba958e6 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: GFQs4PMxdVsTBQjEU99nWuPmtwGLwDN2ZoQnpDgmnGg2 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xb0018d316a40424dfe50f5ec3106b0e70c7df4898f09c704da23f54a7c5998af │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 59320774 │ +│ │ Digest: CMMF8eGXBncdzicNjD64FvtQTw6BYbEqwLnrr9QTbuC3 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xc9750d187491a5bc5fd245b4cf72f408aca593c886e577ae6e9730889f9e56bd │ +│ │ Owner: Shared( 59320774 ) │ +│ │ Version: 59320774 │ +│ │ Digest: 6hX4fGECRv6rQJD2g1Dyh39frAHKrTVb38p7saU8NA5x │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 59320774 │ +│ │ Digest: BpB3GpyHihJuXDZS2uXkWSp1tCDkehLh8qWqrJrRiXmU │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 59320774 │ +│ │ Digest: BpB3GpyHihJuXDZS2uXkWSp1tCDkehLh8qWqrJrRiXmU │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 13953600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3Hry5CyWQUTNV5nRZTNxoWyfN9zxBEcwsYkXUyTHCrmE │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +│ CVCWvLWpAiMLiKYwQV3EafSPQmRTjCAcbdrGsrhxSBZy │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xb0018d316a40424dfe50f5ec3106b0e70c7df4898f09c704da23f54a7c5998af │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 59320774 │ +│ │ Digest: CMMF8eGXBncdzicNjD64FvtQTw6BYbEqwLnrr9QTbuC3 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xc9750d187491a5bc5fd245b4cf72f408aca593c886e577ae6e9730889f9e56bd │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Shared( 59320774 ) │ +│ │ ObjectType: 0x42fd69e72707f6b5699e1b37b827d139bce75116f67f9ffb1fff5c2f6ba958e6::check_in::FlagString │ +│ │ Version: 59320774 │ +│ │ Digest: 6hX4fGECRv6rQJD2g1Dyh39frAHKrTVb38p7saU8NA5x │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 59320774 │ +│ │ Digest: BpB3GpyHihJuXDZS2uXkWSp1tCDkehLh8qWqrJrRiXmU │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x42fd69e72707f6b5699e1b37b827d139bce75116f67f9ffb1fff5c2f6ba958e6 │ +│ │ Version: 1 │ +│ │ Digest: GFQs4PMxdVsTBQjEU99nWuPmtwGLwDN2ZoQnpDgmnGg2 │ +│ │ Modules: check_in │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -13975480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/isQyoung/code/task7/check_in/sources/check_in.move b/mover/isQyoung/code/task7/check_in/sources/check_in.move new file mode 100644 index 000000000..60716db10 --- /dev/null +++ b/mover/isQyoung/code/task7/check_in/sources/check_in.move @@ -0,0 +1,102 @@ +/// Module: check_in +module check_in::check_in { + use std::ascii::{String, string}; + use std::bcs; + use std::hash::sha3_256; + use sui::event; + use sui::random; + use sui::random::Random; + use sui::transfer::share_object; + use std::debug; + + const ESTRING: u64 = 0; + + public struct Flag has copy, drop { + sender: address, + flag: bool, + ture_num: u64, + github_id: String + } + + public struct FlagString has key { + id: UID, + str: String, + ture_num: u64 + } + + fun init(ctx: &mut TxContext) { + let flag_str = FlagString { + id: object::new(ctx), + str: string(b"LetsMoveCTF"), + ture_num: 0 + }; + share_object(flag_str); + } + + + entry fun get_flag( + flag: vector, + github_id: String, + flag_str: &mut FlagString, + rand: &Random, + ctx: &mut TxContext + ) { + let mut bcs_flag = bcs::to_bytes(&flag_str.str); + vector::append(&mut bcs_flag, *github_id.as_bytes()); + + assert!(flag == sha3_256(bcs_flag), ESTRING); + + flag_str.str = getRandomString(rand, ctx); + + flag_str.ture_num = flag_str.ture_num + 1; + + event::emit(Flag { + sender: tx_context::sender(ctx), + flag: true, + ture_num: flag_str.ture_num, + github_id + }); + } + + + fun getRandomString(rand: &Random, ctx: &mut TxContext): String { + let mut gen = random::new_generator(rand, ctx); + + let mut str_len = random::generate_u8_in_range(&mut gen, 4, 30); + + let mut rand: vector = b""; + while (str_len != 0) { + let rand_num = random::generate_u8_in_range(&mut gen, 34, 126); + vector::push_back(&mut rand, rand_num); + str_len = str_len - 1; + }; + + string(rand) + } + + public fun get_vector( + github_id: String, + flag_str: &mut FlagString, + ctx: &mut TxContext + ): vector { + debug::print(&string(b"get_vector")); + + let mut bcs_flag = bcs::to_bytes(&flag_str.str); + + vector::append(&mut bcs_flag, *github_id.as_bytes()); + + debug::print(&bcs_flag); + let s2 = sha3_256(bcs_flag); + debug::print(&s2); + + s2 + } + + // === Tests === + #[test_only] + public fun test_for_init(ctx: &mut TxContext) + { + init(ctx); + } + +} diff --git a/mover/isQyoung/code/task7/check_in/tests/check_in_tests.move b/mover/isQyoung/code/task7/check_in/tests/check_in_tests.move new file mode 100644 index 000000000..bc477594f --- /dev/null +++ b/mover/isQyoung/code/task7/check_in/tests/check_in_tests.move @@ -0,0 +1,61 @@ +#[test_only] +#[allow(unused_variable, unused_use, unused_let_mut)] +module check_in::check_in_tests { + use std::ascii::string; + use std::debug; + use sui::test_scenario as ts; + use check_in::check_in::{Self, Flag, FlagString}; + use sui::random::{Self, Random}; + + #[test] + fun test_check_in() { + let admin = @0x0; + let mut scenario = ts::begin(admin); + + // init + ts::next_tx(&mut scenario, admin); + { + check_in::test_for_init(scenario.ctx()); + }; + + ts::next_tx(&mut scenario, admin); + { + random::create_for_testing(scenario.ctx()); + }; + + // get vector + let mut my_vector = vector::empty(); + ts::next_tx(&mut scenario, admin); + { + let mut flag_str = ts::take_shared(&scenario); + vector::append(&mut my_vector, check_in::get_vector(string(b"isQyoung"), &mut flag_str, scenario.ctx())); + + let len = vector::length(&my_vector); + debug::print(&my_vector); + let mut i = 0; + while (i < len) + { + let byte = *vector::borrow(&my_vector, i); + i = i + 1; + debug::print(&byte); + }; + ts::return_shared(flag_str); + }; + + // get_flag + ts::next_tx(&mut scenario, admin); + { + let rand = ts::take_shared(&scenario); + let mut flag_str = ts::take_shared(&scenario); + + check_in::get_flag(my_vector, string(b"isQyoung"), &mut flag_str, &rand, scenario.ctx()); + + ts::return_shared(flag_str); + ts::return_shared(rand); + }; + + ts::end(scenario); + // pass + } +} + diff --git a/mover/isQyoung/code/task8/lets_move/Move.lock b/mover/isQyoung/code/task8/lets_move/Move.lock new file mode 100644 index 000000000..3057e32c6 --- /dev/null +++ b/mover/isQyoung/code/task8/lets_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "786B91A5B97E30CFE4109DB806C7FDAA208AD34906C77AB899770D4D0AEB5DB1" +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 = "0x380ddd1c3c1997202f834a15de8374b9aaa0a9ea8386a125b0e1d68419a334b9" +latest-published-id = "0x380ddd1c3c1997202f834a15de8374b9aaa0a9ea8386a125b0e1d68419a334b9" +published-version = "1" diff --git a/mover/isQyoung/code/task8/lets_move/Move.toml b/mover/isQyoung/code/task8/lets_move/Move.toml new file mode 100644 index 000000000..2c2ad6ae1 --- /dev/null +++ b/mover/isQyoung/code/task8/lets_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "lets_move" +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] +lets_move = "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/isQyoung/code/task8/lets_move/get_flag.log b/mover/isQyoung/code/task8/lets_move/get_flag.log new file mode 100644 index 000000000..7425d46df --- /dev/null +++ b/mover/isQyoung/code/task8/lets_move/get_flag.log @@ -0,0 +1,144 @@ +Transaction Digest: 9shGCd9SbABHUmQBmk47kh4BWVQmVDeeN2q5ieeY9YXE +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Owner: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ Gas Budget: 3004264 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Version: 68550695 │ +│ │ Digest: 6QddDmpoDqa2wfWLEV9cWYg8SYnqjBsfgZnxBMZnKkUj │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: [116,49,162] │ │ +│ │ 1 Pure Arg: Type: 0x1::ascii::String, Value: "isQyoung" │ │ +│ │ 2 Shared Object ID: 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 │ │ +│ │ 3 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: get_flag │ │ +│ │ │ Module: lets_move │ │ +│ │ │ Package: 0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ │ Input 3 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ qGNaKr8kocpXsrprYnKflGKIbdTe74w/VsUgkLBwVQAS8/C5Jvi+gylNTc7Uod/ow3X5NzhqhK1DAI2j9VBUDw== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 9shGCd9SbABHUmQBmk47kh4BWVQmVDeeN2q5ieeY9YXE │ +│ Status: Success │ +│ Executed Epoch: 421 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 68550696 │ +│ │ Digest: 4AxhEmcJ55rLZRAzm4n2Yuj5gPYA6ZeMJ1XEySQqiPK5 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 │ +│ │ Owner: Shared( 48002539 ) │ +│ │ Version: 68550696 │ +│ │ Digest: FedRHq1H1cvyhbT41M7Ys6g3ctJJC428pX1cHBMFFXBR │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 │ +│ │ Version: 68550695 │ +│ │ Digest: 26jbqQAQ3fTrkAiqa5yqB5qtDdaPNif8WgWoWCBAHvr6 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ +│ │ Version: 53416147 │ +│ │ Digest: 6b6472yeFEvyeKzVmgqbsYch7o1c4Vbo1FsNWzgAYKvm │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ Version: 68550696 │ +│ │ Digest: 4AxhEmcJ55rLZRAzm4n2Yuj5gPYA6ZeMJ1XEySQqiPK5 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2546000 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2588256 MIST │ +│ Non-refundable Storage Fee: 26144 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 42wmqLuEBW8fKyDDZXvw1kiUpVFqMU8wi1gTkzzU9no1 │ +│ GRc9LeV8ThaRLR9ABfmtYM9QSngso92AxeiGGxqgbhvZ │ +│ HZrwqVTRJtE1KyLW7zjjapgufEcUDFdRRupBDcob8PQc │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 9shGCd9SbABHUmQBmk47kh4BWVQmVDeeN2q5ieeY9YXE:0 │ +│ │ PackageID: 0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f │ +│ │ Transaction Module: lets_move │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ EventType: 0x97a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f::lets_move::Flag │ +│ │ ParsedJSON: │ +│ │ ┌───────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ flag │ true │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ github_id │ isQyoung │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ sender │ 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ ture_num │ 34 │ │ +│ │ └───────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x000047c14186ce4a68cce6effde8864b982819fcc39798bc4910b28efe273eed │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 68550696 │ +│ │ Digest: 4AxhEmcJ55rLZRAzm4n2Yuj5gPYA6ZeMJ1XEySQqiPK5 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 │ +│ │ Sender: 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 │ +│ │ Owner: Shared( 48002539 ) │ +│ │ ObjectType: 0x97a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f::lets_move::Challenge │ +│ │ Version: 68550696 │ +│ │ Digest: FedRHq1H1cvyhbT41M7Ys6g3ctJJC428pX1cHBMFFXBR │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x4b03a7bf4069d21d3f05b69d80fd4f9bcd8456ca846a564a90c8087916b08bc4 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -957744 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + diff --git a/mover/isQyoung/code/task8/lets_move/sources/lets_move.move b/mover/isQyoung/code/task8/lets_move/sources/lets_move.move new file mode 100644 index 000000000..1c35409c7 --- /dev/null +++ b/mover/isQyoung/code/task8/lets_move/sources/lets_move.move @@ -0,0 +1,89 @@ +/// Module: lets_move +module lets_move::lets_move { + use std::ascii::{String, string}; + use std::hash; + use sui::event; + use sui::bcs; + use sui::random; + use sui::random::Random; + use sui::transfer::share_object; + + const EPROOF: u64 = 0; + + public struct Flag has copy, drop { + sender: address, + flag: bool, + ture_num: u64, + github_id: String + } + + public struct Challenge has key { + id: UID, + str: String, + difficulity: u64, + ture_num: u64 + } + + fun init(ctx: &mut TxContext) { + let flag_str = Challenge { + id: object::new(ctx), + //str: string(b"LetsMoveCTF"), + str: string(b"N, + github_id: String, + challenge: &mut Challenge, + rand: &Random, + ctx: &mut TxContext + ) { + let mut full_proof: vector = vector::empty(); + vector::append(&mut full_proof, proof); + vector::append(&mut full_proof, tx_context::sender(ctx).to_bytes()); + vector::append(&mut full_proof, bcs::to_bytes(challenge)); + + let hash: vector = hash::sha3_256(full_proof); + + let mut prefix_sum: u32 = 0; + let mut i: u64 = 0; + while (i < challenge.difficulity) { + prefix_sum = prefix_sum + (*vector::borrow(&hash, i) as u32); + i = i + 1; + }; + + assert!(prefix_sum == 0, EPROOF); + + challenge.str = getRandomString(rand, ctx); + challenge.ture_num = challenge.ture_num + 1; + + event::emit(Flag { + sender: tx_context::sender(ctx), + flag: true, + ture_num: challenge.ture_num, + github_id + }); + } + + + fun getRandomString(rand: &Random, ctx: &mut TxContext): String { + let mut gen = random::new_generator(rand, ctx); + + let mut str_len = random::generate_u8_in_range(&mut gen, 4, 30); + + let mut rand: vector = b""; + while (str_len != 0) { + let rand_num = random::generate_u8_in_range(&mut gen, 34, 126); + vector::push_back(&mut rand, rand_num); + str_len = str_len - 1; + }; + + string(rand) + } +} + diff --git a/mover/isQyoung/code/task8/lets_move/tests/lets_move_tests.move b/mover/isQyoung/code/task8/lets_move/tests/lets_move_tests.move new file mode 100644 index 000000000..4febaae1a --- /dev/null +++ b/mover/isQyoung/code/task8/lets_move/tests/lets_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module lets_move::lets_move_tests { + // uncomment this line to import the module + // use lets_move::lets_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_lets_move() { + // pass + } + + #[test, expected_failure(abort_code = ::lets_move::lets_move_tests::ENotImplemented)] + fun test_lets_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/isQyoung/images/getflag.png b/mover/isQyoung/images/getflag.png new file mode 100644 index 000000000..eca94103e Binary files /dev/null and b/mover/isQyoung/images/getflag.png differ diff --git a/mover/isQyoung/images/hello_isQyoung.png b/mover/isQyoung/images/hello_isQyoung.png new file mode 100644 index 000000000..f3565f224 Binary files /dev/null and b/mover/isQyoung/images/hello_isQyoung.png differ diff --git a/mover/isQyoung/images/isqyoung.png b/mover/isQyoung/images/isqyoung.png new file mode 100644 index 000000000..d1fc5b3e9 Binary files /dev/null and b/mover/isQyoung/images/isqyoung.png differ diff --git a/mover/isQyoung/images/qyoung_nft.PNG b/mover/isQyoung/images/qyoung_nft.PNG new file mode 100644 index 000000000..c16f1df14 Binary files /dev/null and b/mover/isQyoung/images/qyoung_nft.PNG differ diff --git a/mover/isQyoung/images/sui_wallet.png b/mover/isQyoung/images/sui_wallet.png new file mode 100644 index 000000000..abc100fcd Binary files /dev/null and b/mover/isQyoung/images/sui_wallet.png differ diff --git a/mover/isQyoung/notes/readme.md b/mover/isQyoung/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/isQyoung/readme.md b/mover/isQyoung/readme.md new file mode 100644 index 000000000..f88832ff8 --- /dev/null +++ b/mover/isQyoung/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x741a3483255771b31d81d52b2018d6d69c739ec49f3077dadda93414825baa1b` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `isQyoung` + +## 个人简介 +- 工作经验: 5年 +- 技术栈: `Python` `Shell` +> 重要提示 请认真写自己的简介 +- 偶然接触区块链, 觉得很有意思,期待以各种途径了解学习区块链,希望有一天可以为区块链出一份力 +- 联系方式: tg: `@isQyoung` + +## 任务 + +## 01 hello move +- [] Sui cli version: 1.26.2-f531168c7452 +- [] Sui钱包截图: ![Sui钱包截图](./images/sui_wallet.png) +- [] package id: 0xf4b4cee5d0687e79def2efb561f17c183e3e526a86382d7db5cf2d33f69d7152 +- [] package id 在 scan上的查看截图:![Scan截图](./images/hello_isQyoung.png) + +## 02 move coin +- [] My Coin package id : 0x10a875b82f2809e40b75af3b7d12b161007b90d5653e07e88d516fa229ed0cfa +- [] Faucet package id : 0x2d5da0195bef2cbef4644999afb9b2d5cd0f5b5b6c1f3887f75060a3b821d137 +- [] 转账 `My Coin` hash: 3r7T1ER65BWToKDcTTfNpaFtcD8kiubvtk4huJ53spty +- [] `Faucet Coin` address1 mint hash: 9oeeBCRhJ5786ctUVLBgWqfiZEyuvpH59StQmZmXD3cw +- [] `Faucet Coin` address2 mint hash: R7XWoGWgSg8KJahCmJCKmpuTZbuS3gLPQjPzeZuvz8U + +## 03 move NFT +- [] nft package id : 0x106afe9a22dda46d5e91e53202fb45bb820af80444f8404745ba3f867aba1a7c +- [] nft object id : 0xc96066f186536298adf904d43aadaee721ab85065d5f28eade2506a1f6b3b666 +- [] 转账 nft hash: 9uxskAwMYHJXZoitwgTfjfAJV9hgnqR5KeDEqg88QMSv +- [] scan上的NFT截图:![Scan截图](./images/qyoung_nft.PNG) + +## 04 Move Game +- [] game package id : 0x31827cb9ca9237858a2d070eb11444996b15ebe2962cfd808bf47e8b3de39ade +- [] deposit Coin hash: 5JuXzVp1293ibnFoRs2CjLtjLEoMwAgrFXqAxwBKuHFU +- [] withdraw `Coin` hash: DyctAYagDdzDui8Z6eggbYbqAA9kLkGAhxvXje997oic +- [] play game hash: H4wJvaPerFF5ryXwiaKrTzouXY3YTxy3SBQkmuuwaY9T + +## 05 Move Swap +- [] swap package id : 0x6e89ab467c2999a02e8c8f52e993cfce2050bead2fc9ec8f36cf4b32b84a8d04 +- [] call swap CoinA-> CoinB hash : 7KcV6HfRJpSeyLSR1oQ8mhLzR1wE5wXhn7qdBdiAkdeD +- [] call swap CoinB-> CoinA hash : 8a4iz9NSH7TYGaYw6D14sdEBpMSAprfNxBvkrMPWXuHB + +## 06 Dapp-kit SDK PTB +- [] save hash : 21Hu85qu8k57qjQNBrUr34WckG8J77q5dJasA1Lmk6G7 + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/getflag.png) +- [] flag hash : 5WU4GmrX9GNPD1NSSW6u9UMmBRYS68RUpebQc3vWZ176 + +## 08 Move CTF Lets Move +- [] proof : [116, 49, 162] +- [] flag hash : 9shGCd9SbABHUmQBmk47kh4BWVQmVDeeN2q5ieeY9YXE diff --git a/mover/itpika/code/readme.md b/mover/itpika/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/itpika/code/task1/Move.lock b/mover/itpika/code/task1/Move.lock new file mode 100644 index 000000000..095b505d4 --- /dev/null +++ b/mover/itpika/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "23C730475A68F1E6BEDDB2CD78A3EB131C4A59425643F732B34CA8F439B08D68" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x33489aa44eb9cf9632b5f234403cf68aaa7354a367df4491b5fc4ba2af72e00f" +latest-published-id = "0x33489aa44eb9cf9632b5f234403cf68aaa7354a367df4491b5fc4ba2af72e00f" +published-version = "1" diff --git a/mover/itpika/code/task1/Move.toml b/mover/itpika/code/task1/Move.toml new file mode 100644 index 000000000..f6bf62a02 --- /dev/null +++ b/mover/itpika/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello" +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] +hello = "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/itpika/code/task1/sources/hello.move b/mover/itpika/code/task1/sources/hello.move new file mode 100644 index 000000000..615eb6075 --- /dev/null +++ b/mover/itpika/code/task1/sources/hello.move @@ -0,0 +1,32 @@ +/// Module: hello +module hello::hello { + use sui::tx_context::{sender}; + use std::string; + use std::string::String; + use sui::event; + + public struct HelloMove has key, store { + id: UID, + val: String, + } + + // ====== Events ====== + + public struct InitEvent has copy, drop { + id: ID, + val: String, + } + + fun init(ctx:&mut TxContext){ + let id = object::new(ctx); + event::emit(InitEvent {id: object::uid_to_inner(&id), val: string::utf8(b"itpika")}); + transfer::public_transfer(HelloMove{ + id, + val: string::utf8(b"itpika"), + }, sender(ctx)); + } + + // public fun print() { + // debug::print(string::utf8(b"itpika")); + // } +} diff --git a/mover/itpika/code/task1/tests/hello_tests.move b/mover/itpika/code/task1/tests/hello_tests.move new file mode 100644 index 000000000..945f366ef --- /dev/null +++ b/mover/itpika/code/task1/tests/hello_tests.move @@ -0,0 +1,18 @@ +#[test_only] +module hello::hello_tests { + // uncomment this line to import the module + use hello::hello; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello() { + // pass + hello::print(); + } + + #[test, expected_failure(abort_code = ::hello::hello_tests::ENotImplemented)] + fun test_hello_fail() { + abort ENotImplemented + } +} diff --git a/mover/itpika/code/task2/coin/Move.lock b/mover/itpika/code/task2/coin/Move.lock new file mode 100644 index 000000000..6d76bef9b --- /dev/null +++ b/mover/itpika/code/task2/coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C2F74C939E7718D628A7FC73F4DB291716826407D2EDE34ED9C9C8FACE388FE2" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x9e4700a5b7664faa9345591e1c75760a6db76d78a9674b63aca97d162b109ce2" +latest-published-id = "0x9e4700a5b7664faa9345591e1c75760a6db76d78a9674b63aca97d162b109ce2" +published-version = "1" diff --git a/mover/itpika/code/task2/coin/Move.toml b/mover/itpika/code/task2/coin/Move.toml new file mode 100644 index 000000000..110c60ca5 --- /dev/null +++ b/mover/itpika/code/task2/coin/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "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)"] +published-at = "0xfa45ab508f90fda3a761a5a4eed6073f7d35824acdd58ffac10dc13ee7f45138" + +[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] +coin = "0xfa45ab508f90fda3a761a5a4eed6073f7d35824acdd58ffac10dc13ee7f45138" + +# 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/itpika/code/task2/coin/sources/coin.move b/mover/itpika/code/task2/coin/sources/coin.move new file mode 100644 index 000000000..562775939 --- /dev/null +++ b/mover/itpika/code/task2/coin/sources/coin.move @@ -0,0 +1,32 @@ +module coin::itpika { + use sui::coin::{Self}; + use sui::url::{Url,Self}; + // use sui::balance::{Self, Balance}; + + /// The type identifier of coin. The coin will have a type + /// tag of kind: `Coin` + /// Make sure that the name of the type matches the module's name. + public struct ITPIKA has drop {} + // const TOTAL_SUPPLY_MIST: u64 = 10_000_000_000_000_000_000; + + /// Module initializer is called once on module publish. A treasury + /// cap is sent to the publisher, who then controls minting and burning + fun init(witness: ITPIKA, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, 6, b"itpika", b"itpika coin", b"", option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/29301013")), ctx); + + // let supply = coin::treasury_into_supply(treasury.clone()); + // let total_sui = balance::increase_supply(&mut supply, TOTAL_SUPPLY_MIST); + // balance::increase_supply(&mut supply, TOTAL_SUPPLY_MIST); + // balance::destroy_supply(supply); + + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + public entry fun mint(treasury_cap: &mut coin::TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } + + +} diff --git a/mover/itpika/code/task2/coin/sui.txt b/mover/itpika/code/task2/coin/sui.txt new file mode 100644 index 000000000..acaa4e3ba --- /dev/null +++ b/mover/itpika/code/task2/coin/sui.txt @@ -0,0 +1 @@ +sui client publish --gas-budget 50000000 --skip-dependency-verification flag diff --git a/mover/itpika/code/task2/coin/tests/hello_tests.move b/mover/itpika/code/task2/coin/tests/hello_tests.move new file mode 100644 index 000000000..945f366ef --- /dev/null +++ b/mover/itpika/code/task2/coin/tests/hello_tests.move @@ -0,0 +1,18 @@ +#[test_only] +module hello::hello_tests { + // uncomment this line to import the module + use hello::hello; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello() { + // pass + hello::print(); + } + + #[test, expected_failure(abort_code = ::hello::hello_tests::ENotImplemented)] + fun test_hello_fail() { + abort ENotImplemented + } +} diff --git a/mover/itpika/code/task2/faucet/Move.lock b/mover/itpika/code/task2/faucet/Move.lock new file mode 100644 index 000000000..9b0c5ae9b --- /dev/null +++ b/mover/itpika/code/task2/faucet/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "B89504166BF37ECA915241A614E9483F9642842A7CFC1DD86415AC9857CFB2F6" +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.26.1" +edition = "2024.beta" +flavor = "sui" diff --git a/mover/itpika/code/task2/faucet/Move.toml b/mover/itpika/code/task2/faucet/Move.toml new file mode 100644 index 000000000..2f4886b21 --- /dev/null +++ b/mover/itpika/code/task2/faucet/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "faucet" +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)"] +published-at = "0x9e4700a5b7664faa9345591e1c75760a6db76d78a9674b63aca97d162b109ce2" + +[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] +#faucet = "0x0" +faucet = "0x9e4700a5b7664faa9345591e1c75760a6db76d78a9674b63aca97d162b109ce2" + + +# 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/itpika/code/task2/faucet/sources/faucet_coin.move b/mover/itpika/code/task2/faucet/sources/faucet_coin.move new file mode 100644 index 000000000..46c5b78c7 --- /dev/null +++ b/mover/itpika/code/task2/faucet/sources/faucet_coin.move @@ -0,0 +1,27 @@ +module faucet::itpika_faucet { + use sui::coin::{Self}; + use sui::url::{Url,Self}; + // use sui::balance::{Self, Balance}; + + /// The type identifier of coin. The coin will have a type + /// tag of kind: `Coin` + /// Make sure that the name of the type matches the module's name. + public struct ITPIKA_FAUCET has drop {} + // const TOTAL_SUPPLY_MIST: u64 = 10_000_000_000_000_000_000; + + /// Module initializer is called once on module publish. A treasury + /// cap is sent to the publisher, who then controls minting and burning + fun init(witness: ITPIKA_FAUCET, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, 6, b"itpika_faucet", b"itpika faucet coin", b"", option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/29301013")), ctx); + + transfer::public_share_object(treasury); + transfer::public_freeze_object(metadata); + } + + public entry fun mint(treasury_cap: &mut coin::TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } + + +} diff --git a/mover/itpika/code/task2/faucet/tests/hello_tests.move b/mover/itpika/code/task2/faucet/tests/hello_tests.move new file mode 100644 index 000000000..945f366ef --- /dev/null +++ b/mover/itpika/code/task2/faucet/tests/hello_tests.move @@ -0,0 +1,18 @@ +#[test_only] +module hello::hello_tests { + // uncomment this line to import the module + use hello::hello; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello() { + // pass + hello::print(); + } + + #[test, expected_failure(abort_code = ::hello::hello_tests::ENotImplemented)] + fun test_hello_fail() { + abort ENotImplemented + } +} diff --git a/mover/itpika/code/task3/Move.lock b/mover/itpika/code/task3/Move.lock new file mode 100644 index 000000000..4a5fe67ff --- /dev/null +++ b/mover/itpika/code/task3/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9D4FCF5807A34E3110DFBA44AD92FEFEC55EE3DE8CF58F3D302F55D3004E70D1" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x7b90f4793fe47417552fcd3fb1175ef04218252e248b31a38300d4496b2eb500" +latest-published-id = "0x7b90f4793fe47417552fcd3fb1175ef04218252e248b31a38300d4496b2eb500" +published-version = "1" diff --git a/mover/itpika/code/task3/Move.toml b/mover/itpika/code/task3/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/itpika/code/task3/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/itpika/code/task3/sources/nft.move b/mover/itpika/code/task3/sources/nft.move new file mode 100644 index 000000000..ac12cc77c --- /dev/null +++ b/mover/itpika/code/task3/sources/nft.move @@ -0,0 +1,95 @@ +module nft::itpika_nft { + use sui::url::{Self, Url}; + use std::string; + use sui::event; + + /// An example NFT that can be minted by anybody + public struct ItpikaNFT has key, store { + id: UID, + /// Name for the token + name: string::String, + /// Description of the token + description: string::String, + /// URL for the token + url: Url, + // TODO: allow custom attributes + } + + + // ===== Events ===== + + public struct NFTMinted has copy, drop { + // The Object ID of the NFT + object_id: ID, + // The creator of the NFT + creator: address, + // The name of the NFT + name: string::String, + } + + // ===== Public view functions ===== + + /// Get the NFT's `name` + public fun name(nft: &ItpikaNFT): &string::String { + &nft.name + } + + /// Get the NFT's `description` + public fun description(nft: &ItpikaNFT): &string::String { + &nft.description + } + + /// Get the NFT's `url` + public fun url(nft: &ItpikaNFT): &Url { + &nft.url + } + + // ===== Entrypoints ===== + + #[allow(lint(self_transfer))] + /// Create a new devnet_nft + public entry fun mint_to_sender( + name: vector, + description: vector, + url: vector, + ctx: &mut TxContext + ) { + let sender = ctx.sender(); + let nft = ItpikaNFT { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + url: url::new_unsafe_from_bytes(url) + }; + + event::emit(NFTMinted { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + /// Transfer `nft` to `recipient` + public entry fun transfer( + nft: ItpikaNFT, recipient: address, _: &mut TxContext + ) { + transfer::public_transfer(nft, recipient) + } + + /// Update the `description` of `nft` to `new_description` + public entry fun update_description( + nft: &mut ItpikaNFT, + new_description: vector, + _: &mut TxContext + ) { + nft.description = string::utf8(new_description) + } + + /// Permanently delete `nft` + entry fun burn(nft: ItpikaNFT, _: &mut TxContext) { + let ItpikaNFT { id, name: _, description: _, url: _ } = nft; + id.delete() + } +} \ No newline at end of file diff --git a/mover/itpika/code/task3/sui.txt b/mover/itpika/code/task3/sui.txt new file mode 100644 index 000000000..acaa4e3ba --- /dev/null +++ b/mover/itpika/code/task3/sui.txt @@ -0,0 +1 @@ +sui client publish --gas-budget 50000000 --skip-dependency-verification flag diff --git a/mover/itpika/code/task3/tests/hello_tests.move b/mover/itpika/code/task3/tests/hello_tests.move new file mode 100644 index 000000000..945f366ef --- /dev/null +++ b/mover/itpika/code/task3/tests/hello_tests.move @@ -0,0 +1,18 @@ +#[test_only] +module hello::hello_tests { + // uncomment this line to import the module + use hello::hello; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello() { + // pass + hello::print(); + } + + #[test, expected_failure(abort_code = ::hello::hello_tests::ENotImplemented)] + fun test_hello_fail() { + abort ENotImplemented + } +} diff --git a/mover/itpika/code/task4/game/Move.lock b/mover/itpika/code/task4/game/Move.lock new file mode 100644 index 000000000..e59ff4877 --- /dev/null +++ b/mover/itpika/code/task4/game/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "F4895195A03AE5F082ECC3775FE13923400767F87834A8D46B7358589D9F8293" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "faucet" }, +] + +[[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.package]] +name = "faucet" +source = { local = "../../task2/faucet" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xaabfcaf69af4e5d5f8c915dcd2e139f4e5026df1e0bd883fb3bcca36695045a8" +latest-published-id = "0xaabfcaf69af4e5d5f8c915dcd2e139f4e5026df1e0bd883fb3bcca36695045a8" +published-version = "1" diff --git a/mover/itpika/code/task4/game/Move.toml b/mover/itpika/code/task4/game/Move.toml new file mode 100644 index 000000000..2e30ba34d --- /dev/null +++ b/mover/itpika/code/task4/game/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "game" +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)"] +#published-at = "0xe0273ea986a52087883ff6f09c7c4cfda6e940d71d20357ec1dfa39e5d908212" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } +faucet = { local = "../../task2/faucet"} + +# 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] +game = "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. +#coin = "0x9e4700a5b7664faa9345591e1c75760a6db76d78a9674b63aca97d162b109ce2" + diff --git a/mover/itpika/code/task4/game/sources/game.move b/mover/itpika/code/task4/game/sources/game.move new file mode 100644 index 000000000..fa4b6a7ba --- /dev/null +++ b/mover/itpika/code/task4/game/sources/game.move @@ -0,0 +1,89 @@ +/// Module: game +module game::itpika_game { + + use sui::balance::{Self, Balance}; + // use sui::table::{Self, Table}; + use faucet::itpika_faucet::ITPIKA_FAUCET; + use sui::random::{Self, Random}; + use sui::tx_context::sender; + use sui::coin::{Self, Coin}; + use sui::event; + + const EOverBalance: u64 = 0; + // const EOnlyOneFAUCET: u64 = 1; + const EVaultIsEmpty: u64 = 2; + + // public struct ITPIKA_FAUCET has drop {} + + public struct PlayEvent has copy, drop { + // object_id: ID, + creator: address, + in_amount: u64, + win: bool, + win_amount: u64, + } + + public struct CoinPool has key { + id: UID, + // bal: Table, // 用户的可提起奖励 + amount: Balance, + } + + fun init(ctx: &mut TxContext) { + // let pool = CoinPool{ id: object::new(ctx), bal: table::new(ctx), total_amount: 0, amount: balance::zero()}; + let pool = CoinPool{ id: object::new(ctx), amount: balance::zero()}; + transfer::share_object(pool); + } + + // 猜大小抛骰子游戏, 1 小 2 大, + entry fun play(r: &Random, cp: &mut CoinPool, user_coin: &mut Coin, amount: u64, guess: u8, ctx: &mut TxContext) { + let coin_amount = amount * 1000000; + // 判断底金 + let user_bal = coin::value(user_coin); + assert!(user_bal >= coin_amount, EOverBalance); + // 判断奖池 + assert!(balance::value(&cp.amount) >= coin_amount, EVaultIsEmpty); + + let mut generator = random::new_generator(r, ctx); + let val = random::generate_u8_in_range(&mut generator, 1, 6); + if ((val <= 3 && guess == 1) || (val >= 4 && guess == 2)) { + // table::add(&mut cp.bal, sender(ctx), user_bal*2); + let win_coin = coin::from_balance(balance::split(&mut cp.amount, coin_amount*2), ctx); + user_coin.join(win_coin); + event::emit(PlayEvent { + creator: ctx.sender(), + win: true, + win_amount: coin_amount * 2, + in_amount: coin_amount, + }); + } else { + // table::add(&mut cp.bal, sender(ctx), user_bal/2); + let out_amount = user_coin.split(coin_amount, ctx); + cp.amount.join(coin::into_balance(out_amount)); + event::emit(PlayEvent { + creator: ctx.sender(), + win: false, + win_amount: 0, + in_amount: coin_amount, + }); + } + } + + // 给池注入底金(任何人都可以) + public entry fun deposit(user_coin: &mut Coin, cp: &mut CoinPool, amount: u64, ctx: &mut TxContext) { + // let mut value = coin::into_balance(user_coin); + // let in = balance::split(&mut value, amount); + + // let to_addr = object::uid_to_address(&cp.id); + let in = coin::split(user_coin, amount*1000000, ctx); + balance::join(&mut cp.amount, coin::into_balance(in)); + + // transfer::public_transfer(in, to_addr); + } + + // 获取池子资金 + public fun get_pool(cp: &mut CoinPool, _ctx: &mut TxContext): u64 { + return balance::value(&cp.amount) + } + +} diff --git a/mover/itpika/code/task4/game/tests/task4_tests.move b/mover/itpika/code/task4/game/tests/task4_tests.move new file mode 100644 index 000000000..321932cc6 --- /dev/null +++ b/mover/itpika/code/task4/game/tests/task4_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task4::task4_tests { + // uncomment this line to import the module + // use task4::task4; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task4() { + // pass + } + + #[test, expected_failure(abort_code = ::task4::task4_tests::ENotImplemented)] + fun test_task4_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/itpika/code/task5/swap/Move.lock b/mover/itpika/code/task5/swap/Move.lock new file mode 100644 index 000000000..3000300db --- /dev/null +++ b/mover/itpika/code/task5/swap/Move.lock @@ -0,0 +1,52 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "11BF82840DAAB66A2B7E07D431310C209230A397876BAF002B286A876704655E" +deps_digest = "060AD7E57DFB13104F21BE5F5C3759D03F0553FC3229247D9A7A6B45F50D03A3" +dependencies = [ + { name = "Sui" }, + { name = "coin" }, + { name = "faucet" }, +] + +[[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.package]] +name = "coin" +source = { local = "../../task2/coin" } + +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "faucet" +source = { local = "../../task2/faucet" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x1ed0470b006b5960c0834cdc73db2bc6c8492ed110582fa582267e4c3b948ccd" +latest-published-id = "0x1ed0470b006b5960c0834cdc73db2bc6c8492ed110582fa582267e4c3b948ccd" +published-version = "1" diff --git a/mover/itpika/code/task5/swap/Move.toml b/mover/itpika/code/task5/swap/Move.toml new file mode 100644 index 000000000..ede787c54 --- /dev/null +++ b/mover/itpika/code/task5/swap/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "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 (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" } +faucet = { local = "../../task2/faucet"} +coin = { local = "../../task2/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] +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" + diff --git a/mover/itpika/code/task5/swap/sources/swap.move b/mover/itpika/code/task5/swap/sources/swap.move new file mode 100644 index 000000000..fe1f09fbc --- /dev/null +++ b/mover/itpika/code/task5/swap/sources/swap.move @@ -0,0 +1,65 @@ +/// Module: swap +module swap::itpika_swap { + use sui::balance::{Self, Balance}; + use faucet::itpika_faucet::ITPIKA_FAUCET; + use coin::itpika::ITPIKA; + use sui::coin::{Self, Coin}; + + public struct Pool has key { + id: UID, + admin: address, + token_A: Balance, + token_B: Balance, + val_constant: u256, + } + + fun init(ctx: &mut TxContext) { + let pool = Pool { + id: object::new(ctx), + admin: ctx.sender(), + token_A: balance::zero(), + token_B: balance::zero(), + val_constant: 0, + }; + transfer::share_object(pool); + } + + entry fun deposit_A(pool: &mut Pool, bal: &mut Coin, amount: u64, ctx: &mut TxContext) { + let val = bal.split(amount, ctx); + pool.token_A.join(coin::into_balance(val)); + pool.val_constant = (balance::value(&pool.token_A) as u256) * (balance::value(&pool.token_B) as u256) + } + entry fun deposit_B(pool: &mut Pool, bal: &mut Coin, amount: u64, ctx: &mut TxContext) { + let val = bal.split(amount, ctx); + pool.token_B.join(coin::into_balance(val)); + pool.val_constant = (balance::value(&pool.token_A) as u256) * (balance::value(&pool.token_B) as u256) + } + + entry fun swap_A(pool: &mut Pool, bal: &mut Coin, amount: u64, ctx: &mut TxContext) { + assert!(pool.val_constant > 0, 0); + assert!(coin::value(bal) >= amount, 1); + + let token_a_amount = (balance::value(&pool.token_A) as u256) - (pool.val_constant / ((balance::value(&pool.token_B) as u256) + (amount as u256))); + let val_coin = coin::from_balance(pool.token_A.split((token_a_amount as u64)), ctx); + + let from_b = coin::into_balance(bal.split(amount, ctx)); + pool.token_B.join(from_b); + + transfer::public_transfer(val_coin, ctx.sender()); + } + + entry fun swap_B(pool: &mut Pool, bal: &mut Coin, amount: u64, ctx: &mut TxContext) { + assert!(pool.val_constant > 0, 0); + assert!(coin::value(bal) >= amount, 1); + + let token_b_amount = (balance::value(&pool.token_B) as u256) - (pool.val_constant / ((balance::value(&pool.token_A) as u256) + (amount as u256))); + let val_coin = coin::from_balance(pool.token_B.split((token_b_amount as u64)), ctx); + + let from_b = coin::into_balance(bal.split(amount, ctx)); + pool.token_A.join(from_b); + + transfer::public_transfer(val_coin, ctx.sender()); + } + + +} diff --git a/mover/itpika/code/task5/swap/tests/swap_tests.move b/mover/itpika/code/task5/swap/tests/swap_tests.move new file mode 100644 index 000000000..3da47bebd --- /dev/null +++ b/mover/itpika/code/task5/swap/tests/swap_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module swap::swap_tests { + // uncomment this line to import the module + // use swap::swap; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_swap() { + // pass + } + + #[test, expected_failure(abort_code = ::swap::swap_tests::ENotImplemented)] + fun test_swap_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/itpika/code/task6/inedx.js b/mover/itpika/code/task6/inedx.js new file mode 100644 index 000000000..cf63c7a81 --- /dev/null +++ b/mover/itpika/code/task6/inedx.js @@ -0,0 +1,38 @@ +const navi = require('navi-sdk'); +const ptb = require('navi-sdk/dist/libs/PTB'); +const { TransactionBlock } = require("@mysten/sui.js/transactions"); + +const { pool, USDC } = require('navi-sdk/dist/address'); + +(async() => { + let cli = new navi.NAVISDKClient({ + mnemonic: "oxygen live segment arrange divide snack nuclear stand cherry family travel doll", + wordLength: 12, networkType: 'mainnet', numberOfAccounts: 2 + }); + let acc = cli.accounts[0]; + console.log('addr', acc.address); + let bal = await acc.getWalletBalance(); + + console.log('balance', bal); + console.log('balance', (await acc.getCoins('0x2::sui::SUI'))); + + let txb = new TransactionBlock(); + txb.setSender(acc.address); + + let USDC_pool = pool.USDC; + + let num = 71614; + await ptb.depositCoin(txb, pool.Sui, txb.object('0x6f335bbf219b0d9184b490c8c8605f44978d7d949be84754fbae2828d231149d'), 1000000000); + let val = await ptb.borrowCoin(txb, pool.USDC, num); + console.log('val', val); + console.log('deposit', await ptb.depositCoin(txb, pool.USDC, val[0], num)) + + + txb.setGasOwner(acc.address); + // txb.setGasBudget(1000000); + txb.setGasPayment([{digest: '7vBxYwq3hibiikAWeGTMmigv6gV84spnpYXysvPH8RXD', objectId: '0xf641ce879fc91c7a9bfb8b93fbc5cf67c8328ae3b4ac008958fd865e9f0b002f', version: 300644501}]) + + let ret = await ptb.SignAndSubmitTXB(txb, acc.client, acc.keypair); + console.log(ret); +})(); + diff --git a/mover/itpika/code/task6/package-lock.json b/mover/itpika/code/task6/package-lock.json new file mode 100644 index 000000000..81ce98d46 --- /dev/null +++ b/mover/itpika/code/task6/package-lock.json @@ -0,0 +1,2742 @@ +{ + "name": "task6", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "task6", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "navi-sdk": "^1.1.23" + } + }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, + "node_modules/@0no-co/graphqlsp": { + "version": "1.12.11", + "resolved": "https://mirrors.cloud.tencent.com/npm/@0no-co/graphqlsp/-/graphqlsp-1.12.11.tgz", + "integrity": "sha512-vLja9r7L6BBXwxW86Wyi5z5hjTHscH7qoQooy+MXHkM9srBB6ZuesYZq5DQ/+SErQrFyaxeY+hwv2qBAksxriw==", + "dependencies": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/parser/-/parser-7.24.8.tgz", + "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@digitak/grubber": { + "version": "3.1.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@digitak/grubber/-/grubber-3.1.4.tgz", + "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@gql.tada/cli-utils": { + "version": "1.5.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@gql.tada/cli-utils/-/cli-utils-1.5.1.tgz", + "integrity": "sha512-JVLpoXLa4msrE7MHnmW/7fYnIl8dncLom8T/Ghsxu+Kz5iMGnzK2joJN5cZt4ewCAqfCV3HZZ0VH189OalGd9g==", + "dependencies": { + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/internal": "1.0.4", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + }, + "peerDependencies": { + "@0no-co/graphqlsp": "^1.12.9", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@gql.tada/internal": { + "version": "1.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@gql.tada/internal/-/internal-1.0.4.tgz", + "integrity": "sha512-tq0rgoqjhdVqKWEsbrkiX7Qpp5gA4/Br9r9TVBeh3WpJIcuGh5U48UjB4IOxtXBePZdX8E0oc07GjOid/P60Wg==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://mirrors.cloud.tencent.com/npm/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz", + "integrity": "sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz", + "integrity": "sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz", + "integrity": "sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz", + "integrity": "sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz", + "integrity": "sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz", + "integrity": "sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz", + "integrity": "sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz", + "integrity": "sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz", + "integrity": "sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz", + "integrity": "sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz", + "integrity": "sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz", + "integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz", + "integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz", + "integrity": "sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz", + "integrity": "sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz", + "integrity": "sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@scure/base": { + "version": "1.1.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/@scure/base/-/base-1.1.7.tgz", + "integrity": "sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@vitest/expect": { + "version": "1.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "dependencies": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.0-alpha.16", + "resolved": "https://mirrors.cloud.tencent.com/npm/@volar/language-core/-/language-core-2.4.0-alpha.16.tgz", + "integrity": "sha512-oOTnIZlx0P/idFwVw+W0NbzKDtZAQMzXSdIFfTePCKcXlb4Ys12GaGkx8NF9dsvPYV3nbv3ZsSxnkZWBmNKd7A==", + "dependencies": { + "@volar/source-map": "2.4.0-alpha.16" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.0-alpha.16", + "resolved": "https://mirrors.cloud.tencent.com/npm/@volar/source-map/-/source-map-2.4.0-alpha.16.tgz", + "integrity": "sha512-sL9vNG7iR2hiKZor7UkD5Sufu3QCia4cbp2gX/nGRNSdaPbhOpdAoavwlBm0PrVkpiA19NZuavZoobD8krviFg==" + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.31", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/compiler-core/-/compiler-core-3.4.31.tgz", + "integrity": "sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.31", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.31", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/compiler-dom/-/compiler-dom-3.4.31.tgz", + "integrity": "sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==", + "dependencies": { + "@vue/compiler-core": "3.4.31", + "@vue/shared": "3.4.31" + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.26", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/language-core/-/language-core-2.0.26.tgz", + "integrity": "sha512-/lt6SfQ3O1yDAhPsnLv9iSUgXd1dMHqUm/t3RctfqjuwQf1LnftZ414X3UBn6aXT4MiwXWtbNJ4Z0NZWwDWgJQ==", + "dependencies": { + "@volar/language-core": "~2.4.0-alpha.15", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.4.31", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/shared/-/shared-3.4.31.tgz", + "integrity": "sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==" + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://mirrors.cloud.tencent.com/npm/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/code-red/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "peer": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==" + }, + "node_modules/deep-eql": { + "version": "4.1.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://mirrors.cloud.tencent.com/npm/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/esrun": { + "version": "3.2.26", + "resolved": "https://mirrors.cloud.tencent.com/npm/esrun/-/esrun-3.2.26.tgz", + "integrity": "sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==", + "dependencies": { + "@digitak/grubber": "^3.1.4", + "chokidar": "^3.5.1", + "esbuild": "^0.17.4" + }, + "bin": { + "esrun": "bin.js" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "engines": { + "node": "*" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gql.tada": { + "version": "1.8.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/gql.tada/-/gql.tada-1.8.2.tgz", + "integrity": "sha512-LLt+2RcLY6i+Rq+LQQwx3uiEAPfA+pmEaAo/bJjUdaV1CVJBy3Wowds6GHeerW5kvekRM/XdbPTJw5OvnLq/DQ==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5", + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/cli-utils": "1.5.1", + "@gql.tada/internal": "1.0.4" + }, + "bin": { + "gql-tada": "bin/cli.js", + "gql.tada": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/graphql": { + "version": "16.9.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/graphql/-/graphql-16.9.0.tgz", + "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "peer": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "peer": true + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://mirrors.cloud.tencent.com/npm/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://mirrors.cloud.tencent.com/npm/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "peer": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://mirrors.cloud.tencent.com/npm/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mlly": { + "version": "1.7.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/mlly/-/mlly-1.7.1.tgz", + "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/navi-sdk": { + "version": "1.1.23", + "resolved": "https://mirrors.cloud.tencent.com/npm/navi-sdk/-/navi-sdk-1.1.23.tgz", + "integrity": "sha512-ikTjgPXj6XzTk90j8Fy5cjaIaO1z44Odq+jmI0p27kceX2l50pgHyN3k0oyIffW9Q2/XkWAyoUJzDYVT7W1PRA==", + "dependencies": { + "@mysten/sui.js": "^0.50.1", + "axios": "^1.6.7", + "esrun": "^3.2.26", + "tsconfig-paths": "^4.2.0", + "vitest": "^1.3.1" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/periscopic/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "1.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/pkg-types/-/pkg-types-1.1.3.tgz", + "integrity": "sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.1", + "pathe": "^1.1.2" + } + }, + "node_modules/postcss": { + "version": "8.4.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rollup": { + "version": "4.18.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/rollup/-/rollup-4.18.1.tgz", + "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.1", + "@rollup/rollup-android-arm64": "4.18.1", + "@rollup/rollup-darwin-arm64": "4.18.1", + "@rollup/rollup-darwin-x64": "4.18.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.1", + "@rollup/rollup-linux-arm-musleabihf": "4.18.1", + "@rollup/rollup-linux-arm64-gnu": "4.18.1", + "@rollup/rollup-linux-arm64-musl": "4.18.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.1", + "@rollup/rollup-linux-riscv64-gnu": "4.18.1", + "@rollup/rollup-linux-s390x-gnu": "4.18.1", + "@rollup/rollup-linux-x64-gnu": "4.18.1", + "@rollup/rollup-linux-x64-musl": "4.18.1", + "@rollup/rollup-win32-arm64-msvc": "4.18.1", + "@rollup/rollup-win32-ia32-msvc": "4.18.1", + "@rollup/rollup-win32-x64-msvc": "4.18.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/svelte": { + "version": "4.2.18", + "resolved": "https://mirrors.cloud.tencent.com/npm/svelte/-/svelte-4.2.18.tgz", + "integrity": "sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/svelte2tsx": { + "version": "0.7.13", + "resolved": "https://mirrors.cloud.tencent.com/npm/svelte2tsx/-/svelte2tsx-0.7.13.tgz", + "integrity": "sha512-aObZ93/kGAiLXA/I/kP+x9FriZM+GboB/ReOIGmLNbVGEd2xC+aTCppm3mk1cc9I/z60VQf7b2QDxC3jOXu3yw==", + "dependencies": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + }, + "peerDependencies": { + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", + "typescript": "^4.9.4 || ^5.0.0" + } + }, + "node_modules/tinybench": { + "version": "2.8.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==" + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "5.5.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" + }, + "node_modules/vite": { + "version": "5.3.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/vite/-/vite-5.3.3.tgz", + "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.39", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vitest": { + "version": "1.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "dependencies": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://mirrors.cloud.tencent.com/npm/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/mover/itpika/code/task6/package.json b/mover/itpika/code/task6/package.json new file mode 100644 index 000000000..375f2f3d4 --- /dev/null +++ b/mover/itpika/code/task6/package.json @@ -0,0 +1,14 @@ +{ + "name": "task6", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "navi-sdk": "^1.1.23" + } +} diff --git a/mover/itpika/nft.png b/mover/itpika/nft.png new file mode 100644 index 000000000..f328d0915 Binary files /dev/null and b/mover/itpika/nft.png differ diff --git a/mover/itpika/notes/readme.md b/mover/itpika/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/itpika/readme.md b/mover/itpika/readme.md new file mode 100644 index 000000000..fa2d66f38 --- /dev/null +++ b/mover/itpika/readme.md @@ -0,0 +1,53 @@ +## 基本信息 +- Sui钱包地址: `0xd9e7292403b8cf260555f70e82fde5b1436233404286c9609c5210a286e5b056` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `itpika` + +## 个人简介 +- 工作经验: 7年 +- 技术栈: `Rust` `GO` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `pass rong` + +## 任务 + +## 01 hello move +- [] Sui cli version: sui 1.26.1-540d384f226a +- [] package id: 0xac3f6a3fef5c1400dd184af89d1702b852a5f270a75f263ce5ed011b7170ffa2 + + +## 02 move coin +- [] My Coin package id : 0x0862e71714864da0b347133aff509b5ce7e3d7a2600adc55dccac09e0f6923ac +- [] Faucet package id : 0x9e4700a5b7664faa9345591e1c75760a6db76d78a9674b63aca97d162b109ce2 +- [] 转账 `My Coin` hash: 529FC4trcQgbDhxpMd4BMwHUrq5BvanxMe9P82gny8zn +- [] `Faucet Coin` address1 mint hash: 7eUtq5Xi754StrnqChavH7r3VSdN9MzNvnQ45gn4h9PL +- [] `Faucet Coin` address2 mint hash: 3fNNABcmraubQetggDKuMT3QVZtGRH6cmi8YfvXoK6nf + +## 03 move NFT +- [] nft package id : 0x7b90f4793fe47417552fcd3fb1175ef04218252e248b31a38300d4496b2eb500 +- [] nft object id : 0x9d65c2ef502278a06e27705f712616a7f35ebd39429b3b146d04d49a23fbb90b +- [] 转账 nft hash: DJHjAPJ8bp6hafFcT1nXuuZdWokwfZuNhChJNJBs2bG1 + + +## 04 Move Game +- [] game package id : 0x4f30771a362b150df5f9ef19a0f47139cde60494df57a7a937bc083eafc25d0e +- [] deposit Coin hash: GwjTsFSVkmkjfQYUTNSDtLMkXJL2AwrKf9Bq91Hg12bs +- [] withdraw `Coin` hash: 玩游戏的时候赢了当时就把奖励发给用户,没有提取功能,问题不大吧 +- [] play game hash: GHMAWVqXzu1qzr72MXkc1rzQuMz4gYw5KG42VUQuAp39 + +## 05 Move Swap +- [] swap package id : 0x1ed0470b006b5960c0834cdc73db2bc6c8492ed110582fa582267e4c3b948ccd +- [] call swap CoinA-> CoinB hash : 4jUSpDBX3qKfqYoh12U1ccRSv1GFnHQczdPQcE5pqp4i +- [] call swap CoinB-> CoinA hash : FJPR5UoipSfKxoMLiQjZ2Ehc4etwRzAU359hmdb4qXre + +## 06 Dapp-kit SDK PTB +- [] save hash : 49v2UsXwCkm6cNyVRf15gSRTiVDhhqJNEJhRnKvwbiHV + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./task7.png) +- [] flag hash : 5EZYzm41esyv24RA6RKqitCjKbEhzXjrtyfQhGFofZCM + +## 08 Move CTF Lets Move +- [] CLI call 截图 : ![截图](./task8.png) +- [] flag hash : 6Ja4x3BhNDiS2WLsnXUatYsHtpfapd9ZrRVWTmHtJ8Z4 diff --git a/mover/itpika/task7.png b/mover/itpika/task7.png new file mode 100644 index 000000000..9c41b99e1 Binary files /dev/null and b/mover/itpika/task7.png differ diff --git a/mover/itpika/task8.png b/mover/itpika/task8.png new file mode 100644 index 000000000..0d3fb44d1 Binary files /dev/null and b/mover/itpika/task8.png differ diff --git a/mover/itsjoeyrighthere/code/readme.md b/mover/itsjoeyrighthere/code/readme.md index 9dc321d25..d6ffbbee2 100644 --- a/mover/itsjoeyrighthere/code/readme.md +++ b/mover/itsjoeyrighthere/code/readme.md @@ -340,7 +340,7 @@ module my_coin::joeycoin { 发布 ``` -sui client publish --gas-budget 100000000 +sui client publish ``` 输出 @@ -546,7 +546,7 @@ module faucet_coin::joeyfaucetcoin { 发布 ``` -sui client publish --gas-budget 100000000 +sui client publish ``` 输出 @@ -990,7 +990,7 @@ module task3::joey_nft { 发布: ``` -sui client publish --gas-budget 100000000 +sui client publish ``` 输出: @@ -1192,7 +1192,7 @@ Transaction Digest: AkZsQvRnUDsNFSYQWubuF5fAGC9wQwCZy4CiWfd3Ustp 调用: ``` -sui client call --function mint_to_sender --module joey_nft --package 0xc4f7a839784cb5dc03a6a06e2c5b6c8b00b74c1360da77be1279deed47f72b46 --args Joey itsjoeyrighthere https://avatars.githubusercontent.com/u/48686956 --gas-budget 100000000 +sui client call --function mint_to_sender --module joey_nft --package 0xc4f7a839784cb5dc03a6a06e2c5b6c8b00b74c1360da77be1279deed47f72b46 --args Joey itsjoeyrighthere https://avatars.githubusercontent.com/u/48686956 ``` ``` @@ -1331,7 +1331,7 @@ Transaction Digest: 3gCSBRJDLjKG6qsx3SnVKkxEwXQZc38qr6CN8QremTkM 将 nft 发送到地址: 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ``` -sui client call --function transfer --module joey_nft --package 0xc4f7a839784cb5dc03a6a06e2c5b6c8b00b74c1360da77be1279deed47f72b46 --args 0xa087e182045a818db3ce431b2089afff87cd279e95c7d4e3bf52dbe67bb087cc 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 --gas-budget 100000000 +sui client call --function transfer --module joey_nft --package 0xc4f7a839784cb5dc03a6a06e2c5b6c8b00b74c1360da77be1279deed47f72b46 --args 0xa087e182045a818db3ce431b2089afff87cd279e95c7d4e3bf52dbe67bb087cc 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ``` 输出 diff --git a/mover/jeasonnow/code/task3/scripts/auto.sh b/mover/jeasonnow/code/task3/scripts/auto.sh index 9f3cb6820..b7842b1a6 100644 --- a/mover/jeasonnow/code/task3/scripts/auto.sh +++ b/mover/jeasonnow/code/task3/scripts/auto.sh @@ -4,7 +4,7 @@ export IMAGE=0x68747470733a2f2f617661746172732e67697468756275736572636f6e74656e7 #mint nft # sui client call --package $PACKAGE_ID\ -# --module jeasonnow_nft --function mint --gas-budget 100000000 \ +# --module jeasonnow_nft --function mint \ # --args Jeasonnow_Nft Jeasonnow_Nft_Description $IMAGE $STATE_ID \ export NFT_ID=0xd8550aacb224df6737738cfa9cd8de4f63ac3b3f8c4c8a91bda96ed61b007021; @@ -12,6 +12,6 @@ export RECIEVER=0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15 #transfer nft sui client call --package $PACKAGE_ID\ - --module jeasonnow_nft --function transfer --gas-budget 100000000 \ + --module jeasonnow_nft --function transfer \ --args $NFT_ID $COIN_A_OBJECT $RECIEVER diff --git a/mover/jeasonnow/code/task5/sh/auto.sh b/mover/jeasonnow/code/task5/sh/auto.sh index 2852514f6..2954f7e41 100644 --- a/mover/jeasonnow/code/task5/sh/auto.sh +++ b/mover/jeasonnow/code/task5/sh/auto.sh @@ -7,17 +7,17 @@ # create_pool # sui client call --package $PACKAGE_ID\ -# --module task5 --function create_pool --gas-budget 100000000 \ +# --module task5 --function create_pool \ # --type-args $COIN_A $COIN_B \ # add_pool # sui client call --package $PACKAGE_ID\ -# --module task5 --function add_pool --gas-budget 100000000 \ +# --module task5 --function add_pool \ # --type-args $COIN_A $COIN_B \ # --args $POOL_ID $COIN_A_OBJECT $COIN_B_OBJECT 10 10 # swap a to b # sui client call --package $PACKAGE_ID\ -# --module task5 --function swap_a_b --gas-budget 100000000 \ +# --module task5 --function swap_a_b \ # --type-args $COIN_A $COIN_B \ # --args $POOL_ID $COIN_A_OBJECT 5 diff --git a/mover/jf-li00/notes/task2.md b/mover/jf-li00/notes/task2.md index 964566b0a..c28620079 100644 --- a/mover/jf-li00/notes/task2.md +++ b/mover/jf-li00/notes/task2.md @@ -247,7 +247,7 @@ Transaction Digest: 6q9tw1k9gRHAF8PcUVQZyGELBtHk11sgZqhjCUfPUEU3 ### Transfer to certain address ```bash -sui client call --function mint_for --module my_coin --package $PACKAGE_ID --args 0x3e78062579421ab4d5aac552bcaa644f204aea01fa8ccd5c3caef131147ceb15 100000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 --gas-budget 100000000 +sui client call --function mint_for --module my_coin --package $PACKAGE_ID --args 0x3e78062579421ab4d5aac552bcaa644f204aea01fa8ccd5c3caef131147ceb15 100000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ``` Output: diff --git a/mover/jf-li00/notes/task3.md b/mover/jf-li00/notes/task3.md index 3a2246f29..e1cd19707 100644 --- a/mover/jf-li00/notes/task3.md +++ b/mover/jf-li00/notes/task3.md @@ -138,7 +138,7 @@ command: export PACKAGE_ID=0x197cb1d2243270835be026913e949ffaac6c12f9985ea5299a94ec538d014e0f ``` ```bash -sui client call --function mint_to --module puppy --package $PACKAGE_ID --args "test_nft" "" "" 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 --gas-budget 100000000 +sui client call --function mint_to --module puppy --package $PACKAGE_ID --args "test_nft" "" "" 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ``` Output: diff --git a/mover/jf-li00/notes/task4.md b/mover/jf-li00/notes/task4.md index a43a255be..885f82e76 100644 --- a/mover/jf-li00/notes/task4.md +++ b/mover/jf-li00/notes/task4.md @@ -142,7 +142,7 @@ command export PACKAGE_ID=0xd06435923fcaa2093b897427d13eb8ccf11d108af48123cd421ce8096ce9c85b ``` ```bash -sui client call --function play --module mygame --package $PACKAGE_ID --args 2 --gas-budget 100000000 +sui client call --function play --module mygame --package $PACKAGE_ID --args 2 ``` output: diff --git a/mover/jf-li00/notes/task5.md b/mover/jf-li00/notes/task5.md index 4381121f2..c73cce9a8 100644 --- a/mover/jf-li00/notes/task5.md +++ b/mover/jf-li00/notes/task5.md @@ -293,7 +293,7 @@ Transaction Digest: 7RDztN2uPLozY3GZB8M1L1cjPw3DrsAKCus1HmtZLhM9 │ │ Amount: 100000 │ │ └── │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ -    ~/Works/w/m/s/letsmove/m/j/code    main ⇡10 ?1  sui client call --function mint_for --module my_coin --package $PACKAGE_ID --args 0x3e78062579421ab4d5aac552bcaa644f204aea01fa8ccd5c3caef131147ceb15 100000 0x10b290db74fa60decffc2f94d173013f668e316c00807328517c007c5d76bb28 --gas-budget 100000000 +    ~/Works/w/m/s/letsmove/m/j/code    main ⇡10 ?1  sui client call --function mint_for --module my_coin --package $PACKAGE_ID --args 0x3e78062579421ab4d5aac552bcaa644f204aea01fa8ccd5c3caef131147ceb15 100000 0x10b290db74fa60decffc2f94d173013f668e316c00807328517c007c5d76bb28 Transaction Digest: 37hBELJHYBgnt2jHDqX8wqnYigp55vDFdsXSJwgncqiP ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ Transaction Data │ diff --git a/mover/jiunx/code/hello_dapp/README.md b/mover/jiunx/code/hello_dapp/README.md new file mode 100644 index 000000000..ec054a25a --- /dev/null +++ b/mover/jiunx/code/hello_dapp/README.md @@ -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": "" + } +}' +``` + +### 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 = ""; +``` + +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 +``` diff --git a/mover/jiunx/code/hello_dapp/index.html b/mover/jiunx/code/hello_dapp/index.html new file mode 100644 index 000000000..bb7f75b16 --- /dev/null +++ b/mover/jiunx/code/hello_dapp/index.html @@ -0,0 +1,59 @@ + + + + + + + Sui dApp Starter + + + + +
+ + + diff --git a/mover/jiunx/code/hello_dapp/move/counter/Move.lock b/mover/jiunx/code/hello_dapp/move/counter/Move.lock new file mode 100644 index 000000000..9d463f784 --- /dev/null +++ b/mover/jiunx/code/hello_dapp/move/counter/Move.lock @@ -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.28.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x40d7973d0e0861bdc2a1b22fb9015a691d7d75bbbc49c1116556e32e64ffb60f" +latest-published-id = "0x40d7973d0e0861bdc2a1b22fb9015a691d7d75bbbc49c1116556e32e64ffb60f" +published-version = "1" diff --git a/mover/jiunx/code/hello_dapp/move/counter/Move.toml b/mover/jiunx/code/hello_dapp/move/counter/Move.toml new file mode 100644 index 000000000..94e850382 --- /dev/null +++ b/mover/jiunx/code/hello_dapp/move/counter/Move.toml @@ -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" diff --git a/mover/jiunx/code/hello_dapp/move/counter/sources/counter.move b/mover/jiunx/code/hello_dapp/move/counter/sources/counter.move new file mode 100644 index 000000000..857c95d19 --- /dev/null +++ b/mover/jiunx/code/hello_dapp/move/counter/sources/counter.move @@ -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) + } +} diff --git a/mover/jiunx/code/hello_dapp/package.json b/mover/jiunx/code/hello_dapp/package.json new file mode 100644 index 000000000..4bd181970 --- /dev/null +++ b/mover/jiunx/code/hello_dapp/package.json @@ -0,0 +1,35 @@ +{ + "name": "hello_dapp", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@mysten/dapp-kit": "0.14.10", + "@mysten/sui": "1.2.0", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@tanstack/react-query": "^5.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } +} \ No newline at end of file diff --git a/mover/jiunx/code/hello_dapp/prettier.config.cjs b/mover/jiunx/code/hello_dapp/prettier.config.cjs new file mode 100644 index 000000000..c07541106 --- /dev/null +++ b/mover/jiunx/code/hello_dapp/prettier.config.cjs @@ -0,0 +1,4 @@ +// eslint-disable-next-line no-undef +module.exports = { + proseWrap: "always", +}; diff --git a/mover/jiunx/code/hello_dapp/src/App.tsx b/mover/jiunx/code/hello_dapp/src/App.tsx new file mode 100644 index 000000000..dd5506c95 --- /dev/null +++ b/mover/jiunx/code/hello_dapp/src/App.tsx @@ -0,0 +1,61 @@ +import { ConnectButton, useCurrentAccount } from "@mysten/dapp-kit"; +import { isValidSuiObjectId } from "@mysten/sui/utils"; +import { Box, Container, Flex, Heading } from "@radix-ui/themes"; +import { useState } from "react"; +import { Counter } from "./Counter"; +import { CreateCounter } from "./CreateCounter"; + +function App() { + const currentAccount = useCurrentAccount(); + const [counterId, setCounter] = useState(() => { + const hash = window.location.hash.slice(1); + return isValidSuiObjectId(hash) ? hash : null; + }); + + return ( + <> + + + dApp Starter Template + + + + + + + + + {currentAccount ? ( + counterId ? ( + + ) : ( + { + window.location.hash = id; + setCounter(id); + }} + /> + ) + ) : ( + Please connect your wallet + )} + + + + ); +} + +export default App; diff --git a/mover/jiunx/code/hello_dapp/src/Counter.tsx b/mover/jiunx/code/hello_dapp/src/Counter.tsx new file mode 100644 index 000000000..bbd54cfd2 --- /dev/null +++ b/mover/jiunx/code/hello_dapp/src/Counter.tsx @@ -0,0 +1,87 @@ +import { + useCurrentAccount, + useSignAndExecuteTransaction, + useSuiClient, + useSuiClientQuery, +} from "@mysten/dapp-kit"; +import type { SuiObjectData } from "@mysten/sui/client"; +import { Transaction } from "@mysten/sui/transactions"; +import { Button, Flex, Heading, Text } from "@radix-ui/themes"; +import { useNetworkVariable } from "./networkConfig"; + +export function Counter({ id }: { id: string }) { + const client = useSuiClient(); + const currentAccount = useCurrentAccount(); + const counterPackageId = useNetworkVariable("counterPackageId"); + const { mutate: signAndExecute } = useSignAndExecuteTransaction(); + const { data, isPending, error, refetch } = useSuiClientQuery("getObject", { + id, + options: { + showContent: true, + showOwner: true, + }, + }); + + const executeMoveCall = (method: "increment" | "reset") => { + const tx = new Transaction(); + + if (method === "reset") { + tx.moveCall({ + arguments: [tx.object(id), tx.pure.u64(0)], + target: `${counterPackageId}::counter::set_value`, + }); + } else { + tx.moveCall({ + arguments: [tx.object(id)], + target: `${counterPackageId}::counter::increment`, + }); + } + + signAndExecute( + { + transaction: tx, + }, + { + onSuccess: (tx) => { + client.waitForTransaction({ digest: tx.digest }).then(() => { + refetch(); + }); + }, + }, + ); + }; + + if (isPending) return Loading...; + + if (error) return Error: {error.message}; + + if (!data.data) return Not found; + + const ownedByCurrentAccount = + getCounterFields(data.data)?.owner === currentAccount?.address; + + return ( + <> + Counter {id} + + + Count: {getCounterFields(data.data)?.value} + + + {ownedByCurrentAccount ? ( + + ) : null} + + + + ); +} +function getCounterFields(data: SuiObjectData) { + if (data.content?.dataType !== "moveObject") { + return null; + } + + return data.content.fields as { value: number; owner: string }; +} diff --git a/mover/jiunx/code/hello_dapp/src/CreateCounter.tsx b/mover/jiunx/code/hello_dapp/src/CreateCounter.tsx new file mode 100644 index 000000000..38dc3f93f --- /dev/null +++ b/mover/jiunx/code/hello_dapp/src/CreateCounter.tsx @@ -0,0 +1,60 @@ +import { Transaction } from "@mysten/sui/transactions"; +import { Button, Container } from "@radix-ui/themes"; +import { useSignAndExecuteTransaction, useSuiClient } from "@mysten/dapp-kit"; +import { useNetworkVariable } from "./networkConfig"; + +export function CreateCounter({ + onCreated, +}: { + onCreated: (id: string) => void; +}) { + const client = useSuiClient(); + const counterPackageId = useNetworkVariable("counterPackageId"); + const { mutate: signAndExecute } = useSignAndExecuteTransaction(); + + return ( + + + + ); + + function create() { + const tx = new Transaction(); + + tx.moveCall({ + arguments: [], + target: `${counterPackageId}::counter::create`, + }); + + signAndExecute( + { + transaction: tx, + }, + { + onSuccess: ({ digest }) => { + client + .waitForTransaction({ + digest: digest, + options: { + showEffects: true, + }, + }) + .then((tx) => { + const objectId = tx.effects?.created?.[0]?.reference?.objectId; + + if (objectId) { + onCreated(objectId); + } + }); + }, + }, + ); + } +} diff --git a/mover/jiunx/code/hello_dapp/src/constants.ts b/mover/jiunx/code/hello_dapp/src/constants.ts new file mode 100644 index 000000000..0ffffc297 --- /dev/null +++ b/mover/jiunx/code/hello_dapp/src/constants.ts @@ -0,0 +1,3 @@ +export const DEVNET_COUNTER_PACKAGE_ID = "0xTODO"; +export const TESTNET_COUNTER_PACKAGE_ID = "0xTODO"; +export const MAINNET_COUNTER_PACKAGE_ID = "0xTODO"; diff --git a/mover/jiunx/code/hello_dapp/src/main.tsx b/mover/jiunx/code/hello_dapp/src/main.tsx new file mode 100644 index 000000000..55f323a5d --- /dev/null +++ b/mover/jiunx/code/hello_dapp/src/main.tsx @@ -0,0 +1,26 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "@mysten/dapp-kit/dist/index.css"; +import "@radix-ui/themes/styles.css"; + +import { SuiClientProvider, WalletProvider } from "@mysten/dapp-kit"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { Theme } from "@radix-ui/themes"; +import App from "./App.tsx"; +import { networkConfig } from "./networkConfig.ts"; + +const queryClient = new QueryClient(); + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + + + + + + + , +); diff --git a/mover/jiunx/code/hello_dapp/src/networkConfig.ts b/mover/jiunx/code/hello_dapp/src/networkConfig.ts new file mode 100644 index 000000000..7b6f8b73d --- /dev/null +++ b/mover/jiunx/code/hello_dapp/src/networkConfig.ts @@ -0,0 +1,31 @@ +import { getFullnodeUrl } from "@mysten/sui/client"; +import { + DEVNET_COUNTER_PACKAGE_ID, + TESTNET_COUNTER_PACKAGE_ID, + MAINNET_COUNTER_PACKAGE_ID, +} from "./constants.ts"; +import { createNetworkConfig } from "@mysten/dapp-kit"; + +const { networkConfig, useNetworkVariable, useNetworkVariables } = + createNetworkConfig({ + devnet: { + url: getFullnodeUrl("devnet"), + variables: { + counterPackageId: DEVNET_COUNTER_PACKAGE_ID, + }, + }, + testnet: { + url: getFullnodeUrl("testnet"), + variables: { + counterPackageId: TESTNET_COUNTER_PACKAGE_ID, + }, + }, + mainnet: { + url: getFullnodeUrl("mainnet"), + variables: { + counterPackageId: MAINNET_COUNTER_PACKAGE_ID, + }, + }, + }); + +export { useNetworkVariable, useNetworkVariables, networkConfig }; diff --git a/mover/jiunx/code/hello_dapp/src/vite-env.d.ts b/mover/jiunx/code/hello_dapp/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/mover/jiunx/code/hello_dapp/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mover/jiunx/code/hello_dapp/tsconfig.json b/mover/jiunx/code/hello_dapp/tsconfig.json new file mode 100644 index 000000000..a7fc6fbf2 --- /dev/null +++ b/mover/jiunx/code/hello_dapp/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/jiunx/code/hello_dapp/tsconfig.node.json b/mover/jiunx/code/hello_dapp/tsconfig.node.json new file mode 100644 index 000000000..42872c59f --- /dev/null +++ b/mover/jiunx/code/hello_dapp/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/jiunx/code/hello_dapp/vite.config.ts b/mover/jiunx/code/hello_dapp/vite.config.ts new file mode 100644 index 000000000..d366e8c8d --- /dev/null +++ b/mover/jiunx/code/hello_dapp/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); diff --git a/mover/jiunx/code/hello_move/Move.lock b/mover/jiunx/code/hello_move/Move.lock new file mode 100644 index 000000000..65e5230f3 --- /dev/null +++ b/mover/jiunx/code/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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.28.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xab6f74499fe3629408f70aac6aab573fdddf9e63f850eb408f44cbfdf6f8257e" +latest-published-id = "0xab6f74499fe3629408f70aac6aab573fdddf9e63f850eb408f44cbfdf6f8257e" +published-version = "1" diff --git a/mover/jiunx/code/hello_move/Move.toml b/mover/jiunx/code/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/jiunx/code/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/jiunx/code/hello_move/sources/hello_move.move b/mover/jiunx/code/hello_move/sources/hello_move.move new file mode 100644 index 000000000..c7a79fff6 --- /dev/null +++ b/mover/jiunx/code/hello_move/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"move"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/jiunx/code/hello_move/tests/hello_move_tests.move b/mover/jiunx/code/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/jiunx/code/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/jiunx/code/readme.md b/mover/jiunx/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/jiunx/images/hello_move.png b/mover/jiunx/images/hello_move.png new file mode 100644 index 000000000..b41b1377d Binary files /dev/null and b/mover/jiunx/images/hello_move.png differ diff --git a/mover/jiunx/images/wallet.png b/mover/jiunx/images/wallet.png new file mode 100644 index 000000000..5253f47a9 Binary files /dev/null and b/mover/jiunx/images/wallet.png differ diff --git a/mover/jiunx/notes/readme.md b/mover/jiunx/notes/readme.md new file mode 100644 index 000000000..f11a4915e --- /dev/null +++ b/mover/jiunx/notes/readme.md @@ -0,0 +1,6 @@ +# 导入助记词秘钥 sui keytool import '助记词' ed25519 +# 查看地址 sui client addresses +# 查看余额 sui client balance +# 选择地址 sui client switch --address '$地址' +# 新建项目 sui move new '项目名' +# 部署合约 cd '项目名' && sui client publish \ No newline at end of file diff --git a/mover/jiunx/readme.md b/mover/jiunx/readme.md new file mode 100644 index 000000000..eb39e032e --- /dev/null +++ b/mover/jiunx/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xfbff50a53624fa727befc75e1b024ae451975c41bd045ee847f3c2e52562bbb9` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `jiunx` + +## 个人简介 +- 工作经验: 4年 +- 技术栈: `Rust` `Java` `Python` `Go` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `xxx` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.28.0-f58faa4c5bbf-dirty +- [x] Sui钱包截图: ![Sui钱包截图](./images/wallet.png) +- [x] package id: 0xab6f74499fe3629408f70aac6aab573fdddf9e63f850eb408f44cbfdf6f8257e +- [x] package id 在 scan上的查看截图:![Scan截图](./images/hello_move.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/jjeejj/code/readme.md b/mover/jjeejj/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/jjeejj/code/task1/Move.lock b/mover/jjeejj/code/task1/Move.lock new file mode 100644 index 000000000..85c620f78 --- /dev/null +++ b/mover/jjeejj/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "23C730475A68F1E6BEDDB2CD78A3EB131C4A59425643F732B34CA8F439B08D68" +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.30.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "b32bfae1" +original-published-id = "0xf191548d4779aeb0407bfc2183360ca1d3ed46eb8abc9ee7c57803d299a90b96" +latest-published-id = "0xf191548d4779aeb0407bfc2183360ca1d3ed46eb8abc9ee7c57803d299a90b96" +published-version = "1" diff --git a/mover/jjeejj/code/task1/Move.toml b/mover/jjeejj/code/task1/Move.toml new file mode 100644 index 000000000..f6bf62a02 --- /dev/null +++ b/mover/jjeejj/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello" +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] +hello = "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/jjeejj/code/task1/sources/hello.move b/mover/jjeejj/code/task1/sources/hello.move new file mode 100644 index 000000000..4efc5cb2a --- /dev/null +++ b/mover/jjeejj/code/task1/sources/hello.move @@ -0,0 +1,20 @@ +/// Module: hello +module hello::hello { + use sui::object::{Self, UID}; + use sui::tx_context::{Self, TxContext}; + use std::string::{Self, String}; + use sui::transfer; + + public struct Hello has key { + id: UID, + str: String, + } + + public fun say_hello(ctx: &mut TxContext) { + let word = Hello { + id: object::new(ctx), + str: string::utf8(b"hello jjeejj"), + }; + transfer::transfer(word, tx_context::sender(ctx)); + } +} diff --git a/mover/jjeejj/code/task1/tests/hello_tests.move b/mover/jjeejj/code/task1/tests/hello_tests.move new file mode 100644 index 000000000..34dfcfb57 --- /dev/null +++ b/mover/jjeejj/code/task1/tests/hello_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello::hello_tests { + // uncomment this line to import the module + // use hello::hello; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello() { + // pass + } + + #[test, expected_failure(abort_code = ::hello::hello_tests::ENotImplemented)] + fun test_hello_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/jjeejj/images/publish.png b/mover/jjeejj/images/publish.png new file mode 100644 index 000000000..9e492208d Binary files /dev/null and b/mover/jjeejj/images/publish.png differ diff --git a/mover/jjeejj/images/sui-wallet.png b/mover/jjeejj/images/sui-wallet.png new file mode 100644 index 000000000..ef208ce34 Binary files /dev/null and b/mover/jjeejj/images/sui-wallet.png differ diff --git a/mover/jjeejj/images/sui_scan_hello.png b/mover/jjeejj/images/sui_scan_hello.png new file mode 100644 index 000000000..eb190dbfe Binary files /dev/null and b/mover/jjeejj/images/sui_scan_hello.png differ diff --git a/mover/jjeejj/notes/readme.md b/mover/jjeejj/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/jjeejj/readme.md b/mover/jjeejj/readme.md new file mode 100644 index 000000000..129f398b6 --- /dev/null +++ b/mover/jjeejj/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x8baed00ee3b45ad331808fae64ceea2e668b21ca85b2ed55258f62686c2fde44` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `jjeejj` + +## 个人简介 +- 工作经验: 8年 +- 技术栈: `Golang` `Node.js` `Rust` `Solidity` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链, 未来找到对应的 web3 远程工作 +- 联系方式: tg: `iyi_jiang` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.30.0-246afbf71f8d +- [x] Sui钱包截图: ![Sui钱包截图](./images/sui-wallet.png) +- [x] package id: 0xf191548d4779aeb0407bfc2183360ca1d3ed46eb8abc9ee7c57803d299a90b96 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/sui_scan_hello.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/jjeejj/scan.jpg b/mover/jjeejj/scan.jpg new file mode 100644 index 000000000..d16ebb649 Binary files /dev/null and b/mover/jjeejj/scan.jpg differ diff --git a/mover/jjk812/image/image-1.png b/mover/jjk812/image/image-1.png new file mode 100644 index 000000000..e4e63eb7e Binary files /dev/null and b/mover/jjk812/image/image-1.png differ diff --git a/mover/jjk812/image/image.png b/mover/jjk812/image/image.png new file mode 100644 index 000000000..3e39c6f99 Binary files /dev/null and b/mover/jjk812/image/image.png differ diff --git a/mover/jjk812/readme.md b/mover/jjk812/readme.md index ec2af8303..f9b3969ea 100644 --- a/mover/jjk812/readme.md +++ b/mover/jjk812/readme.md @@ -17,27 +17,36 @@ ## 02 move coin -- [] My Coin package id : 0x87d64eeefcc1f3abc521d671d79d9042de08caf6ed597c58b7a3c5926aeccc10 -- [] Faucet package id : 0x01513f2977f9847e22c4b22f0ef2101f7f3b8c922bd3c31bd835fd2ff830de1e -- [] 转账 `My Coin` hash: 9XKgKy9EXqCPZRbtAFfGCL3fwSPQfZT5F8ZHvyZzG6hC +- [X] My Coin package id : 0x87d64eeefcc1f3abc521d671d79d9042de08caf6ed597c58b7a3c5926aeccc10 +- [X] Faucet package id : 0x01513f2977f9847e22c4b22f0ef2101f7f3b8c922bd3c31bd835fd2ff830de1e +- [X] 转账 `My Coin` hash: 9XKgKy9EXqCPZRbtAFfGCL3fwSPQfZT5F8ZHvyZzG6hC ## 03 move NFT -- [] nft package id :0xb2e71f22585bece3d3984c81fd69d6c8222f632c7a6d09df3110fcf332456a4e -- [] nft object id : 0x7d9104b57428ba6e767ddc72a713cd54d9e1130212d91bc6c6725ea8c96229e1 -- [] 转账 nft hash: 3iLyYGyis3QkoijfyHVK1r3Mif5oViGMiUe4eB7PQhgU +- [X] nft package id :0xb2e71f22585bece3d3984c81fd69d6c8222f632c7a6d09df3110fcf332456a4e +- [X] nft object id : 0x7d9104b57428ba6e767ddc72a713cd54d9e1130212d91bc6c6725ea8c96229e1 +- [X] 转账 nft hash: 3iLyYGyis3QkoijfyHVK1r3Mif5oViGMiUe4eB7PQhgU ## 04 Move Game -- [] game package id :0xdd607407ae85acf725e60b1e3c868c08ab7e24c0ac69f1a36721e932960ea2c1 -- [] call game hash:86S9RhqGTKuktLCUXU3TYbGMjn3QbGaR8vX7BUUnhrqZ +- [X] game package id :0xdd607407ae85acf725e60b1e3c868c08ab7e24c0ac69f1a36721e932960ea2c1 +- [X] call game hash:86S9RhqGTKuktLCUXU3TYbGMjn3QbGaR8vX7BUUnhrqZ ## 05 Move Swap test测试网部署的 -- [] swap package id :0x9f099d9f96c0b4a5c69689a09c706edcbf163a61997d3b5fcb0952fda35e8105 -- [] call swap hash: EcDhqUGebm7pk2JJHsDWVSJXGJGGR2jPvSMGhbw4ktta +- [X] swap package id :0x9f099d9f96c0b4a5c69689a09c706edcbf163a61997d3b5fcb0952fda35e8105 +- [X] call swap hash: EcDhqUGebm7pk2JJHsDWVSJXGJGGR2jPvSMGhbw4ktta ## 06 SDK PTB -- [] save hash :2WZTAk44ygh7stRt1j6rMxFYKrYd4sh9o7X5dAyZwSSu +- [X] save hash :2WZTAk44ygh7stRt1j6rMxFYKrYd4sh9o7X5dAyZwSSu + +## 07 Move CTF Check In +- [X] CLI call 截图![alt text](image/image-1.png) +- ![alt text](image/image.png) +- + +- [X] flag hash : GdmbTq1eth8uRTcxuKXXyC6deyJKvhEhri3F3CByiiQU + +## 08 Move CTF Lets Move \ No newline at end of file diff --git a/mover/kael777/code/readme.md b/mover/kael777/code/readme.md index ad7b36a80..d7ac059ac 100644 --- a/mover/kael777/code/readme.md +++ b/mover/kael777/code/readme.md @@ -1 +1 @@ -sui client publish --gas-budget 100000000 \ No newline at end of file +sui client publish \ No newline at end of file diff --git a/mover/kael777/code/task4/sources/task4.move b/mover/kael777/code/task4/sources/task4.move index f56ee1dd1..aa0559b1c 100644 --- a/mover/kael777/code/task4/sources/task4.move +++ b/mover/kael777/code/task4/sources/task4.move @@ -66,7 +66,7 @@ module task4::kael777_game { // test net // 0x6 is clock object -//sui client call --function play --module kael777_game --package 0x5915087002bc3f6b92f56493750ef9a04d0c43a55b32f8564fdfd815546e4988 --args 1 0x6 --gas-budget 100000000 +//sui client call --function play --module kael777_game --package 0x5915087002bc3f6b92f56493750ef9a04d0c43a55b32f8564fdfd815546e4988 --args 1 0x6 // main net -//sui client call --function play --module kael777_game --package 0xe2c9bbf4bd8da9f66a95cca911084a4d3b29157f9c131810b789d55447027570 --args 2 0x6 --gas-budget 100000000 +//sui client call --function play --module kael777_game --package 0xe2c9bbf4bd8da9f66a95cca911084a4d3b29157f9c131810b789d55447027570 --args 2 0x6 diff --git a/mover/kborrt/notes/01.hello_move.md b/mover/kborrt/notes/01.hello_move.md index b83414f16..b2ca64038 100644 --- a/mover/kborrt/notes/01.hello_move.md +++ b/mover/kborrt/notes/01.hello_move.md @@ -18,6 +18,6 @@ curl --location --request POST 'https://faucet.testnet.sui.io/gas' \ - 完成Sui浏览器学习 https://testnet.suivision.xyz/ - 提交`Hello Move`合约发布`package id` -sui client publish --gas-budget 100000000 +sui client publish ## 任务指南 diff --git a/mover/laozpgz/code/readme.md b/mover/laozpgz/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/laozpgz/code/task1/Move.lock b/mover/laozpgz/code/task1/Move.lock new file mode 100644 index 000000000..52a3b0e1d --- /dev/null +++ b/mover/laozpgz/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2E267C18D553336099CDD31F7063857679825E46CD06EC67CC7F7FB0C20317C1" +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.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet0] +chain-id = "4c78adac" +original-published-id = "0xc8201f3f3a915ad869278329ab53605867fe4f75a58cd1156aa5f8f6897f6ac8" +latest-published-id = "0xc8201f3f3a915ad869278329ab53605867fe4f75a58cd1156aa5f8f6897f6ac8" +published-version = "1" diff --git a/mover/laozpgz/code/task1/Move.toml b/mover/laozpgz/code/task1/Move.toml new file mode 100644 index 000000000..e75e497eb --- /dev/null +++ b/mover/laozpgz/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1" +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] +task1 = "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/laozpgz/code/task1/sources/task1.move b/mover/laozpgz/code/task1/sources/task1.move new file mode 100644 index 000000000..51b9edd9a --- /dev/null +++ b/mover/laozpgz/code/task1/sources/task1.move @@ -0,0 +1,21 @@ + +/// Module: task1 + +module task1::hello_move { + use std::ascii::{String, string}; + use sui::transfer::transfer; + use sui::tx_context::{sender}; + + public struct HelloMove has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = HelloMove { + id:object::new(ctx), + say: string(b"Hello laozpgz"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/laozpgz/code/task2/Move.lock b/mover/laozpgz/code/task2/Move.lock new file mode 100644 index 000000000..8099d2f0b --- /dev/null +++ b/mover/laozpgz/code/task2/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "4AF6777743F3D7E7B6260C857B4A821F88E2B8FAFB71761E10810BFCE71EDF00" +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.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet0] +chain-id = "35834a8a" +original-published-id = "0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2" +latest-published-id = "0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2" +published-version = "1" diff --git a/mover/laozpgz/code/task2/Move.toml b/mover/laozpgz/code/task2/Move.toml new file mode 100644 index 000000000..ddfd9cdab --- /dev/null +++ b/mover/laozpgz/code/task2/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task2" +edition = "2024.beta" # edition = "legacy" to use legacy (pre-2024) Move +# license = "" # e.g., "MIT", "GPL", "Apache 2.0" +# authors = ["laozpgz (laozpgz@gmail.com)"] # 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] +task2 = "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/laozpgz/code/task2/sources/task2_coin.move b/mover/laozpgz/code/task2/sources/task2_coin.move new file mode 100644 index 000000000..015d42163 --- /dev/null +++ b/mover/laozpgz/code/task2/sources/task2_coin.move @@ -0,0 +1,37 @@ +/// Module: task2 +module task2::laozpgz_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct LAOZPGZ_COIN has drop {} + + fun init(witness: LAOZPGZ_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"LaozpgzCoin", + b"Laozpgz Coin", + b"lets_move task2 coin", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/22661987")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)) + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/laozpgz/code/task2/sources/task2_faucet_coin.move b/mover/laozpgz/code/task2/sources/task2_faucet_coin.move new file mode 100644 index 000000000..2cbdbf7a3 --- /dev/null +++ b/mover/laozpgz/code/task2/sources/task2_faucet_coin.move @@ -0,0 +1,38 @@ +/// Module: task2 +module task2::laozpgz_faucet_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct LAOZPGZ_FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: LAOZPGZ_FAUCET_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"LaozpgzFaucetCoin", + b"LAOZPGZ FAUCET COIN", + b"lets_move task2 faucet coin", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/22661987")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury_cap) + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/laozpgz/code/task3/Move.lock b/mover/laozpgz/code/task3/Move.lock new file mode 100644 index 000000000..9404d0e23 --- /dev/null +++ b/mover/laozpgz/code/task3/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "582EC25FD35EF16806DE366725A7CAA0BAB6AEBFC0DD8EDA3445E800BF34B406" +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.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet0] +chain-id = "4c78adac" +original-published-id = "0x2c9d10cc9263936da1a3e8edaca99d6006b8c2754448fe6b7b41898e8fb6150a" +latest-published-id = "0x2c9d10cc9263936da1a3e8edaca99d6006b8c2754448fe6b7b41898e8fb6150a" +published-version = "1" + +[env.mainnet0] +chain-id = "35834a8a" +original-published-id = "0xc1feab0a77bfbaf5c6e2dc2a82e9574973d5f3c81fddd89657100bb30cdc1877" +latest-published-id = "0xc1feab0a77bfbaf5c6e2dc2a82e9574973d5f3c81fddd89657100bb30cdc1877" +published-version = "1" diff --git a/mover/laozpgz/code/task3/Move.toml b/mover/laozpgz/code/task3/Move.toml new file mode 100644 index 000000000..440322360 --- /dev/null +++ b/mover/laozpgz/code/task3/Move.toml @@ -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 = ["laozpgz (laozpgz@gmail.com)"] # 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" + diff --git a/mover/laozpgz/code/task3/sources/task3.move b/mover/laozpgz/code/task3/sources/task3.move new file mode 100644 index 000000000..3d8659022 --- /dev/null +++ b/mover/laozpgz/code/task3/sources/task3.move @@ -0,0 +1,94 @@ +/// Module: task3 +module task3::laozpgz_nft { + use sui::url::{Self, Url}; + use std::string; + use sui::event; + + /// An example NFT that can be minted by anybody + public struct LaozpgzNFT has key, store { + id: UID, + /// Name for the token + name: string::String, + /// Description of the token + description: string::String, + /// URL for the token + url: Url, + // TODO: allow custom attributes + } + + // ===== Events ===== + + public struct NFTMinted has copy, drop { + // The Object ID of the NFT + object_id: ID, + // The creator of the NFT + creator: address, + // The name of the NFT + name: string::String, + } + + // ===== Public view functions ===== + + /// Get the NFT's `name` + public fun name(nft: &LaozpgzNFT): &string::String { + &nft.name + } + + /// Get the NFT's `description` + public fun description(nft: &LaozpgzNFT): &string::String { + &nft.description + } + + /// Get the NFT's `url` + public fun url(nft: &LaozpgzNFT): &Url { + &nft.url + } + + // ===== Entrypoints ===== + + /// Create a new devnet_nft + public entry fun mint_to_sender( + name: vector, + description: vector, + url: vector, + ctx: &mut TxContext + ) { + let sender = tx_context::sender(ctx); + let nft = LaozpgzNFT { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + url: url::new_unsafe_from_bytes(url) + }; + + event::emit(NFTMinted { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + /// Transfer `nft` to `recipient` + public entry fun transfer( + nft: LaozpgzNFT, recipient: address, _: &mut TxContext + ) { + transfer::public_transfer(nft, recipient) + } + + /// Update the `description` of `nft` to `new_description` + public entry fun update_description( + nft: &mut LaozpgzNFT, + new_description: vector, + _: &mut TxContext + ) { + nft.description = string::utf8(new_description) + } + + /// Permanently delete `nft` + public entry fun burn(nft: LaozpgzNFT, _: &mut TxContext) { + let LaozpgzNFT { id, name: _, description: _, url: _ } = nft; + object::delete(id) + } +} diff --git a/mover/laozpgz/code/task5/Move.lock b/mover/laozpgz/code/task5/Move.lock new file mode 100644 index 000000000..02b6d6319 --- /dev/null +++ b/mover/laozpgz/code/task5/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C7AD5E3D8C0C7D5797B782BA2F195CCCEA9BCAE8D838BC4CD1D0EAE8FBD0B456" +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.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet0] +chain-id = "4c78adac" +original-published-id = "0xe77481bd53ba649cf040b3d2fce0626de295bc40053803925af79fbcf41762dc" +latest-published-id = "0xe77481bd53ba649cf040b3d2fce0626de295bc40053803925af79fbcf41762dc" +published-version = "1" + +[env.mainnet0] +chain-id = "35834a8a" +original-published-id = "0xe3503fc01d7a3f1ae10cf300fc798c0be6b4d414a083272a834c201e373dde4c" +latest-published-id = "0xe3503fc01d7a3f1ae10cf300fc798c0be6b4d414a083272a834c201e373dde4c" +published-version = "1" diff --git a/mover/laozpgz/code/task5/Move.toml b/mover/laozpgz/code/task5/Move.toml new file mode 100644 index 000000000..8f0ef80b5 --- /dev/null +++ b/mover/laozpgz/code/task5/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task5" +edition = "2024.beta" # edition = "legacy" to use legacy (pre-2024) Move +# license = "" # e.g., "MIT", "GPL", "Apache 2.0" +# authors = ["laozpgz (laozpgz@gmail.com)"] # 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] +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" + diff --git a/mover/laozpgz/code/task5/sources/task5.move b/mover/laozpgz/code/task5/sources/task5.move new file mode 100644 index 000000000..28f741e46 --- /dev/null +++ b/mover/laozpgz/code/task5/sources/task5.move @@ -0,0 +1,243 @@ +/// Module: task5 +module task5::laozpgz_swap { + + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply, Balance}; + use sui::math; + + ///Three constants were defined to represent different error codes. + const E_ZERO_AMOUNT: u64 = 0; //Error code indicating an amount of 0.When the supplied coins are zero. + const E_RESERVES_EMPTY: u64 = 2; //An error code indicating that the reserve is empty.When someone tries to exchange in an empty pool. + const E_POOL_FULL: u64 = 4; //Error code indicating that the pool is full.When someone tries to increase more liquidity. + + + const FEE_SCALING: u128 = 10000; //The integer scaling setting used for cost calculation. + const FEE_PERCENT: u128 = 30; //Set 0.3%. The percentage of fees to be extracted from the swap. + + //Defined maximum pool value to limit trading volume. + //18446744073709551615 is the maximum value of u64 type. + //Can avoid overflow issues. + const MAX_POOL_VALUE: u64 = 18446744073709551615 / 10000; + + public struct LSP has drop {} + + public struct Pool has key { + id: UID, + token_a: Balance, + token_b: Balance, + lsp_supply: Supply>, + fee_percent: u64 + } + + fun init(_: &mut TxContext) {} //Initialize function, used to initialize the trading platform. + + + ///Create liquidity pool + entry fun create_pool( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + let fee_percent = FEE_PERCENT as u64; + let token_a_amt = coin::value(&token_a); + let token_b_amt = coin::value(&token_b); + + //This code is used to check whether the two token quantities of the transaction pair meet the conditions. + // it will check if the quantity of both tokens is greater than 0, and if not, throw the exception EZERO-AMOUNT. + assert!(token_a_amt > 0 && token_b_amt > 0, E_ZERO_AMOUNT); + //it will check whether the quantity of both tokens is less than the maximum pool value (MAX-POOL_Value), and if not, throw the exception EPOOL_PULL. + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, E_POOL_FULL); + + //Used to calculate the exchange ratio between two tokens + + //Use the math:: sqrt() function to calculate the square root of the number of two tokens and store the result in the variable share. + let share = math::sqrt(token_a_amt) * math::sqrt(token_b_amt);//This is to ensure that the exchange ratio is correct, as the exchange ratio is usually a decimal. + + //Create a token of LSP type, which is a combination of TA and TB types. + //Create a supply of LSP type tokens using the balance:: createSupply() function. This function will return a Supply type variable representing the supply of LSP tokens. + let mut lsp_supply = balance::create_supply(LSP {}); + + //LSP is a token type that represents the exchange ratio and will be used to represent the exchanged tokens. + + //Use the balance:: increment_supply() function to increase the supply of LSP tokens and pass share as a parameter. + //This function will multiply the share by the supply of LSP tokens and return the result as the new supply. + let lsp = balance::increase_supply(&mut lsp_supply, share); + + + + let pool = Pool { + id: object::new(ctx), //A new object created by object:: new (ctx) to store the ID of Pool. + token_a: coin::into_balance(token_a), //An object converted from token a to balance by coin:: into_balance (token a) + token_b: coin::into_balance(token_b), //used to store the quantity of token A in the Pool. + lsp_supply, //Represents the supply of LSP tokens in the Pool. + fee_percent, // Represents the percentage of transaction fees in the Pool. + }; + + + //By calling transfer:: share_object (pool), the token pool can be shared with all participants + transfer::share_object(pool); + + + //By calling transfer:: public_transfer, token transfer operations can be implemented, thereby enabling token trading and circulation. + transfer::public_transfer( + coin::from_balance(lsp, ctx), + tx_context::sender(ctx) + ); + } + + + ///Used to add liquidity to a pool + //By adjusting the number of tokens in the pool, the exchange ratio between the two tokens in the pool remains unchanged. + entry fun add_liquidity( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + //Used to check if the amounts of two tokens (token_1 and token_b) are both greater than 0. + assert!(coin::value(&token_a) > 0 && coin::value(&token_b) > 0, E_ZERO_AMOUNT); + + let (token_a_amt, token_b_amt, lsp_supply) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, E_RESERVES_EMPTY); + + let token_a_balance = coin::into_balance(token_a); + let token_b_balance = coin::into_balance(token_b); + let token_a_added = balance::value(&token_a_balance); + let token_b_added = balance::value(&token_b_balance); + + + //Used to calculate the exchange ratio between two tokens (token a and token b), and to calculate the number of tokens obtained after exchange (share_mined). + let share_minted = math::min( + (token_a_added * lsp_supply) / token_a_amt, + (token_b_added * lsp_supply) / token_b_amt + ); + + balance::join(&mut pool.token_a, token_a_balance); + balance::join(&mut pool.token_b, token_b_balance); + + //Used to check if the number of two tokens is less than the maximum pool value (MAX-POOL_Value), and if it is less than, continue with subsequent operations; If it is greater than or equal to the maximum pool value, throw the exception E2POOL-FULL. + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, E_POOL_FULL); + + let lsp = balance::increase_supply(&mut pool.lsp_supply, share_minted); + + + //Used to implement transfer operations. It takes two parameters: one is the amount of the transfer, and the other is the recipient's address. + transfer::public_transfer( + coin::from_balance(lsp, ctx), //Used to retrieve a certain amount of cryptocurrency from the sender's balance. + tx_context::sender(ctx) //Get the sender's address + ) + } + + ///Remove liquidity from the trading pool. + entry fun remove_liquidity( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ) { + let lsp_amount = coin::value(&lsp); + assert!(lsp_amount > 0, E_ZERO_AMOUNT); + + let (token_a_amt, token_b_amt, total_supply) = get_amounts(pool); + let token_a_share = (token_a_amt * lsp_amount) / total_supply; + let token_b_share = (token_b_amt * lsp_amount) / total_supply; + + balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); + + transfer::public_transfer(coin::take(&mut pool.token_a, token_a_share, ctx), tx_context::sender(ctx)); + transfer::public_transfer(coin::take(&mut pool.token_b, token_b_share, ctx), tx_context::sender(ctx)); + } + + entry fun swap_a_to_b( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ) { + let token_a_amt = coin::value(&token_a); + assert!(token_a_amt > 0, E_ZERO_AMOUNT); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, E_RESERVES_EMPTY); + + let token_b_amt = sell_token_a(pool, token_a_amt); + balance::join(&mut pool.token_a, coin::into_balance(token_a)); + + transfer::public_transfer(coin::take(&mut pool.token_b, token_b_amt, ctx), tx_context::sender(ctx)); + } + + entry fun swap_b_to_a( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ) { + let token_b_amt = coin::value(&token_b); + assert!(token_b_amt > 0, E_ZERO_AMOUNT); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, E_RESERVES_EMPTY); + + let token_a_amt = sell_token_b(pool, token_b_amt); + balance::join(&mut pool.token_b, coin::into_balance(token_b)); + + transfer::public_transfer(coin::take(&mut pool.token_a, token_a_amt, ctx), tx_context::sender(ctx)); + } + + public fun sell_token_a(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_a_amt, + token_b_amt, + pool.fee_percent + ) + } + + public fun sell_token_b(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_b_amt, + token_a_amt, + pool.fee_percent + ) + } + + public fun get_amounts(pool: &Pool): (u64, u64, u64) { + ( + balance::value(&pool.token_a), + balance::value(&pool.token_b), + balance::supply_value(&pool.lsp_supply), + ) + } + + ///Used to calculate the output amount for a given input amount, input reserve, output reserve, and expense percentage. + // 1.Convert input amount, input reserve, output reserve, and expense percentage to U128 type for more accurate calculations. + // 2.Calculate the input amount input_with_fee, which includes expenses, using the formula input_amount * FEE.SCALING/(FEE.SCALING - fee percentage). FEESCALING is a constant with a value of 1000000000000. + // 3.Calculate the total amount using the formula input-reserve * output-reserve. + // 4.Calculate the output amount output-amount using the formula output-reserve - total/(input-reserve+input_with_fee). + // 5.Convert output.amount back to u64 type and return. + public fun calc_output_amount( + input_amount: u64, + input_reserve: u64, + output_reserve: u64, + fee_percent: u64 + ): u64 { + let ( + input_amount, + input_reserve, + output_reserve, + fee_percent + ) = ( + (input_amount as u128), + (input_reserve as u128), + (output_reserve as u128), + (fee_percent as u128), + ); + + let input_with_fee = input_amount * FEE_SCALING / (FEE_SCALING - fee_percent); + + let total = input_reserve * output_reserve; + let output_amount = output_reserve - total / (input_reserve + input_with_fee); + + (output_amount as u64) + } +} diff --git a/mover/laozpgz/code/task5/task_2_5.sh.txt b/mover/laozpgz/code/task5/task_2_5.sh.txt new file mode 100755 index 000000000..2d6fc555d --- /dev/null +++ b/mover/laozpgz/code/task5/task_2_5.sh.txt @@ -0,0 +1,56 @@ + +#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +# sui client publish --gas-budget 800000000 + +#task2 +export MY_ADDRESS=0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b + +export TASK2_PACKAGE_ID=0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2 + +export COIN_TYPE=0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_coin::LAOZPGZ_COIN + +export FAUCET_TYPE=0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_faucet_coin::LAOZPGZ_FAUCET_COIN + +export COIN_TREA_ID=0xe40d27bcf2dbc3897fc3f37d737cdd084297798281f4a5d36004e13619ffd4b0 + +export FAUCET_TREA_ID=0xed2a54b89ac6b356a29b0fd6072ea22a77c048fa8bf423078662038c58734318 + +export ADDRESS_1=0x3944bb6f113124b528e9d3c5af2ee2945f3ffa4577d5015bca7321e8ff9b7055 + +export ADDRESS_2=0x90d4bd15c8785b311daf2a5de65a41449b5883daa9c3ba750639bb87ff429229 + +export COIN_ID_1=0xf456b03605343879bbc3384aeba7b8930a47cac23a5f3d9f239536b9d83373fd +export COIN_ID_2=0xf1c739941a21653f915675212fb228206f2c367399a2fa7ae714fa8047f0179d + +export FAUCET_ID_1=0xf28b7fbef6b013857c8058ed5c8176369adbffba72ac53633e1638b3ab1b79b2 +export FAUCET_ID_2=0xafe4e6479ee673f117e538322a204e680aac02af723f7b714ff4b3631e97eaec + +#task5 +export TASK5_PACKAGE_ID=0xe3503fc01d7a3f1ae10cf300fc798c0be6b4d414a083272a834c201e373dde4c + +export POOL_ID=0xe5707cbfe57c575acd4314877e26f965c61142ce943d10e5b8d6db8422ee0046 + + +#Mint LaozpgzFaucetCoin ADDRESS1 ADDRESS2 +#sui client call --gas-budget 8000000 --package $TASK2_PACKAGE_ID --module laozpgz_faucet_coin --function mint --args $FAUCET_TREA_ID 10000000000000 $ADDRESS_1 +#sui client call --gas-budget 8000000 --package $TASK2_PACKAGE_ID --module laozpgz_faucet_coin --function mint --args $FAUCET_TREA_ID 10000000000000 $ADDRESS_2 + +#Mint LaozpgzCoin +sui client call --gas-budget 8000000 --package $TASK2_PACKAGE_ID --module laozpgz_coin --function mint --args $COIN_TREA_ID 1000000000 $MY_ADDRESS + + +#Mint LaozpgzFaucetCoin +#sui client call --gas-budget 8000000 --package $TASK2_PACKAGE_ID --module laozpgz_faucet_coin --function mint --args $FAUCET_TREA_ID 10000000000000 $MY_ADDRESS + + +#create_pool +#sui client call --gas-budget 80000000 --package $TASK5_PACKAGE_ID --module laozpgz_swap --function create_pool --type-args $COIN_TYPE $FAUCET_TYPE --args $COIN_ID_1 $FAUCET_ID_1 + + +#swap_a_to_b +#sui client call --gas-budget 8000000 --package $TASK5_PACKAGE_ID --module laozpgz_swap --function swap_a_to_b --type-args $COIN_TYPE $FAUCET_TYPE --args $POOL_ID $COIN_ID_2 + + +#swap_b_to_a +#sui client call --gas-budget 8000000 --package $TASK5_PACKAGE_ID --module laozpgz_swap --function swap_b_to_a --type-args $COIN_TYPE $FAUCET_TYPE --args $POOL_ID $FAUCET_ID_2 diff --git a/mover/laozpgz/images/laozpgz_SuietWallet.png b/mover/laozpgz/images/laozpgz_SuietWallet.png new file mode 100644 index 000000000..b76e30370 Binary files /dev/null and b/mover/laozpgz/images/laozpgz_SuietWallet.png differ diff --git a/mover/laozpgz/images/laozpgz_nft.png b/mover/laozpgz/images/laozpgz_nft.png new file mode 100644 index 000000000..7a008624b Binary files /dev/null and b/mover/laozpgz/images/laozpgz_nft.png differ diff --git a/mover/laozpgz/images/task1_PackageID_screenshot.png b/mover/laozpgz/images/task1_PackageID_screenshot.png new file mode 100644 index 000000000..79d78cf21 Binary files /dev/null and b/mover/laozpgz/images/task1_PackageID_screenshot.png differ diff --git a/mover/laozpgz/images/task3_NFTObject_screenshot.png b/mover/laozpgz/images/task3_NFTObject_screenshot.png new file mode 100644 index 000000000..ab4ae6524 Binary files /dev/null and b/mover/laozpgz/images/task3_NFTObject_screenshot.png differ diff --git a/mover/laozpgz/images/task3_PackageID_screenshot.png b/mover/laozpgz/images/task3_PackageID_screenshot.png new file mode 100644 index 000000000..76802aa12 Binary files /dev/null and b/mover/laozpgz/images/task3_PackageID_screenshot.png differ diff --git a/mover/laozpgz/notes/readme.md b/mover/laozpgz/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/laozpgz/notes/task1_note.html b/mover/laozpgz/notes/task1_note.html new file mode 100644 index 000000000..2c8bdab01 --- /dev/null +++ b/mover/laozpgz/notes/task1_note.html @@ -0,0 +1,179 @@ +lzpdeMacBook-Pro:letsmove laozp$ cd mover/laozpgz/code/task1 +lzpdeMacBook-Pro:task1 laozp$ which sui +/opt/homebrew/bin/sui +lzpdeMacBook-Pro:task1 laozp$ sui client -V +sui-client 1.26.0-homebrew +lzpdeMacBook-Pro:task1 laozp$ sui client envs +╭──────────┬─────────────────────────────────────┬────────╮ +│ alias │ url │ active │ +├──────────┼─────────────────────────────────────┼────────┤ +│ devnet │ https://fullnode.devnet.sui.io:443 │ │ +│ testnet0 │ https://fullnode.testnet.sui.io:443 │ * │ +│ mainnet0 │ https://fullnode.mainnet.sui.io:443 │ │ +╰──────────┴─────────────────────────────────────┴────────╯ +lzpdeMacBook-Pro:task1 laozp$ sui client active-env +testnet0 +lzpdeMacBook-Pro:task1 laozp$ sui client active-address +0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b +lzpdeMacBook-Pro:task1 laozp$ sui client faucet +Request successful. It can take up to 1 minute to get the coin. Run sui client gas to check your gas coins. +lzpdeMacBook-Pro:task1 laozp$ sui move build +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING task1 +lzpdeMacBook-Pro:task1 laozp$ +lzpdeMacBook-Pro:task1 laozp$ sui client publish --gas-budget 100000 +00 +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING task1 +Successfully verified dependencies on-chain against source. +Transaction Digest: 52E9CbFNQcdEEgE2ePadrkpFQrZBFXRpjmd2EHRNeBoW +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ Gas Owner: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0b86c8fa6c7c58a0c7902b31296da04a6f3d941c38dac921132ca681be89c6e1 │ +│ │ Version: 29617394 │ +│ │ Digest: EiFFpFm1bLcyL32B2sjGwhDD7t1zGBfbrE4UX1BLGPsX │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ i78LFy0eWPEJOq/Jt7m1KBBwB8EXO1X51y31uoAxaCcnLZ98/WgM9JVUmij5ymVUeKHoH59sJ1yC7IZJYGe+Aw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 52E9CbFNQcdEEgE2ePadrkpFQrZBFXRpjmd2EHRNeBoW │ +│ Status: Success │ +│ Executed Epoch: 383 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x9912cb630cfd342673bbc127eca4d089ba065272f8c1ffef4b6563b599d6d5cf │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 29617395 │ +│ │ Digest: 9VuKwhMCKDBz34pQq4JEaMrYEdN3zN1NYyQX896YpeGe │ +│ └── │ +│ ┌── │ +│ │ ID: 0xb8a1a5e3ee8fb1920a646d596ef3c8b60732775967c4a933160509a7401a1f6d │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 29617395 │ +│ │ Digest: 8aeo7jpMUZ6pwLQ21Gc5fTHDtHhRdoNbaE7adzgVDBjx │ +│ └── │ +│ ┌── │ +│ │ ID: 0xc8201f3f3a915ad869278329ab53605867fe4f75a58cd1156aa5f8f6897f6ac8 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 5GiTYr49js4CvLrmKtvDvWWSGLNAXg5vdwFyhLRHvBWv │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0b86c8fa6c7c58a0c7902b31296da04a6f3d941c38dac921132ca681be89c6e1 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 29617395 │ +│ │ Digest: Bdb3sWED4L8NjknkZUe1xUWapTAPh3tYFVfSAVXcKMMr │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0b86c8fa6c7c58a0c7902b31296da04a6f3d941c38dac921132ca681be89c6e1 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 29617395 │ +│ │ Digest: Bdb3sWED4L8NjknkZUe1xUWapTAPh3tYFVfSAVXcKMMr │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 9150400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3hx1DJo5oJHjqwGaSkHQyC2K5EZmR5Mef9PMjT14Gkp8 │ +│ 6c3hAbXwoKqSv8Grf4wv7VAJYpT7UnPxV3zqeRjmN1JY │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x9912cb630cfd342673bbc127eca4d089ba065272f8c1ffef4b6563b599d6d5cf │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 29617395 │ +│ │ Digest: 9VuKwhMCKDBz34pQq4JEaMrYEdN3zN1NYyQX896YpeGe │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xb8a1a5e3ee8fb1920a646d596ef3c8b60732775967c4a933160509a7401a1f6d │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ ObjectType: 0xc8201f3f3a915ad869278329ab53605867fe4f75a58cd1156aa5f8f6897f6ac8::hello_move::HelloMove │ +│ │ Version: 29617395 │ +│ │ Digest: 8aeo7jpMUZ6pwLQ21Gc5fTHDtHhRdoNbaE7adzgVDBjx │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0b86c8fa6c7c58a0c7902b31296da04a6f3d941c38dac921132ca681be89c6e1 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 29617395 │ +│ │ Digest: Bdb3sWED4L8NjknkZUe1xUWapTAPh3tYFVfSAVXcKMMr │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xc8201f3f3a915ad869278329ab53605867fe4f75a58cd1156aa5f8f6897f6ac8 │ +│ │ Version: 1 │ +│ │ Digest: 5GiTYr49js4CvLrmKtvDvWWSGLNAXg5vdwFyhLRHvBWv │ +│ │ Modules: hello_move │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -9172280 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + + +https://suiscan.xyz/testnet/object/0xc8201f3f3a915ad869278329ab53605867fe4f75a58cd1156aa5f8f6897f6ac8/contracts +https://suiscan.xyz/testnet/object/0xc8201f3f3a915ad869278329ab53605867fe4f75a58cd1156aa5f8f6897f6ac8/contracts diff --git a/mover/laozpgz/notes/task2_note.html b/mover/laozpgz/notes/task2_note.html new file mode 100644 index 000000000..63922d161 --- /dev/null +++ b/mover/laozpgz/notes/task2_note.html @@ -0,0 +1,237 @@ +lzpdeMacBook-Pro:letsmove laozp$ cd mover/laozpgz/code/task2 +lzpdeMacBook-Pro:task2 laozp$ sui move build +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING task2 +Total number of linter warnings suppressed: 1 (unique lints: 1) +lzpdeMacBook-Pro:task2 laozp$ sui client envs +╭──────────┬─────────────────────────────────────┬────────╮ +│ alias │ url │ active │ +├──────────┼─────────────────────────────────────┼────────┤ +│ devnet │ https://fullnode.devnet.sui.io:443 │ │ +│ testnet0 │ https://fullnode.testnet.sui.io:443 │ │ +│ mainnet0 │ https://fullnode.mainnet.sui.io:443 │ * │ +╰──────────┴─────────────────────────────────────┴────────╯ +lzpdeMacBook-Pro:task2 laozp$ sui client active-address +0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b +lzpdeMacBook-Pro:task2 laozp$ sui client publish +[warn] Client/Server api version mismatch, client api version : 1.26.0, server api version : 1.25.2 +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING task2 +Total number of linter warnings suppressed: 1 (unique lints: 1) +Failed to publish the Move module(s), reason: [warning] Multiple source verification errors found: + +- Local dependency did not match its on-chain version at 0000000000000000000000000000000000000000000000000000000000000002::Sui::vec_set +- Local dependency did not match its on-chain version at 0000000000000000000000000000000000000000000000000000000000000002::Sui::vec_map + +This may indicate that the on-chain version(s) of your package's dependencies may behave differently than the source version(s) your package was built against. + +Fix this by rebuilding your packages with source versions matching on-chain versions of dependencies, or ignore this warning by re-running with the --skip-dependency-verification flag. +lzpdeMacBook-Pro:task2 laozp$ sui client publish --skip-dependency-verification +[warn] Client/Server api version mismatch, client api version : 1.26.0, server api version : 1.25.2 +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING task2 +Total number of linter warnings suppressed: 1 (unique lints: 1) +Skipping dependency verification +Transaction Digest: CxeDnxdE3ikhmYgzUajNojNQuw1AMkqn7e7aQ7W8NMqe +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ Gas Owner: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ Gas Budget: 29490800 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Version: 207792908 │ +│ │ Digest: HaHYN921wnvLrLyYq2EnDW36821JrTMhfRvppuFC2Jvq │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ ALfasSPs4Q9Tzc3+rX+VvPUWlTj/RD8tQNfvyUVC5/I1tsENnmIUfBu/vd3SNMVUmBOlU/59dIY13SZ/QVcSDQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: CxeDnxdE3ikhmYgzUajNojNQuw1AMkqn7e7aQ7W8NMqe │ +│ Status: Success │ +│ Executed Epoch: 416 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x21de087165708cd7f9cfc829635f9943bd4f7f727026135dd6d8db96a98936e3 │ +│ │ Owner: Immutable │ +│ │ Version: 207792909 │ +│ │ Digest: CfGLWYSwz5gynEBYLWQQJateb3QqyuQSKadDmxrSE8CC │ +│ └── │ +│ ┌── │ +│ │ ID: 0x4dbde3cc718f6070db565b466a659b685256bb7959282c57edc4e9dc4af49786 │ +│ │ Owner: Immutable │ +│ │ Version: 207792909 │ +│ │ Digest: BzRKTbKPGuLDTC4VQaBx2QgjcbBwMi2BNb7kNXst437b │ +│ └── │ +│ ┌── │ +│ │ ID: 0x4e09d8e2c0df691c1d28e418ccda67cbc58fc622ff0661c93d5389b030a4a4fe │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 207792909 │ +│ │ Digest: 9tN69fpCyh9GX7SMAU5qjWCMGeT3AU9UjnXJi6rd34bc │ +│ └── │ +│ ┌── │ +│ │ ID: 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 7XqjSnWiq3uNN9qcvEVKPvWeHZqC3itHEKrPBqVSEhT │ +│ └── │ +│ ┌── │ +│ │ ID: 0xe40d27bcf2dbc3897fc3f37d737cdd084297798281f4a5d36004e13619ffd4b0 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 207792909 │ +│ │ Digest: DHz5Qhio8BG7nuK6YJVXm9X4DskZQQFu8CxcxMk1gE19 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xed2a54b89ac6b356a29b0fd6072ea22a77c048fa8bf423078662038c58734318 │ +│ │ Owner: Shared( 207792909 ) │ +│ │ Version: 207792909 │ +│ │ Digest: GPT5EosPiAtmHTTDCLa957gmVhc4om3oK9w2hETA4wkp │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 207792909 │ +│ │ Digest: 3bEQui3g4zbjcCt91ygNxpedJw1XksrHnGAaAzKzomrf │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 207792909 │ +│ │ Digest: 3bEQui3g4zbjcCt91ygNxpedJw1XksrHnGAaAzKzomrf │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 27990800 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ AVaXnuGC6DfQQPcy5toHDj6kid4ypVbd48q5miCYELqk │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x21de087165708cd7f9cfc829635f9943bd4f7f727026135dd6d8db96a98936e3 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_faucet_coin::LAOZPGZ_FAUCET_COIN> │ +│ │ Version: 207792909 │ +│ │ Digest: CfGLWYSwz5gynEBYLWQQJateb3QqyuQSKadDmxrSE8CC │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x4dbde3cc718f6070db565b466a659b685256bb7959282c57edc4e9dc4af49786 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_coin::LAOZPGZ_COIN> │ +│ │ Version: 207792909 │ +│ │ Digest: BzRKTbKPGuLDTC4VQaBx2QgjcbBwMi2BNb7kNXst437b │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x4e09d8e2c0df691c1d28e418ccda67cbc58fc622ff0661c93d5389b030a4a4fe │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 207792909 │ +│ │ Digest: 9tN69fpCyh9GX7SMAU5qjWCMGeT3AU9UjnXJi6rd34bc │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xe40d27bcf2dbc3897fc3f37d737cdd084297798281f4a5d36004e13619ffd4b0 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_coin::LAOZPGZ_COIN> │ +│ │ Version: 207792909 │ +│ │ Digest: DHz5Qhio8BG7nuK6YJVXm9X4DskZQQFu8CxcxMk1gE19 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xed2a54b89ac6b356a29b0fd6072ea22a77c048fa8bf423078662038c58734318 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Shared( 207792909 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_faucet_coin::LAOZPGZ_FAUCET_COIN> │ +│ │ Version: 207792909 │ +│ │ Digest: GPT5EosPiAtmHTTDCLa957gmVhc4om3oK9w2hETA4wkp │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 207792909 │ +│ │ Digest: 3bEQui3g4zbjcCt91ygNxpedJw1XksrHnGAaAzKzomrf │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2 │ +│ │ Version: 1 │ +│ │ Digest: 7XqjSnWiq3uNN9qcvEVKPvWeHZqC3itHEKrPBqVSEhT │ +│ │ Modules: laozpgz_coin, laozpgz_faucet_coin │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -27762680 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +lzpdeMacBook-Pro:task2 laozp$ + + +PackageID: 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2 + + +mint1: +https://suiscan.xyz/mainnet/object/0xed2a54b89ac6b356a29b0fd6072ea22a77c048fa8bf423078662038c58734318 + +mint2: +https://suiscan.xyz/mainnet/object/0x118bcb3c5c6e6f6c0ac4f349809b9e553e132cb57fc754b3eac391fef4d89c66 + diff --git a/mover/laozpgz/notes/task3_note.html b/mover/laozpgz/notes/task3_note.html new file mode 100644 index 000000000..d9fc8f475 --- /dev/null +++ b/mover/laozpgz/notes/task3_note.html @@ -0,0 +1,167 @@ +lzpdeMacBook-Pro:task3 laozp$ +lzpdeMacBook-Pro:task3 laozp$ sui client active-env +testnet0 +lzpdeMacBook-Pro:task3 laozp$ sui client envs +╭──────────┬─────────────────────────────────────┬────────╮ +│ alias │ url │ active │ +├──────────┼─────────────────────────────────────┼────────┤ +│ devnet │ https://fullnode.devnet.sui.io:443 │ │ +│ testnet0 │ https://fullnode.testnet.sui.io:443 │ * │ +│ mainnet0 │ https://fullnode.mainnet.sui.io:443 │ │ +╰──────────┴─────────────────────────────────────┴────────╯ +lzpdeMacBook-Pro:task3 laozp$ sui client switch --env mainnet0 +Active environment switched to [mainnet0] +lzpdeMacBook-Pro:task3 laozp$ sui client active-address +0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b +lzpdeMacBook-Pro:task3 laozp$ sui client active-env +mainnet0 +lzpdeMacBook-Pro:task3 laozp$ sui client envs +╭──────────┬─────────────────────────────────────┬────────╮ +│ alias │ url │ active │ +├──────────┼─────────────────────────────────────┼────────┤ +│ devnet │ https://fullnode.devnet.sui.io:443 │ │ +│ testnet0 │ https://fullnode.testnet.sui.io:443 │ │ +│ mainnet0 │ https://fullnode.mainnet.sui.io:443 │ * │ +╰──────────┴─────────────────────────────────────┴────────╯ +lzpdeMacBook-Pro:task3 laozp$ sui client publish +[warn] Client/Server api version mismatch, client api version : 1.26.0, server api version : 1.25.2 +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING task3 +Successfully verified dependencies on-chain against source. +Transaction Digest: H93jm66KLZHqnZhiQXbQC3errBQKyWyc11UujmeMCFH +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ Gas Owner: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ Gas Budget: 12641600 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Version: 135559350 │ +│ │ Digest: 2ddjZcT9WJQhniehrtnM16fPz7QaJcH9nvTuwaDPTbWt │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ DQ+vhFBMWIouJXoqRR5xWfoxaQNnmdYHuFI6U7b4DIA3UQIeG28xo6+knGfAmy7BVn/bhr4s05zNOLzUYcQJBg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: H93jm66KLZHqnZhiQXbQC3errBQKyWyc11UujmeMCFH │ +│ Status: Success │ +│ Executed Epoch: 411 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xb9dbb2ae98d5a394d74871b4e6f916a31ea2c3a593e732d44d9e3f690786d774 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 135559351 │ +│ │ Digest: B23naMsNfqBjuKbG4BavGqMTZ9aRcCEmy6W5JngpgE3f │ +│ └── │ +│ ┌── │ +│ │ ID: 0xc1feab0a77bfbaf5c6e2dc2a82e9574973d5f3c81fddd89657100bb30cdc1877 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 76DWqt6XPsSBMrWNtDr8Uej7eBGCswMs1VUzDjsrUsV3 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 135559351 │ +│ │ Digest: FCBFazUcNqiTxjP1qCqDMQktbyEQXm6PWehtGRHAVfb8 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 135559351 │ +│ │ Digest: FCBFazUcNqiTxjP1qCqDMQktbyEQXm6PWehtGRHAVfb8 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 11141600 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 9ajarNCfnHyMAytysHKBM4zTxQJadTXfcbRDC1NRVFZ3 │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xb9dbb2ae98d5a394d74871b4e6f916a31ea2c3a593e732d44d9e3f690786d774 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 135559351 │ +│ │ Digest: B23naMsNfqBjuKbG4BavGqMTZ9aRcCEmy6W5JngpgE3f │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 135559351 │ +│ │ Digest: FCBFazUcNqiTxjP1qCqDMQktbyEQXm6PWehtGRHAVfb8 │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xc1feab0a77bfbaf5c6e2dc2a82e9574973d5f3c81fddd89657100bb30cdc1877 │ +│ │ Version: 1 │ +│ │ Digest: 76DWqt6XPsSBMrWNtDr8Uej7eBGCswMs1VUzDjsrUsV3 │ +│ │ Modules: laozpgz_nft │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -10913480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +lzpdeMacBook-Pro:task3 laozp$ + + +https://suiscan.xyz/mainnet/object/0x9e672cb5d665f3f5195e4d7730d19f8427ab1c43b6fcf5705e08e95714ce5270 + +https://suiscan.xyz/mainnet/object/0xc1feab0a77bfbaf5c6e2dc2a82e9574973d5f3c81fddd89657100bb30cdc1877/contracts \ No newline at end of file diff --git a/mover/laozpgz/notes/task5_note.html b/mover/laozpgz/notes/task5_note.html new file mode 100644 index 000000000..d78b8e0be --- /dev/null +++ b/mover/laozpgz/notes/task5_note.html @@ -0,0 +1,493 @@ +│ +│ ┌── │ +│ │ ObjectID: 0xe5707cbfe57c575acd4314877e26f965c61142ce943d10e5b8d6db8422ee0046 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Shared( 207792917 ) │ +│ │ ObjectType: 0xe3503fc01d7a3f1ae10cf300fc798c0be6b4d414a083272a834c201e373dde4c::laozpgz_swap::Pool<0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_coin::LAOZPGZ_COIN, 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_faucet_coin::LAOZPGZ_FAUCET_COIN> │ +│ │ Version: 207792917 │ +│ │ Digest: CfmcvRkWJpF7THUnBFr1srimVCJv8xWN21jabWgS893t │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 207792917 │ +│ │ Digest: DptskAiHbvxYAtSSNPsqLMYkwUuxaM3UgPEGpAVna8Dd │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2765824 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ CoinType: 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_coin::LAOZPGZ_COIN │ +│ │ Amount: -100000000000 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ CoinType: 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_faucet_coin::LAOZPGZ_FAUCET_COIN │ +│ │ Amount: -10000000000000 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ CoinType: 0xe3503fc01d7a3f1ae10cf300fc798c0be6b4d414a083272a834c201e373dde4c::laozpgz_swap::LSP<0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_coin::LAOZPGZ_COIN, 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_faucet_coin::LAOZPGZ_FAUCET_COIN> │ +│ │ Amount: 999997368879 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +lzpdeMacBook-Pro:task5 laozp$ ./task_2_5.sh +[warn] Client/Server api version mismatch, client api version : 1.26.0, server api version : 1.25.2 +Transaction Digest: Dyew1ABnKfmeUKqPmc4Pt9cQLYKopiSD4PpTqESzY89h +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ Gas Owner: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ Gas Budget: 8000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Version: 207792917 │ +│ │ Digest: DptskAiHbvxYAtSSNPsqLMYkwUuxaM3UgPEGpAVna8Dd │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0xe5707cbfe57c575acd4314877e26f965c61142ce943d10e5b8d6db8422ee0046 │ │ +│ │ 1 Imm/Owned Object ID: 0xf1c739941a21653f915675212fb228206f2c367399a2fa7ae714fa8047f0179d │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: swap_a_to_b │ │ +│ │ │ Module: laozpgz_swap │ │ +│ │ │ Package: 0xe3503fc01d7a3f1ae10cf300fc798c0be6b4d414a083272a834c201e373dde4c │ │ +│ │ │ Type Arguments: │ │ +│ │ │ 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_coin::LAOZPGZ_COIN │ │ +│ │ │ 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_faucet_coin::LAOZPGZ_FAUCET_COIN │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ o4zacZsv5aCc8QYXPynZS3GFwQhF1QAPeQLXjeK648RF3PxxB6vQ7cDTXy7UbhLOJ587o9jjz+thBGAe1JpdCg== │ +│ │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: Dyew1ABnKfmeUKqPmc4Pt9cQLYKopiSD4PpTqESzY89h │ +│ Status: Success │ +│ Executed Epoch: 418 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x40d3a05aa460764cd88b83ec8f3a1fc85a2bf3fda8d0b73d43b84d3d0f76f1f3 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 207792918 │ +│ │ Digest: 4CvYBCtTT3zVn7ygCm8frd82KCyAaoNs3xHxCee9sZGD │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 207792918 │ +│ │ Digest: 36hRi9A5fQu1My3kbyFwiWVod722XQAJsGtRvXVuWBPy │ +│ └── │ +│ ┌── │ +│ │ ID: 0xe5707cbfe57c575acd4314877e26f965c61142ce943d10e5b8d6db8422ee0046 │ +│ │ Owner: Shared( 207792917 ) │ +│ │ Version: 207792918 │ +│ │ Digest: 4hgzSH9rkQZoP1B8JdauKJmHxTGtLPXwAHtGi5fNJkSF │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xe5707cbfe57c575acd4314877e26f965c61142ce943d10e5b8d6db8422ee0046 │ +│ │ Version: 207792917 │ +│ │ Digest: CfmcvRkWJpF7THUnBFr1srimVCJv8xWN21jabWgS893t │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0xf1c739941a21653f915675212fb228206f2c367399a2fa7ae714fa8047f0179d │ +│ │ Version: 207792918 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 207792918 │ +│ │ Digest: 36hRi9A5fQu1My3kbyFwiWVod722XQAJsGtRvXVuWBPy │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 5114800 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 4958316 MIST │ +│ Non-refundable Storage Fee: 50084 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3yk8HoPACCS3UXKR7dSTTKW3TyyBMy59MBfj6BF7mc75 │ +│ 941VqRRDTyxw6Wrm913YsuLpLNnCyp6fgfPPGNnBchAZ │ +│ CxeDnxdE3ikhmYgzUajNojNQuw1AMkqn7e7aQ7W8NMqe │ +│ Epx7bMEDv18fBPTSS8QJUrSS9jxdAhuMihL72qMJPUts │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x40d3a05aa460764cd88b83ec8f3a1fc85a2bf3fda8d0b73d43b84d3d0f76f1f3 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_faucet_coin::LAOZPGZ_FAUCET_COIN> │ +│ │ Version: 207792918 │ +│ │ Digest: 4CvYBCtTT3zVn7ygCm8frd82KCyAaoNs3xHxCee9sZGD │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 207792918 │ +│ │ Digest: 36hRi9A5fQu1My3kbyFwiWVod722XQAJsGtRvXVuWBPy │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xe5707cbfe57c575acd4314877e26f965c61142ce943d10e5b8d6db8422ee0046 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Shared( 207792917 ) │ +│ │ ObjectType: 0xe3503fc01d7a3f1ae10cf300fc798c0be6b4d414a083272a834c201e373dde4c::laozpgz_swap::Pool<0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_coin::LAOZPGZ_COIN, 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_faucet_coin::LAOZPGZ_FAUCET_COIN> │ +│ │ Version: 207792918 │ +│ │ Digest: 4hgzSH9rkQZoP1B8JdauKJmHxTGtLPXwAHtGi5fNJkSF │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -906484 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ CoinType: 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_coin::LAOZPGZ_COIN │ +│ │ Amount: -100000000000 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ CoinType: 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_faucet_coin::LAOZPGZ_FAUCET_COIN │ +│ │ Amount: 5007511266898 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +lzpdeMacBook-Pro:task5 laozp$ ./task_2_5.sh +[warn] Client/Server api version mismatch, client api version : 1.26.0, server api version : 1.25.2 +Transaction Digest: HMTvFTzJVtCj2K9u3acDyTGUaLHdp7D8e6jEd2N2jnRZ +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ Gas Owner: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ Gas Budget: 8000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Version: 207792918 │ +│ │ Digest: 36hRi9A5fQu1My3kbyFwiWVod722XQAJsGtRvXVuWBPy │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0xe5707cbfe57c575acd4314877e26f965c61142ce943d10e5b8d6db8422ee0046 │ │ +│ │ 1 Imm/Owned Object ID: 0xafe4e6479ee673f117e538322a204e680aac02af723f7b714ff4b3631e97eaec │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: swap_b_to_a │ │ +│ │ │ Module: laozpgz_swap │ │ +│ │ │ Package: 0xe3503fc01d7a3f1ae10cf300fc798c0be6b4d414a083272a834c201e373dde4c │ │ +│ │ │ Type Arguments: │ │ +│ │ │ 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_coin::LAOZPGZ_COIN │ │ +│ │ │ 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_faucet_coin::LAOZPGZ_FAUCET_COIN │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ DTScBWZD1FBRMlMPjSuS5+NqmC8G0IQDj2SpEXImpLj0HYwEBXKN1SFX9LO4yliilDQgIw/dbo3iN/pqvZKpDg== │ +│ │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: HMTvFTzJVtCj2K9u3acDyTGUaLHdp7D8e6jEd2N2jnRZ │ +│ Status: Success │ +│ Executed Epoch: 418 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x09dc9a2bca5b22bb2a3fe922693d17ca6758afe2d80f7543c19de53ec7c922f8 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 207792919 │ +│ │ Digest: BCMnn1Qg1WjrwtzQRtu9Euqk3XUXJnkL2xoC3184UyAt │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 207792919 │ +│ │ Digest: GgSAPYB2buJHLgASENaDqbJxoLH5tn5kWisBDnCwtXrt │ +│ └── │ +│ ┌── │ +│ │ ID: 0xe5707cbfe57c575acd4314877e26f965c61142ce943d10e5b8d6db8422ee0046 │ +│ │ Owner: Shared( 207792917 ) │ +│ │ Version: 207792919 │ +│ │ Digest: 34UkSifZTZdjruVnh76jUJmuXEJkaAXzJQyucFsZ6UY8 │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xe5707cbfe57c575acd4314877e26f965c61142ce943d10e5b8d6db8422ee0046 │ +│ │ Version: 207792918 │ +│ │ Digest: 4hgzSH9rkQZoP1B8JdauKJmHxTGtLPXwAHtGi5fNJkSF │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0xafe4e6479ee673f117e538322a204e680aac02af723f7b714ff4b3631e97eaec │ +│ │ Version: 207792919 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 207792919 │ +│ │ Digest: GgSAPYB2buJHLgASENaDqbJxoLH5tn5kWisBDnCwtXrt │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 5008400 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 5063652 MIST │ +│ Non-refundable Storage Fee: 51148 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 6F4MBjLR1YbwQ1CSQsMPzQM7wo1Cjz4ZaGJnPSZCk5nT │ +│ CxeDnxdE3ikhmYgzUajNojNQuw1AMkqn7e7aQ7W8NMqe │ +│ Dyew1ABnKfmeUKqPmc4Pt9cQLYKopiSD4PpTqESzY89h │ +│ Epx7bMEDv18fBPTSS8QJUrSS9jxdAhuMihL72qMJPUts │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x09dc9a2bca5b22bb2a3fe922693d17ca6758afe2d80f7543c19de53ec7c922f8 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_coin::LAOZPGZ_COIN> │ +│ │ Version: 207792919 │ +│ │ Digest: BCMnn1Qg1WjrwtzQRtu9Euqk3XUXJnkL2xoC3184UyAt │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 207792919 │ +│ │ Digest: GgSAPYB2buJHLgASENaDqbJxoLH5tn5kWisBDnCwtXrt │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xe5707cbfe57c575acd4314877e26f965c61142ce943d10e5b8d6db8422ee0046 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Shared( 207792917 ) │ +│ │ ObjectType: 0xe3503fc01d7a3f1ae10cf300fc798c0be6b4d414a083272a834c201e373dde4c::laozpgz_swap::Pool<0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_coin::LAOZPGZ_COIN, 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_faucet_coin::LAOZPGZ_FAUCET_COIN> │ +│ │ Version: 207792919 │ +│ │ Digest: 34UkSifZTZdjruVnh76jUJmuXEJkaAXzJQyucFsZ6UY8 │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -694748 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ CoinType: 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_coin::LAOZPGZ_COIN │ +│ │ Amount: 100150225338 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ CoinType: 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_faucet_coin::LAOZPGZ_FAUCET_COIN │ +│ │ Amount: -10000000000000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +lzpdeMacBook-Pro:task5 laozp$ ./task_2_5.sh +[warn] Client/Server api version mismatch, client api version : 1.26.0, server api version : 1.25.2 +Transaction Digest: 8FAq8w48NpapAeefcX7dC5W94wWrtTis5pBXafifNJVa +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ Gas Owner: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ Gas Budget: 8000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Version: 207792919 │ +│ │ Digest: GgSAPYB2buJHLgASENaDqbJxoLH5tn5kWisBDnCwtXrt │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0xe40d27bcf2dbc3897fc3f37d737cdd084297798281f4a5d36004e13619ffd4b0 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "1000000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: laozpgz_coin │ │ +│ │ │ Package: 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ IendMrl6VnlpOTkzFHCMMlECNWmNog4ogolatP54JuHf0jgjpEqOvk6F9Ckx2QXdYoPnIGpn6m/jRrDV8I5EDw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 8FAq8w48NpapAeefcX7dC5W94wWrtTis5pBXafifNJVa │ +│ Status: Success │ +│ Executed Epoch: 418 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x4d571f7ae1e0bac590d6ffaea450d830afddb4eec103c8f21c8ecfb7a3d75309 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 207792920 │ +│ │ Digest: hKAukRvXEFpwiTvLHNY743QYNvBGPB4oLuKw7LnYMz9 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 207792920 │ +│ │ Digest: A8nVfF3LztHt7wxKnsaSWRky3MkXVNqNnj2nCfFcbr84 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xe40d27bcf2dbc3897fc3f37d737cdd084297798281f4a5d36004e13619ffd4b0 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 207792920 │ +│ │ Digest: CrAN6SMe19jFzLJaXmYVmhoD6ZKCv38A9bvbr1aryEpm │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ Version: 207792920 │ +│ │ Digest: A8nVfF3LztHt7wxKnsaSWRky3MkXVNqNnj2nCfFcbr84 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4256000 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 2783880 MIST │ +│ Non-refundable Storage Fee: 28120 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 9hyq8E1QQuAo2A1X419EevUzQ9KRKiqBCmk931khAaeF │ +│ CxeDnxdE3ikhmYgzUajNojNQuw1AMkqn7e7aQ7W8NMqe │ +│ HMTvFTzJVtCj2K9u3acDyTGUaLHdp7D8e6jEd2N2jnRZ │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x4d571f7ae1e0bac590d6ffaea450d830afddb4eec103c8f21c8ecfb7a3d75309 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_coin::LAOZPGZ_COIN> │ +│ │ Version: 207792920 │ +│ │ Digest: hKAukRvXEFpwiTvLHNY743QYNvBGPB4oLuKw7LnYMz9 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0c4dbeaa386e4d4f686152cf66dc99eaadee673503d084573d728fcb7fc5e686 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 207792920 │ +│ │ Digest: A8nVfF3LztHt7wxKnsaSWRky3MkXVNqNnj2nCfFcbr84 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xe40d27bcf2dbc3897fc3f37d737cdd084297798281f4a5d36004e13619ffd4b0 │ +│ │ Sender: 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_coin::LAOZPGZ_COIN> │ +│ │ Version: 207792920 │ +│ │ Digest: CrAN6SMe19jFzLJaXmYVmhoD6ZKCv38A9bvbr1aryEpm │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2222120 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b ) │ +│ │ CoinType: 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2::laozpgz_coin::LAOZPGZ_COIN │ +│ │ Amount: 1000000000 │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +lzpdeMacBook-Pro:task5 laozp$ \ No newline at end of file diff --git a/mover/laozpgz/readme.md b/mover/laozpgz/readme.md new file mode 100644 index 000000000..345dc3c85 --- /dev/null +++ b/mover/laozpgz/readme.md @@ -0,0 +1,46 @@ +## 基本信息 +- Sui钱包地址: `0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b` + +- github: `https://github.com/laozpgz` + +## 个人简介 +> 简介 +- 工作经验: 9年 +- 技术栈: `JS TS` `Web3D-Threejs` `unity` `Solidity` +- 对MOVE语言、Sui生态感兴趣 +- 联系方式: email: `laozpgz@gmail.com` + +## 任务 + +## 01 hello move +- [x] Sui cli version:sui-client 1.26.0 +- [x] Sui钱包截图: ![Sui钱包截图](./images/laozpgz_SuietWallet.png) +- [x] package id: 0xc8201f3f3a915ad869278329ab53605867fe4f75a58cd1156aa5f8f6897f6ac8 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/task1_PackageID_screenshot.png) + +## 02 move coin +- [x] My Coin package id : 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2 +- [x] Faucet package id : 0x505116c299e1202199037b7915e8e0c80c5c5dbef5cb5105178f83412521ddc2 +- [x] 转账 `My Coin` hash : 6fP6nJoGM1EAbFHMnAk3RviEpxr9TByhYK4ReAgmr6ko +- [x] `Faucet Coin` address1 mint hash : B3jrvXXPSeHNFZwTAF5fWrdWiNN1vUJEU862baivJ46f +- [x] `Faucet Coin` address2 mint hash : AWtLUZL41zLF1r5EjNQF2BY5Dz8QyrG5LUkY7Zkd4QBJ + +## 03 move NFT +- [x] nft package id :0xc1feab0a77bfbaf5c6e2dc2a82e9574973d5f3c81fddd89657100bb30cdc1877 +- [x] nft object id : 0x9e672cb5d665f3f5195e4d7730d19f8427ab1c43b6fcf5705e08e95714ce5270 +- [x] 转账 nft hash:VkJGy8eEzjdER3tuVKkj667ySEVmAe2zku8tddavvZU +- [x] scan上的NFT截图:![Scan截图](./images/task3_NFTObject_screenshot.png) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [x] swap package id :0xe1782afe9a84579c4fa67efba89d43fdf9e4468348327b60ff0241a699c8ad6b +- [x] call swap CoinA-> CoinB hash :Dyew1ABnKfmeUKqPmc4Pt9cQLYKopiSD4PpTqESzY89h +- [x] call swap CoinB-> CoinA hash :HMTvFTzJVtCj2K9u3acDyTGUaLHdp7D8e6jEd2N2jnRZ + +## 06 Dapp-kit SDK PTB +- [] save hash : diff --git a/mover/lazy-forever/code/task5/Move.lock b/mover/lazy-forever/code/task5/Move.lock new file mode 100644 index 000000000..4af0c32e1 --- /dev/null +++ b/mover/lazy-forever/code/task5/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "647C1D48BAF57284AF70D94048937EC104CF757BD8FEB91D889C43C6DECCBC39" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "lazy_forever_coin" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/mystenLabs/sui.git", rev = "framework/testnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/mystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "lazy_forever_coin" +source = { local = "..\\..\\2_coin\\lazy_forever_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.26.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de" +latest-published-id = "0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de" +published-version = "1" diff --git a/mover/lazy-forever/code/task5/Move.toml b/mover/lazy-forever/code/task5/Move.toml new file mode 100644 index 000000000..59f1c3b98 --- /dev/null +++ b/mover/lazy-forever/code/task5/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "lazy_forever_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 (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/testnet" } +lazy_forever_coin = { local = "../../2_coin/lazy_forever_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] +lazy_forever_swap = "0x0" +lazy_forever_coin = "0xe61bb7d2e294a1a69489bca5041ce85928d18060cfb4e425a3cd77514ae331b8" +# 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/lazy-forever/code/task5/sources/lazy_forever_swap.move b/mover/lazy-forever/code/task5/sources/lazy_forever_swap.move new file mode 100644 index 000000000..dc3b72863 --- /dev/null +++ b/mover/lazy-forever/code/task5/sources/lazy_forever_swap.move @@ -0,0 +1,67 @@ +/// Module: lazy_forever_swap +module lazy_forever_swap::lazy_forever_swap { + use sui::balance::{Self, Balance}; + use sui::coin::{Self,Coin}; + use sui::transfer::{public_transfer, share_object, transfer}; + use sui::tx_context::sender; + use lazy_forever_coin::lazy_forever_faucet::LAZY_FOREVER_FAUCET; + use lazy_forever_coin::lazy_forever_coin::LAZY_FOREVER_COIN; + + public struct AdminCap has key{ + id :UID + } + + public struct Bank has key { + id : UID, + coin_a : Balance, + coin_b : Balance, + } + + fun init(ctx: &mut TxContext){ + let bank = Bank{ + id: object::new(ctx), + coin_a: balance::zero(), + coin_b: balance::zero(), + }; + + share_object(bank); + + let admin_cap = AdminCap {id : object::new(ctx)}; + + transfer(admin_cap, sender(ctx)); + } + + public entry fun deposit_coin_a(bank: &mut Bank, coin_a: Coin, _ctx: &mut TxContext){ + let coin_a_balance = coin::into_balance(coin_a); + balance::join(&mut bank.coin_a, coin_a_balance); + } + public entry fun deposit_coin_b(bank: &mut Bank, coin_b: Coin, _ctx: &mut TxContext){ + let coin_b_balance = coin::into_balance(coin_b); + balance::join(&mut bank.coin_b, coin_b_balance); + } + public entry fun withdraw_coin_a(_:&AdminCap, bank: &mut Bank, amount: u64, ctx: &mut TxContext){ + let coin_a_balance = balance::split(&mut bank.coin_a, amount); + let coin_a = coin::from_balance(coin_a_balance,ctx); + public_transfer(coin_a, sender(ctx)); + } + public entry fun withdraw_coin_b(_:&AdminCap, bank: &mut Bank, amount: u64, ctx: &mut TxContext){ + let coin_b_balance = balance::split(&mut bank.coin_b, amount); + let coin_b = coin::from_balance(coin_b_balance,ctx); + public_transfer(coin_b, sender(ctx)); + } + public entry fun a_swap_b(bank: &mut Bank, coin_a: Coin, ctx: &mut TxContext){ + let amount = coin::value(&coin_a); + balance::join(&mut bank.coin_a, coin::into_balance(coin_a)); + let amount_after = amount * 2; + let coin_b_balance = balance::split(&mut bank.coin_b, amount_after); + public_transfer(coin::from_balance(coin_b_balance,ctx), sender(ctx)); + } + public entry fun b_swap_a(bank: &mut Bank, coin_b: Coin, ctx: &mut TxContext){ + let amount = coin::value(&coin_b); + balance::join(&mut bank.coin_b, coin::into_balance(coin_b)); + let amount_after = amount * 100000 / 200000; + let coin_a_balance = balance::split(&mut bank.coin_a, amount_after); + public_transfer(coin::from_balance(coin_a_balance,ctx), sender(ctx)); + } +} + diff --git a/mover/lazy-forever/notes/readme.md b/mover/lazy-forever/notes/readme.md index a4ea426e1..af3dde350 100644 --- a/mover/lazy-forever/notes/readme.md +++ b/mover/lazy-forever/notes/readme.md @@ -1,6 +1,6 @@ ## task1 -在win上安装sui,配置环境变量,idea装插件,发布hello源码到测试网`sui client publish --gas-budget 100000000` +在win上安装sui,配置环境变量,idea装插件,发布hello源码到测试网`sui client publish ` ## task2 @@ -1016,3 +1016,1057 @@ Transaction Digest: DKBBG21V7asSvPxWLUjerRhWkDSB4KFYMkSnYWu5QXeu ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ ``` +## task5 + +sui client publish --gas-budget 200000000 --skip-dependency-verification + +``` +Transaction Digest: CNn3BHPneF8MqXXEh8Jk4EXNTqNc27sAcqPtP96jYDQV +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ Gas Owner: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ Gas Budget: 200000000 MIST │ +│ Gas Price: 752 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Version: 246326023 │ +│ │ Digest: 38hRtufjiqGUvsw1KzWfMekWVCnRKw2hY34jKWx8zc9o │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ │ 0xe61bb7d2e294a1a69489bca5041ce85928d18060cfb4e425a3cd77514ae331b8 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ z/mIcNay/D9ytdCGLAerJ8hxoY7tjIv3TiL8vLiUeLnWfiTagHYAX0rLda8iiOMeKyFAyPkLYw0IH6t/mm2hDg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: CNn3BHPneF8MqXXEh8Jk4EXNTqNc27sAcqPtP96jYDQV │ +│ Status: Success │ +│ Executed Epoch: 445 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x276ae8d24ddb8c9014dbe95dc3c191248f4d5e054e47d9e24ba9a948c0b79c23 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 246326024 │ +│ │ Digest: Bfw6DryiqkVVy8V1EBG8wRevuakh3DW3NKg9Jga8Zye │ +│ └── │ +│ ┌── │ +│ │ ID: 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 7ESNLhMT9zaFZUKibKP15C5FgJPmyX2VrK8hLqEmEZ61 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x538dda72d336a1014af92b9b5ed371ac5eb307a4e50e3948020fc766943f1715 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 246326024 │ +│ │ Digest: 8ZwRrorYxffoKLcHLpiF5vF3cYQBtXFsoNaqL26Jq3Rz │ +│ └── │ +│ ┌── │ +│ │ ID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ +│ │ Owner: Shared( 246326024 ) │ +│ │ Version: 246326024 │ +│ │ Digest: BA9oSoTfVbqxxmtNxvAncrB4Nj2gRrNCmTnW1SwA4bHu │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 246326024 │ +│ │ Digest: 89Tgjy72bkZcUaU4jMajs3tmUsrn7zYKA5D1NbJMkKSA │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 246326024 │ +│ │ Digest: 89Tgjy72bkZcUaU4jMajs3tmUsrn7zYKA5D1NbJMkKSA │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 17259600 MIST │ +│ Computation Cost: 752000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ AEHnWRWySoT5jA3JbkEdhqFxSKza8i6sPFB3Ysko1iDr │ +│ DgvoiZ7obDfvYrr2ZqnnDN9SBbpWKXNYUE1qeTJ5auec │ +│ EY8ZaDkjhyBXX8iu9HXPQWznBp4QUcpAaTuwXSheDVuq │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x276ae8d24ddb8c9014dbe95dc3c191248f4d5e054e47d9e24ba9a948c0b79c23 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 246326024 │ +│ │ Digest: Bfw6DryiqkVVy8V1EBG8wRevuakh3DW3NKg9Jga8Zye │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x538dda72d336a1014af92b9b5ed371ac5eb307a4e50e3948020fc766943f1715 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ ObjectType: 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de::lazy_forever_swap::AdminCap │ +│ │ Version: 246326024 │ +│ │ Digest: 8ZwRrorYxffoKLcHLpiF5vF3cYQBtXFsoNaqL26Jq3Rz │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Shared( 246326024 ) │ +│ │ ObjectType: 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de::lazy_forever_swap::Bank │ +│ │ Version: 246326024 │ +│ │ Digest: BA9oSoTfVbqxxmtNxvAncrB4Nj2gRrNCmTnW1SwA4bHu │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 246326024 │ +│ │ Digest: 89Tgjy72bkZcUaU4jMajs3tmUsrn7zYKA5D1NbJMkKSA │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de │ +│ │ Version: 1 │ +│ │ Digest: 7ESNLhMT9zaFZUKibKP15C5FgJPmyX2VrK8hLqEmEZ61 │ +│ │ Modules: lazy_forever_swap │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -17033480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` + + + +sui client call --gas-budget 30000000 --package 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de --module lazy_forever_swap --function deposit_coin_a --args 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 0x1216014cb95e94def546584c00f5688fa03587a9461f852ac3437da2ded02654 + + + +sui client call --gas-budget 30000000 --package 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de --module lazy_forever_swap --function deposit_coin_b --args 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 0x43bede79ac68adcd30f58eaa5afc23c9def94c20ada3d7c297068a08f98b2c41 + + + +sui client call --gas-budget 30000000 --package 0xe61bb7d2e294a1a69489bca5041ce85928d18060cfb4e425a3cd77514ae331b8 --module lazy_forever_coin --function mint --args 0x1bcbe722887fa45f7ac69121af5e7d9d0d39855e6e9b17ccf03d9bbd80f4f025 "1000000" 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc + + + +sui client call --gas-budget 30000000 --package 0xe61bb7d2e294a1a69489bca5041ce85928d18060cfb4e425a3cd77514ae331b8 --module lazy_forever_faucet --function mint --args 0x1ae7381e7dad739aad5b4cc58eab815dfb3bae5eaa76ac15fd0bb3af03546ba2 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc + +注入资金池 + +``` +sui client call --gas-budget 30000000 --package 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de --module lazy_forever_swap --function deposit_coin_a --args 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 0x1216014cb95e94def546584c00f5688fa03587a9461f852ac3437da2ded02654 +Transaction Digest: 5xeQGJ6b6aScGwe4PKUVQ6Mv1seNdWK9v73mYxgfmCnc +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ Gas Owner: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ Gas Budget: 30000000 MIST │ +│ Gas Price: 752 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Version: 246326027 │ +│ │ Digest: AdQDEzhSUUNsa82HRTMoKRLMGoFRn6SFkqP8mRdSbMtC │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ │ +│ │ 1 Imm/Owned Object ID: 0x1216014cb95e94def546584c00f5688fa03587a9461f852ac3437da2ded02654 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: deposit_coin_a │ │ +│ │ │ Module: lazy_forever_swap │ │ +│ │ │ Package: 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ npxtDmAnfve6rIvTRvQa307mdFhVtXcxLFqgMsgsHNsoJEnaKgDXSjWild31yzhHuGLqYd4WBYNXwdqDymgBBA== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 5xeQGJ6b6aScGwe4PKUVQ6Mv1seNdWK9v73mYxgfmCnc │ +│ Status: Success │ +│ Executed Epoch: 445 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 246326028 │ +│ │ Digest: 2mQuGfDEtBfP48TyPrj2vxYhJHAc2swFXEKYt7ouaFDT │ +│ └── │ +│ ┌── │ +│ │ ID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ +│ │ Owner: Shared( 246326024 ) │ +│ │ Version: 246326028 │ +│ │ Digest: MoFrbjdsHBoZvGKFqfWS4pX9dr6ZZhrMG4ig5VkjSk4 │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ +│ │ Version: 246326026 │ +│ │ Digest: GHTtgdxXVEj9zDRPQG6T15jbXwFr8awefmimHnihVHKV │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0x1216014cb95e94def546584c00f5688fa03587a9461f852ac3437da2ded02654 │ +│ │ Version: 246326028 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 246326028 │ +│ │ Digest: 2mQuGfDEtBfP48TyPrj2vxYhJHAc2swFXEKYt7ouaFDT │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2462400 MIST │ +│ Computation Cost: 752000 MIST │ +│ Storage Rebate: 3942576 MIST │ +│ Non-refundable Storage Fee: 39824 MIST │ +│ │ +│ Transaction Dependencies: │ +│ AdqBKZKGUpAp9eucmSXdW8KN7cypwKqz1MLGNNi9zHiz │ +│ CNn3BHPneF8MqXXEh8Jk4EXNTqNc27sAcqPtP96jYDQV │ +│ EhmjwirHs5sgCRbkmL3WDHFHXk1Azy3ouKB3CjaXCXy3 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 246326028 │ +│ │ Digest: 2mQuGfDEtBfP48TyPrj2vxYhJHAc2swFXEKYt7ouaFDT │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Shared( 246326024 ) │ +│ │ ObjectType: 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de::lazy_forever_swap::Bank │ +│ │ Version: 246326028 │ +│ │ Digest: MoFrbjdsHBoZvGKFqfWS4pX9dr6ZZhrMG4ig5VkjSk4 │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: 728176 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ CoinType: 0xe61bb7d2e294a1a69489bca5041ce85928d18060cfb4e425a3cd77514ae331b8::lazy_forever_coin::LAZY_FOREVER_COIN │ +│ │ Amount: -1000000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` + +``` +sui client call --gas-budget 30000000 --package 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de --module lazy_forever_swap --function deposit_coin_b --args 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 0x43bede79ac68adcd30f58eaa5afc23c9def94c20ada3d7c297068a08f98b2c41 +Transaction Digest: GL4Zmxb5FwMeY7qduBZbPA6oU95evCudbhfd1fYzmnhz +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ Gas Owner: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ Gas Budget: 30000000 MIST │ +│ Gas Price: 752 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Version: 246326029 │ +│ │ Digest: 6vsL9kzwcEechaZKaoFuGWvQhq8oLPfx46ja7rpv8UEN │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ │ +│ │ 1 Imm/Owned Object ID: 0x43bede79ac68adcd30f58eaa5afc23c9def94c20ada3d7c297068a08f98b2c41 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: deposit_coin_b │ │ +│ │ │ Module: lazy_forever_swap │ │ +│ │ │ Package: 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ +1X7sCL+Dgd82zpcgNRPipkEy4KTUU/KfZ23iqq+oUQGbAWkXZ98WNQ6sFZwxAcwEVZNHRLwROZ7YY6EBvQIDw== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: GL4Zmxb5FwMeY7qduBZbPA6oU95evCudbhfd1fYzmnhz │ +│ Status: Success │ +│ Executed Epoch: 445 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 246326030 │ +│ │ Digest: 898UwTXB9MskrA23KW9CF3T2BtxA4j7G5gh96AsGdemY │ +│ └── │ +│ ┌── │ +│ │ ID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ +│ │ Owner: Shared( 246326024 ) │ +│ │ Version: 246326030 │ +│ │ Digest: J7MTqoWvsuaCMUgEy9HcaumCTnBm9BxzBrZ5eZ9MPVh2 │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ +│ │ Version: 246326028 │ +│ │ Digest: MoFrbjdsHBoZvGKFqfWS4pX9dr6ZZhrMG4ig5VkjSk4 │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0x43bede79ac68adcd30f58eaa5afc23c9def94c20ada3d7c297068a08f98b2c41 │ +│ │ Version: 246326030 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 246326030 │ +│ │ Digest: 898UwTXB9MskrA23KW9CF3T2BtxA4j7G5gh96AsGdemY │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2462400 MIST │ +│ Computation Cost: 752000 MIST │ +│ Storage Rebate: 3972672 MIST │ +│ Non-refundable Storage Fee: 40128 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 2pS8U9PPou65xvQqFRndS5LhQkUzSo77UaB2S1xxghNP │ +│ 5xeQGJ6b6aScGwe4PKUVQ6Mv1seNdWK9v73mYxgfmCnc │ +│ CNn3BHPneF8MqXXEh8Jk4EXNTqNc27sAcqPtP96jYDQV │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 246326030 │ +│ │ Digest: 898UwTXB9MskrA23KW9CF3T2BtxA4j7G5gh96AsGdemY │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Shared( 246326024 ) │ +│ │ ObjectType: 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de::lazy_forever_swap::Bank │ +│ │ Version: 246326030 │ +│ │ Digest: J7MTqoWvsuaCMUgEy9HcaumCTnBm9BxzBrZ5eZ9MPVh2 │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: 758272 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ CoinType: 0xe61bb7d2e294a1a69489bca5041ce85928d18060cfb4e425a3cd77514ae331b8::lazy_forever_faucet::LAZY_FOREVER_FAUCET │ +│ │ Amount: -1000000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` + +A->B + +sui client call --gas-budget 30000000 --package 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de --module lazy_forever_swap --function a_swap_b --args 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 0x2626e1f94efff2917a6db587e4987640fdb877955d6a9c259a53de24381268d4 + +``` +sui client call --gas-budget 30000000 --package 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de --module lazy_forever_swap --function a_swap_b --args 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 0x2626e1f94efff2917a6db587e4987640fdb877955d6a9c259a53de24381268d4 +Transaction Digest: J6NDT2fMvFazDCdYTpziks4zZyYp6E5pTQ73LHqMpt8a +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ Gas Owner: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ Gas Budget: 30000000 MIST │ +│ Gas Price: 752 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Version: 246326032 │ +│ │ Digest: EH1n5Dm1rpxeSmj7VhHgt7v6AzENa3yrcEfaBWLGCV94 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ │ +│ │ 1 Imm/Owned Object ID: 0x2626e1f94efff2917a6db587e4987640fdb877955d6a9c259a53de24381268d4 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: a_swap_b │ │ +│ │ │ Module: lazy_forever_swap │ │ +│ │ │ Package: 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ L7jO6VS3b6ZmvPqbjM8wLY7vcp4oQcj8spJL3/j0a34sTUEyAanzkdOjf/ukYEdWcflsSMb6dgx3bV0DoquTAQ== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: J6NDT2fMvFazDCdYTpziks4zZyYp6E5pTQ73LHqMpt8a │ +│ Status: Success │ +│ Executed Epoch: 445 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xaa9ff18a9a34ac2287f2978f4e41ee72751769ab98dc95cc51a9900750e6e355 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 246326033 │ +│ │ Digest: GoJX8TTnvwWLub94S4RTnnYJaaBgLRbyFSQxPiFFq1iv │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 246326033 │ +│ │ Digest: HUiSsfVUXFY4Zvv3Y1ExSVRPNHYGUMzWthojBP3TvX97 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ +│ │ Owner: Shared( 246326024 ) │ +│ │ Version: 246326033 │ +│ │ Digest: 4Ppd4NMsWQFNUGMSvrLEfzYDjn6eB8Wb8tFKu58cxFPX │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ +│ │ Version: 246326030 │ +│ │ Digest: J7MTqoWvsuaCMUgEy9HcaumCTnBm9BxzBrZ5eZ9MPVh2 │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0x2626e1f94efff2917a6db587e4987640fdb877955d6a9c259a53de24381268d4 │ +│ │ Version: 246326033 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 246326033 │ +│ │ Digest: HUiSsfVUXFY4Zvv3Y1ExSVRPNHYGUMzWthojBP3TvX97 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4012800 MIST │ +│ Computation Cost: 752000 MIST │ +│ Storage Rebate: 3942576 MIST │ +│ Non-refundable Storage Fee: 39824 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 4JMLA84wkBVMHKSXG2rFvovXnEEkiLkffNSJDXs4EDWV │ +│ CNn3BHPneF8MqXXEh8Jk4EXNTqNc27sAcqPtP96jYDQV │ +│ GL4Zmxb5FwMeY7qduBZbPA6oU95evCudbhfd1fYzmnhz │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xaa9ff18a9a34ac2287f2978f4e41ee72751769ab98dc95cc51a9900750e6e355 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ ObjectType: 0x2::coin::Coin<0xe61bb7d2e294a1a69489bca5041ce85928d18060cfb4e425a3cd77514ae331b8::lazy_forever_faucet::LAZY_FOREVER_FAUCET> │ +│ │ Version: 246326033 │ +│ │ Digest: GoJX8TTnvwWLub94S4RTnnYJaaBgLRbyFSQxPiFFq1iv │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 246326033 │ +│ │ Digest: HUiSsfVUXFY4Zvv3Y1ExSVRPNHYGUMzWthojBP3TvX97 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Shared( 246326024 ) │ +│ │ ObjectType: 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de::lazy_forever_swap::Bank │ +│ │ Version: 246326033 │ +│ │ Digest: 4Ppd4NMsWQFNUGMSvrLEfzYDjn6eB8Wb8tFKu58cxFPX │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -822224 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ CoinType: 0xe61bb7d2e294a1a69489bca5041ce85928d18060cfb4e425a3cd77514ae331b8::lazy_forever_coin::LAZY_FOREVER_COIN │ +│ │ Amount: -10000 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ CoinType: 0xe61bb7d2e294a1a69489bca5041ce85928d18060cfb4e425a3cd77514ae331b8::lazy_forever_faucet::LAZY_FOREVER_FAUCET │ +│ │ Amount: 20000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` + +B->A + +sui client call --gas-budget 30000000 --package 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de --module lazy_forever_swap --function b_swap_a --args 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 0xaa9ff18a9a34ac2287f2978f4e41ee72751769ab98dc95cc51a9900750e6e355 + +``` +sui client call --gas-budget 30000000 --package 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de --module lazy_forever_swap --function b_swap_a --args 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 0xaa9ff18a9a34ac2287f2978f4e41ee72751769ab98dc95cc51a9900750e6e355 +Transaction Digest: 4NJ7qL7NxSAfXD665cwppw4EMRWVYGLCbi4NQPxwwExg +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ Gas Owner: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ Gas Budget: 30000000 MIST │ +│ Gas Price: 752 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Version: 246326033 │ +│ │ Digest: HUiSsfVUXFY4Zvv3Y1ExSVRPNHYGUMzWthojBP3TvX97 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ │ +│ │ 1 Imm/Owned Object ID: 0xaa9ff18a9a34ac2287f2978f4e41ee72751769ab98dc95cc51a9900750e6e355 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: b_swap_a │ │ +│ │ │ Module: lazy_forever_swap │ │ +│ │ │ Package: 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ dz6/1XrzX+p4gizlkRJfRzb49YvxXtlKPxZcis18UGMFL0Izu6ohkf7qDKegkgFw1c2q1V9g+YnR02Ca801uDw== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 4NJ7qL7NxSAfXD665cwppw4EMRWVYGLCbi4NQPxwwExg │ +│ Status: Success │ +│ Executed Epoch: 445 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x859d1e3f5c1f1a2ada2a0a4ddeeee92b884284c9c7f354c14239d6757e6063a8 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 246326034 │ +│ │ Digest: ERiXy6HE9CXPJgCWXdhJNSJtwXveLGAPAwrepb6xguSo │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 246326034 │ +│ │ Digest: DCwu2wUxz9qEzjNJAVMQW4oMUyTew3hKEf2JP78s5t3M │ +│ └── │ +│ ┌── │ +│ │ ID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ +│ │ Owner: Shared( 246326024 ) │ +│ │ Version: 246326034 │ +│ │ Digest: Ar1Q3YPwyPgZYYsqMsV3VDw3pPeBQmv1iAkDgb8MsqwN │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ +│ │ Version: 246326033 │ +│ │ Digest: 4Ppd4NMsWQFNUGMSvrLEfzYDjn6eB8Wb8tFKu58cxFPX │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0xaa9ff18a9a34ac2287f2978f4e41ee72751769ab98dc95cc51a9900750e6e355 │ +│ │ Version: 246326034 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 246326034 │ +│ │ Digest: DCwu2wUxz9qEzjNJAVMQW4oMUyTew3hKEf2JP78s5t3M │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3982400 MIST │ +│ Computation Cost: 752000 MIST │ +│ Storage Rebate: 3972672 MIST │ +│ Non-refundable Storage Fee: 40128 MIST │ +│ │ +│ Transaction Dependencies: │ +│ CNn3BHPneF8MqXXEh8Jk4EXNTqNc27sAcqPtP96jYDQV │ +│ J6NDT2fMvFazDCdYTpziks4zZyYp6E5pTQ73LHqMpt8a │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x859d1e3f5c1f1a2ada2a0a4ddeeee92b884284c9c7f354c14239d6757e6063a8 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ ObjectType: 0x2::coin::Coin<0xe61bb7d2e294a1a69489bca5041ce85928d18060cfb4e425a3cd77514ae331b8::lazy_forever_coin::LAZY_FOREVER_COIN> │ +│ │ Version: 246326034 │ +│ │ Digest: ERiXy6HE9CXPJgCWXdhJNSJtwXveLGAPAwrepb6xguSo │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x03694e1c269708f5d0c98d122e382be6b153398e93bf78a40d2157d19e5eddf3 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 246326034 │ +│ │ Digest: DCwu2wUxz9qEzjNJAVMQW4oMUyTew3hKEf2JP78s5t3M │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x539ce28d980d839a6c49662febc1152d21840ef57f1b1458cf9c6513fff39959 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Shared( 246326024 ) │ +│ │ ObjectType: 0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de::lazy_forever_swap::Bank │ +│ │ Version: 246326034 │ +│ │ Digest: Ar1Q3YPwyPgZYYsqMsV3VDw3pPeBQmv1iAkDgb8MsqwN │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -761728 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ CoinType: 0xe61bb7d2e294a1a69489bca5041ce85928d18060cfb4e425a3cd77514ae331b8::lazy_forever_coin::LAZY_FOREVER_COIN │ +│ │ Amount: 10000 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ CoinType: 0xe61bb7d2e294a1a69489bca5041ce85928d18060cfb4e425a3cd77514ae331b8::lazy_forever_faucet::LAZY_FOREVER_FAUCET │ +│ │ Amount: -20000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` + + + +## task7 + +sui client call --function get_flag --package 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd --module check_in --args [60,51,80,86,108,126,70,98,104,108,96,120,71,53,57,90,75,87,57,112,113,114,99,89,66] 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 0x8 + +``` +Transaction Digest: GmM1YcJM4SMzPYf9oQ5CBUXqt6j3LZ4nD6RdGUjH69za +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ Gas Owner: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x18cbb8c8d6fc33e23e4e3e566bc8a6816730ca408c0f7abf6eedbe77b554c783 │ +│ │ Version: 48002550 │ +│ │ Digest: QJHs5BBNdYJxRcKbn4JRxxbCDMQjsncxsNqbCSuzSDV │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: "<3PVl~Fbhl`xG59ZKW9pqrcYB" │ │ +│ │ 1 Shared Object ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ │ +│ │ 2 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: get_flag │ │ +│ │ │ Module: check_in │ │ +│ │ │ Package: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 8qD+yF80V2i1l5o/kGzm7L5i0hrA7wG2+H7wrsJqKAD1ZrtrWC7rmJpjc0rf+9P9v5xe/wCf5u5qQMe/6y6yBA== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: GmM1YcJM4SMzPYf9oQ5CBUXqt6j3LZ4nD6RdGUjH69za │ +│ Status: Success │ +│ Executed Epoch: 395 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Owner: Shared │ +│ │ Version: 48002551 │ +│ │ Digest: 7mcJQDjrVhuejcj2DdSRvT5oqjpRMSsZTsvC8cMTqC9V │ +│ └── │ +│ ┌── │ +│ │ ID: 0x18cbb8c8d6fc33e23e4e3e566bc8a6816730ca408c0f7abf6eedbe77b554c783 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 48002551 │ +│ │ Digest: 8dvWAAAZrc89aLoGTmbArkgDTPfnLWezSQ9E53pPKG58 │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Version: 48002550 │ +│ │ Digest: sdVBJwdaz8Vybi9Aisv43Dwcqx6tJYGzRyNfDXKYJMT │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ +│ │ Version: 45250457 │ +│ │ Digest: DWHzL3YDbaLFLDLToN6XpfxdadxyBbyPjKGgrgA44eii │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x18cbb8c8d6fc33e23e4e3e566bc8a6816730ca408c0f7abf6eedbe77b554c783 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 48002551 │ +│ │ Digest: 8dvWAAAZrc89aLoGTmbArkgDTPfnLWezSQ9E53pPKG58 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2614400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2550636 MIST │ +│ Non-refundable Storage Fee: 25764 MIST │ +│ │ +│ Transaction Dependencies: │ +│ AcaeDygFgzoGTA7akwt39Au7K6snf1Kn73ePk78VUCsu │ +│ FG1SewBDoUfeYKgmYxKw5rX3oHvuqAQBKXg7JBWWcAWQ │ +│ GvtDcAEMFwzCSEPUqkaPGxD4CpKyD7DDfhLrnU8KuMBR │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: GmM1YcJM4SMzPYf9oQ5CBUXqt6j3LZ4nD6RdGUjH69za:0 │ +│ │ PackageID: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd │ +│ │ Transaction Module: check_in │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ EventType: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd::check_in::Flag │ +│ │ ParsedJSON: │ +│ │ ┌────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ flag │ true │ │ +│ │ ├────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ sender │ 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ │ +│ │ └────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Shared │ +│ │ ObjectType: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd::check_in::FlagString │ +│ │ Version: 48002551 │ +│ │ Digest: 7mcJQDjrVhuejcj2DdSRvT5oqjpRMSsZTsvC8cMTqC9V │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x18cbb8c8d6fc33e23e4e3e566bc8a6816730ca408c0f7abf6eedbe77b554c783 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 48002551 │ +│ │ Digest: 8dvWAAAZrc89aLoGTmbArkgDTPfnLWezSQ9E53pPKG58 │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1063764 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` + +## task8 + +sui client call --function get_flag --package 0xd5c6f9f40969f7af6f97c17d86ade578899f81b519f13e01dd551b12c3d99abf --module lets_move --args 0zfOD 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff 0x8 + +``` +Transaction Digest: 3Fdtr3gQiFxnjwrkgAPP7FiyWLsc3YFkASJA2vKYhDq2 +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ Gas Owner: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0f2532cff96fb731c282a62f1315d2246a0a9210ec4acb02653f2ac8a3c74a39 │ +│ │ Version: 48026606 │ +│ │ Digest: 8niY85Zxw5Va3WKiY8Za8iswDw4Nw3qiMKDVYqsPdUhQ │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: "0zfOD" │ │ +│ │ 1 Shared Object ID: 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff │ │ +│ │ 2 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: get_flag │ │ +│ │ │ Module: lets_move │ │ +│ │ │ Package: 0xd5c6f9f40969f7af6f97c17d86ade578899f81b519f13e01dd551b12c3d99abf │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ yIflne6KuyTM5wzIPnHjPqlX5Ir6tv8aufZoGqTZwlwDknkiVWurUiPaoJCG9jmrUEnuNBxcOv4loF7FrPuBAA== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 3Fdtr3gQiFxnjwrkgAPP7FiyWLsc3YFkASJA2vKYhDq2 │ +│ Status: Success │ +│ Executed Epoch: 395 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0f2532cff96fb731c282a62f1315d2246a0a9210ec4acb02653f2ac8a3c74a39 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 48026612 │ +│ │ Digest: CdnsVep2RQ73WtouyLTM7kuECbxGmjDCdn64n39eoB3z │ +│ └── │ +│ ┌── │ +│ │ ID: 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff │ +│ │ Owner: Shared │ +│ │ Version: 48026612 │ +│ │ Digest: CtFnXkmQmEtQxsdL9h1NijVjYWUYEaewcy8tHu2Eo92h │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff │ +│ │ Version: 48026611 │ +│ │ Digest: Ho2XCrCaqhZvYkt9PiHVWpq9KTphiQnV7vFPdSnaGfr1 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ +│ │ Version: 45404444 │ +│ │ Digest: 6T3qwiJrEwcUVopAFmDcXEArJhfwsSCqV3GWUumXZe1F │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0f2532cff96fb731c282a62f1315d2246a0a9210ec4acb02653f2ac8a3c74a39 │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ Version: 48026612 │ +│ │ Digest: CdnsVep2RQ73WtouyLTM7kuECbxGmjDCdn64n39eoB3z │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2591600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2520540 MIST │ +│ Non-refundable Storage Fee: 25460 MIST │ +│ │ +│ Transaction Dependencies: │ +│ Xh741dPy22C9S63hREhCbWFe6JmtCdU1xpH8QRu5SHd │ +│ j3t2JDv3HDTqx1xkPpuwnoCNo1SPP8CfcxfUT5LWgC5 │ +│ 6D4bKjsG1dtyAgmDjwcMwmjQ7ASo5WaEYBwVPrWADkCH │ +│ AG5yZesgaZ31N2baMAASbLcu2WyVNVUpQfmHjXHszz4N │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 3Fdtr3gQiFxnjwrkgAPP7FiyWLsc3YFkASJA2vKYhDq2:0 │ +│ │ PackageID: 0xd5c6f9f40969f7af6f97c17d86ade578899f81b519f13e01dd551b12c3d99abf │ +│ │ Transaction Module: lets_move │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ EventType: 0xd5c6f9f40969f7af6f97c17d86ade578899f81b519f13e01dd551b12c3d99abf::lets_move::Flag │ +│ │ ParsedJSON: │ +│ │ ┌────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ flag │ true │ │ +│ │ ├────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ sender │ 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ │ +│ │ └────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0f2532cff96fb731c282a62f1315d2246a0a9210ec4acb02653f2ac8a3c74a39 │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 48026612 │ +│ │ Digest: CdnsVep2RQ73WtouyLTM7kuECbxGmjDCdn64n39eoB3z │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff │ +│ │ Sender: 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc │ +│ │ Owner: Shared │ +│ │ ObjectType: 0xd5c6f9f40969f7af6f97c17d86ade578899f81b519f13e01dd551b12c3d99abf::lets_move::Challenge │ +│ │ Version: 48026612 │ +│ │ Digest: CtFnXkmQmEtQxsdL9h1NijVjYWUYEaewcy8tHu2Eo92h │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x167318d9fb3b6bf21eb84cca0d346d2f333f2dfedc61690d4431a55ae98ac7dc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1071060 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` diff --git a/mover/lazy-forever/readme.md b/mover/lazy-forever/readme.md index 7fae4ccb9..bebb000c8 100644 --- a/mover/lazy-forever/readme.md +++ b/mover/lazy-forever/readme.md @@ -29,8 +29,15 @@ - [x] call game hash:`DKBBG21V7asSvPxWLUjerRhWkDSB4KFYMkSnYWu5QXeu` ## 05 Move Swap -- [] swap package id : -- [] call swap hash: +- [x] swap package id : `0x4623775b932a4bbd5b3c6b93ab61ddc492c0ed19c81e9d6da59c4815aa7981de` +- [x] call swap CoinA-> CoinB hash : `J6NDT2fMvFazDCdYTpziks4zZyYp6E5pTQ73LHqMpt8a` +- [x] call swap CoinB-> CoinA hash : `4NJ7qL7NxSAfXD665cwppw4EMRWVYGLCbi4NQPxwwExg` ## 06 SDK PTB - [] save hash : + +## 07 move_ctf_check_in +- [x] Transaction block: `GmM1YcJM4SMzPYf9oQ5CBUXqt6j3LZ4nD6RdGUjH69za` + +## 08 Move CTF Lets Move +- [x] Transaction block: `3Fdtr3gQiFxnjwrkgAPP7FiyWLsc3YFkASJA2vKYhDq2` diff --git a/mover/leemove/code/task1/Move.lock b/mover/leemove/code/task1/Move.lock new file mode 100644 index 000000000..bef07dd8a --- /dev/null +++ b/mover/leemove/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "FD1B5B02832063EBD87AFCECA887973DBCE6B3AED10108BC392F2F1BEDE5934A" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x37683e4f258819f091c3e7afd0ba532a6e0daa7ad927e99ba306d95b272efce3" +latest-published-id = "0x37683e4f258819f091c3e7afd0ba532a6e0daa7ad927e99ba306d95b272efce3" +published-version = "1" diff --git a/mover/leemove/code/task1/Move.toml b/mover/leemove/code/task1/Move.toml new file mode 100644 index 000000000..1f795f125 --- /dev/null +++ b/mover/leemove/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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/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] +hello_move = "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/leemove/code/task1/sources/hello_move.move b/mover/leemove/code/task1/sources/hello_move.move new file mode 100644 index 000000000..69282eebb --- /dev/null +++ b/mover/leemove/code/task1/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"leemove"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/leemove/code/task1/tests/hello_move_tests.move b/mover/leemove/code/task1/tests/hello_move_tests.move new file mode 100644 index 000000000..31fb8c1ac --- /dev/null +++ b/mover/leemove/code/task1/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task1::task1_tests { + // uncomment this line to import the module + // use task1::task1; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task1() { + // pass + } + + #[test, expected_failure(abort_code = ::task1::task1_tests::ENotImplemented)] + fun test_task1_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/leemove/images/screenshot-20240612-111501.png b/mover/leemove/images/screenshot-20240612-111501.png new file mode 100644 index 000000000..2bd76cbf4 Binary files /dev/null and b/mover/leemove/images/screenshot-20240612-111501.png differ diff --git a/mover/leemove/images/screenshot-20240612-114142.png b/mover/leemove/images/screenshot-20240612-114142.png new file mode 100644 index 000000000..bf95e54a8 Binary files /dev/null and b/mover/leemove/images/screenshot-20240612-114142.png differ diff --git a/mover/leemove/readme.md b/mover/leemove/readme.md new file mode 100644 index 000000000..af2c3d378 --- /dev/null +++ b/mover/leemove/readme.md @@ -0,0 +1,22 @@ +# 基本信息 + +- Sui钱包地址: 0xca0084a969cc649213c4271c18ca5d81e880527c62155e0b88b61566caf735cd + + > 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: leemove + +## 个人简介 + +- 工作经验: 1年 +- 技术栈: Nodejs +- 刚接触sui链,希望通过move学习能进入sui链生态 +- 联系方式: hg_limu@163.com + +## 任务 + +## 01 hello move + +- [x] Sui cli version: 1.25.1 +- [x] package id: 0x37683e4f258819f091c3e7afd0ba532a6e0daa7ad927e99ba306d95b272efce3 +- [x] Sui钱包截图: ![Sui钱包截图](./images/screenshot-20240612-111501.png) +- [x] package id 在 scan上的查看截图:![Scan截图](./images/screenshot-20240612-114142.png) diff --git a/mover/lennon624/code/task1/hello_world/Move.lock b/mover/lennon624/code/task1/hello_world/Move.lock new file mode 100644 index 000000000..8500545ba --- /dev/null +++ b/mover/lennon624/code/task1/hello_world/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "60F2000F4D6DAD240EF371DB3BC521F7BD4C8B814BC59CA473B852B77FDBE53C" +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.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x2b1a0e70eb822235539860e39d19c818a085e4ff0bb816bb41efc22ded46ba7d" +latest-published-id = "0x2b1a0e70eb822235539860e39d19c818a085e4ff0bb816bb41efc22ded46ba7d" +published-version = "1" diff --git a/mover/lennon624/code/task1/hello_world/Move.toml b/mover/lennon624/code/task1/hello_world/Move.toml new file mode 100644 index 000000000..201de1731 --- /dev/null +++ b/mover/lennon624/code/task1/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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] +hello_world = "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/lennon624/code/task1/hello_world/sources/hello_world.move b/mover/lennon624/code/task1/hello_world/sources/hello_world.move new file mode 100644 index 000000000..1ebd074a2 --- /dev/null +++ b/mover/lennon624/code/task1/hello_world/sources/hello_world.move @@ -0,0 +1,24 @@ +/* +/// Module: hello_world +module hello_world::hello_world { + +} +*/ +module hello_world::hello_world { + use std::ascii::{String, string}; + use sui::transfer::transfer; + use sui::tx_context::{sender}; + + public struct HelloMove has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = HelloMove { + id:object::new(ctx), + say: string(b"Hello lennon"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/lennon624/code/task1/hello_world/tests/hello_world_tests.move b/mover/lennon624/code/task1/hello_world/tests/hello_world_tests.move new file mode 100644 index 000000000..8fdf06eec --- /dev/null +++ b/mover/lennon624/code/task1/hello_world/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_world::hello_world_tests { + // uncomment this line to import the module + // use hello_world::hello_world; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_world() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_world::hello_world_tests::ENotImplemented)] + fun test_hello_world_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/lennon624/images/screenshot-20240617-180929.png b/mover/lennon624/images/screenshot-20240617-180929.png new file mode 100644 index 000000000..c2045f3aa Binary files /dev/null and b/mover/lennon624/images/screenshot-20240617-180929.png differ diff --git a/mover/lennon624/readme.md b/mover/lennon624/readme.md new file mode 100644 index 000000000..9b75e334e --- /dev/null +++ b/mover/lennon624/readme.md @@ -0,0 +1,22 @@ +# 基本信息 + +- Sui钱包地址: 0x6c891e9f6069938b1690dbc390c71b3082b298ab85985eaaf455533753305503 + + > 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: lennon624 + +## 个人简介 + +- 工作经验: 1年 +- 技术栈: golang,java,js +- 刚接触区块链,希望多学习 +- 联系方式: github:lennon624 + +## 任务 + +## 01 hello move + +- [x] Sui cli version: 1.25.1 +- [x] package id: 0x2b1a0e70eb822235539860e39d19c818a085e4ff0bb816bb41efc22ded46ba7d +- [x] Sui钱包截图: ![Sui钱包截图](./images/screenshot-20240617-180929.png) + diff --git a/mover/lihuazhang/code/lihuazhang_game/test.sh b/mover/lihuazhang/code/lihuazhang_game/test.sh index 08259dd6f..5662551c6 100644 --- a/mover/lihuazhang/code/lihuazhang_game/test.sh +++ b/mover/lihuazhang/code/lihuazhang_game/test.sh @@ -3,14 +3,14 @@ export HouseCap=0x04eec7491b9f5b88b5de9fe9e1e3a21ab162e097515eddb267b70849fe7a6a export TreasuryCap=0xda8eb5201d7d63a8d1c0a3b67f0a14dd5097125ab5a067beeb6022e4bf75df0b # initialize house data -sui client call --package $PackageID --module house_data --function initialize_house_data --args $HouseCap $TreasuryCap 999999999999 --gas-budget 100000000 +sui client call --package $PackageID --module house_data --function initialize_house_data --args $HouseCap $TreasuryCap 999999999999 # start game, get house data id from last step export HouseData=0x81391a8909ce7b13840b03ff37f5d46e54717bce2fb10181c58d408fb125c0b0 export BetsCoin=0x5579e3860b59bddde068c3d8d920239fb8fc551225d688c47212a1c76b841031 -sui client call --package $PackageID --module game --function start_game --args '0x6' $BetsCoin $HouseData --gas-budget 100000000 +sui client call --package $PackageID --module game --function start_game --args '0x6' $BetsCoin $HouseData # play game, get game id from last step export GameID=0x7d8f80d9ed4405f724cd92c89ffa965ca079fc6fcdd3f2edfb150f07e4ad2329 -sui client call --package $PackageID --module game --function play_game --args $GameID 3 $HouseData --gas-budget 100000000 +sui client call --package $PackageID --module game --function play_game --args $GameID 3 $HouseData diff --git a/mover/lihuazhang/code/lihuazhang_nft/test.sh b/mover/lihuazhang/code/lihuazhang_nft/test.sh index d69f86278..496a220a9 100644 --- a/mover/lihuazhang/code/lihuazhang_nft/test.sh +++ b/mover/lihuazhang/code/lihuazhang_nft/test.sh @@ -6,8 +6,8 @@ export GITHUB_ID=lihuazhang export ADDRESS=0x2c3b24eee650f51ae02d36ffacbc16e4c4bde83dd11b747762239c4b7456178d # create -sui client call --package $PACKAGE_ID --module lihuazhang_nft --function mint --args $ISSUE_CAP $NAME $GITHUB_ID $IMAGE_URL $ADDRESS --gas-budget 100000000 +sui client call --package $PACKAGE_ID --module lihuazhang_nft --function mint --args $ISSUE_CAP $NAME $GITHUB_ID $IMAGE_URL $ADDRESS export DNFT=0xc056df3ab4cd829643de46966a166a97dc78a89f181f4b78b4f5936e4497e4be # destroy -sui client call --package $PACKAGE_ID --module lihuazhang_nft --function burn --args $ISSUE_CAP $DNFT --gas-budget 100000000 +sui client call --package $PACKAGE_ID --module lihuazhang_nft --function burn --args $ISSUE_CAP $DNFT diff --git a/mover/limitcool/code/task1/hello_move/Move.lock b/mover/limitcool/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..c9bfeaade --- /dev/null +++ b/mover/limitcool/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x3beafe5bed5a426f1129d00753a065d62b8db8c129c77874d277a922a68eb304" +latest-published-id = "0x3beafe5bed5a426f1129d00753a065d62b8db8c129c77874d277a922a68eb304" +published-version = "1" diff --git a/mover/limitcool/code/task1/hello_move/Move.toml b/mover/limitcool/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/limitcool/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/limitcool/code/task1/hello_move/readme.md b/mover/limitcool/code/task1/hello_move/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/limitcool/code/task1/hello_move/sources/hello_move.move b/mover/limitcool/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..618399a87 --- /dev/null +++ b/mover/limitcool/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,20 @@ +/// Module: hello_world +module hello_move::hello_world { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"limitcool"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/limitcool/code/task1/hello_move/tests/hello_move_tests.move b/mover/limitcool/code/task1/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/limitcool/code/task1/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/limitcool/code/task2/limitcool_coin/Move.lock b/mover/limitcool/code/task2/limitcool_coin/Move.lock new file mode 100644 index 000000000..1769828c0 --- /dev/null +++ b/mover/limitcool/code/task2/limitcool_coin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "D20AF8A40445E0456DC3DF4E8DC73182AD5C6147E6F826921536A33AE0BBCC8D" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x97fb2393ccc878aed009f10d1dbb20006c498fcceac48e187911e7cec0402a08" +latest-published-id = "0x97fb2393ccc878aed009f10d1dbb20006c498fcceac48e187911e7cec0402a08" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x919db1db921191bd77910afab462a520b9f2209ca491cdf62ef608c1eaf88198" +latest-published-id = "0x919db1db921191bd77910afab462a520b9f2209ca491cdf62ef608c1eaf88198" +published-version = "1" diff --git a/mover/limitcool/code/task2/limitcool_coin/Move.toml b/mover/limitcool/code/task2/limitcool_coin/Move.toml new file mode 100644 index 000000000..a57133c98 --- /dev/null +++ b/mover/limitcool/code/task2/limitcool_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "limitcool_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://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] +limitcool_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/limitcool/code/task2/limitcool_coin/sources/limitcool_coin.move b/mover/limitcool/code/task2/limitcool_coin/sources/limitcool_coin.move new file mode 100644 index 000000000..f92ed78e3 --- /dev/null +++ b/mover/limitcool/code/task2/limitcool_coin/sources/limitcool_coin.move @@ -0,0 +1,31 @@ + +/// Module: limitcool_coin +module limitcool_coin::limitcool_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + public struct LIMITCOOL_COIN has drop {} + fun init(witness: LIMITCOOL_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, // decimals + b"limitcool COIN", // symbol + b"limitcool COIN", // name + b"Amazing Coin", // description + option:: none(), // icon url + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} diff --git a/mover/limitcool/code/task2/limitcool_coin/tests/limitcool_coin_tests.move b/mover/limitcool/code/task2/limitcool_coin/tests/limitcool_coin_tests.move new file mode 100644 index 000000000..f0beeef50 --- /dev/null +++ b/mover/limitcool/code/task2/limitcool_coin/tests/limitcool_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module limitcool_coin::limitcool_coin_tests { + // uncomment this line to import the module + // use limitcool_coin::limitcool_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_limitcool_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::limitcool_coin::limitcool_coin_tests::ENotImplemented)] + fun test_limitcool_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/limitcool/code/task2/limitcool_faucet/Move.lock b/mover/limitcool/code/task2/limitcool_faucet/Move.lock new file mode 100644 index 000000000..140ecee34 --- /dev/null +++ b/mover/limitcool/code/task2/limitcool_faucet/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "B8C8C8806813D59A83B594B026A0666DFE23819E0DFF4A220F97BE9737991A30" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x617ea8c5865526213b347be660c1fcff0e71c193eef676fb0618dd369ce1dccc" +latest-published-id = "0x617ea8c5865526213b347be660c1fcff0e71c193eef676fb0618dd369ce1dccc" +published-version = "1" diff --git a/mover/limitcool/code/task2/limitcool_faucet/Move.toml b/mover/limitcool/code/task2/limitcool_faucet/Move.toml new file mode 100644 index 000000000..601191a4e --- /dev/null +++ b/mover/limitcool/code/task2/limitcool_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "limitcool_faucet" +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] +limitcool_faucet = "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/limitcool/code/task2/limitcool_faucet/sources/limitcool_faucet.move b/mover/limitcool/code/task2/limitcool_faucet/sources/limitcool_faucet.move new file mode 100644 index 000000000..65a512c8b --- /dev/null +++ b/mover/limitcool/code/task2/limitcool_faucet/sources/limitcool_faucet.move @@ -0,0 +1,49 @@ + +/// Module: limitcool_faucet +module limitcool_faucet::limitcool_faucet { + use sui::balance::{Balance}; + use sui::balance; + use sui::coin::{Self, TreasuryCap}; + public struct LIMITCOOL_FAUCET has drop {} + public struct PublicWallet has key { + id: UID, + coin: Balance, + faucet_amount: u64, + } + const AMOUNT: u64 = 10^12; + const EFaucetDry: u64 = 1; + #[allow(lint(share_owned))] + fun init(witness: LIMITCOOL_FAUCET, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 10, + b"limitcool Faucet", + b"limitcool Faucet", + b"Get some free coin", + option::none(), + ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + let wallet = PublicWallet { + id: object::new(ctx), + coin: balance::zero(), + faucet_amount: AMOUNT, + }; + transfer::share_object(wallet); + } + public entry fun mint_faucet( + treasury_cap: &mut TreasuryCap, + amount: u64, + wallet: &mut PublicWallet, + ctx: &mut TxContext) { + let coins = coin::mint(treasury_cap, amount, ctx); + balance::join(&mut wallet.coin, coin::into_balance(coins)); + } + public entry fun get_faucet(wallet: &mut PublicWallet, ctx: &mut TxContext) { + let balance_amount = balance::value(&wallet.coin); + assert!(balance_amount >= wallet.faucet_amount, EFaucetDry); + let mint_balance = balance::split(&mut wallet.coin, wallet.faucet_amount); + let faucet_coin = coin::from_balance(mint_balance, ctx); + transfer::public_transfer(faucet_coin, tx_context::sender(ctx)); + } +} diff --git a/mover/limitcool/code/task2/limitcool_faucet/tests/limitcool_faucet_tests.move b/mover/limitcool/code/task2/limitcool_faucet/tests/limitcool_faucet_tests.move new file mode 100644 index 000000000..dd60d0e74 --- /dev/null +++ b/mover/limitcool/code/task2/limitcool_faucet/tests/limitcool_faucet_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module limitcool_faucet::limitcool_faucet_tests { + // uncomment this line to import the module + // use limitcool_faucet::limitcool_faucet; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_limitcool_faucet() { + // pass + } + + #[test, expected_failure(abort_code = ::limitcool_faucet::limitcool_faucet_tests::ENotImplemented)] + fun test_limitcool_faucet_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/limitcool/code/task3/nft/Move.lock b/mover/limitcool/code/task3/nft/Move.lock new file mode 100644 index 000000000..25ec3bc3f --- /dev/null +++ b/mover/limitcool/code/task3/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9D4FCF5807A34E3110DFBA44AD92FEFEC55EE3DE8CF58F3D302F55D3004E70D1" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xbd19aec2801fbc92fb344a8a3ed8b1b6596191b692dd7815029d88e7aea21160" +latest-published-id = "0xbd19aec2801fbc92fb344a8a3ed8b1b6596191b692dd7815029d88e7aea21160" +published-version = "1" diff --git a/mover/limitcool/code/task3/nft/Move.toml b/mover/limitcool/code/task3/nft/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/limitcool/code/task3/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/limitcool/code/task3/nft/sources/nft.move b/mover/limitcool/code/task3/nft/sources/nft.move new file mode 100644 index 000000000..76e854c6d --- /dev/null +++ b/mover/limitcool/code/task3/nft/sources/nft.move @@ -0,0 +1,61 @@ +module nft::nft { + + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"limitcool"), + description: string::utf8(b"limitcool NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/88604249?v=4" + ) + }; + transfer::public_transfer(nft, recipient); + } +} \ No newline at end of file diff --git a/mover/limitcool/code/task3/nft/tests/nft_tests.move b/mover/limitcool/code/task3/nft/tests/nft_tests.move new file mode 100644 index 000000000..1e3625fad --- /dev/null +++ b/mover/limitcool/code/task3/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/limitcool/code/task4/game/Move.lock b/mover/limitcool/code/task4/game/Move.lock new file mode 100644 index 000000000..69d86d890 --- /dev/null +++ b/mover/limitcool/code/task4/game/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "09E96EFF150B65B8C2F33F9094E1DCF127B543DB3BF332FE094BF07CD9DAE41E" +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.mainnet] +chain-id = "35834a8a" +original-published-id = "0x49195dd4ee60b417fc22bb6f1a92be8cd65df039de1b38a915fcf44acc6af79d" +latest-published-id = "0x49195dd4ee60b417fc22bb6f1a92be8cd65df039de1b38a915fcf44acc6af79d" +published-version = "1" diff --git a/mover/limitcool/code/task4/game/Move.toml b/mover/limitcool/code/task4/game/Move.toml new file mode 100644 index 000000000..3a52c9961 --- /dev/null +++ b/mover/limitcool/code/task4/game/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "game" +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] +game = "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/limitcool/code/task4/game/sources/game.move b/mover/limitcool/code/task4/game/sources/game.move new file mode 100644 index 000000000..565ebdb9a --- /dev/null +++ b/mover/limitcool/code/task4/game/sources/game.move @@ -0,0 +1,35 @@ +module game::game { + use std::string; + use sui::event; + use sui::clock::{Self, Clock}; + + public struct GameResultEvent has drop, copy { + user_guess: u64, + random_number: u64, + result: string::String, + } + + public struct RandomResultEvent has drop, copy { + random_result: u64, + } + + fun get_random(clock: &Clock): u64 { + let time = clock::timestamp_ms(clock); + let random_number = time % 10; + random_number + } + + public entry fun play(guess: u64, clock: &Clock) { + assert!(guess < 10, 0); + + let random_number = get_random(clock); + + let result = if (random_number == guess) { + string::utf8(b"limitcool say: you win") + } else { + string::utf8(b"limitcool say: you loss") + }; + + event::emit(GameResultEvent { user_guess: guess, random_number, result }); + } +} \ No newline at end of file diff --git a/mover/limitcool/code/task4/game/tests/game_tests.move b/mover/limitcool/code/task4/game/tests/game_tests.move new file mode 100644 index 000000000..c7dbc671a --- /dev/null +++ b/mover/limitcool/code/task4/game/tests/game_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module game::game_tests { + // uncomment this line to import the module + // use game::game; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_game() { + // pass + } + + #[test, expected_failure(abort_code = ::game::game_tests::ENotImplemented)] + fun test_game_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/limitcool/code/task7/README.md b/mover/limitcool/code/task7/README.md new file mode 100644 index 000000000..c9f1bf33b --- /dev/null +++ b/mover/limitcool/code/task7/README.md @@ -0,0 +1,140 @@ +sui client call --function get_flag --module check_in --package 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd --args 'nebh@CECC<}>yuDH9^Vf[df' 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 0x8 --gas-budget 10000000 + +Transaction Digest: 7oDgwmvFSvTD26GTSCdAydrVxVA9MZnzdQKAVvkG75T +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 │ +│ Gas Owner: 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0xcd0b89de4d306b2a44df340e90e41773a156368e0fb3ec0c7d4f547c856efbf4 │ +│ │ Version: 604500 │ +│ │ Digest: SLvbG3CnQpW2w5YJEM5jGEZj44czboheyDUeTC9teEp │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: "nebh@CECC<}>yuDH9^Vf[df" │ │ +│ │ 1 Shared Object ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ │ +│ │ 2 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: get_flag │ │ +│ │ │ Module: check_in │ │ +│ │ │ Package: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ pMkRkuT+K+t7rqWFm3cVJ25GF9AzFDW3YRhZitto1SXigkcdxlFPb2xM3kFXAv8OnCqqXE72FhjgIdl6lYN5Dg== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 7oDgwmvFSvTD26GTSCdAydrVxVA9MZnzdQKAVvkG75T │ +│ Status: Success │ +│ Executed Epoch: 395 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Owner: Shared( 12674957 ) │ +│ │ Version: 48026610 │ +│ │ Digest: 6RnxHWJcadXzcvsEYhzXAmUzMMiTKc4pVCBQagEcb5c9 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xcd0b89de4d306b2a44df340e90e41773a156368e0fb3ec0c7d4f547c856efbf4 │ +│ │ Owner: Account Address ( 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 ) │ +│ │ Version: 48026610 │ +│ │ Digest: FwhrneboWNPLW5JoPZisbx9viGS5wV9uvYo5C9EffR4e │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Version: 48026609 │ +│ │ Digest: 9bhrnE9SnvnsB8VyoXieCJoN1nLL3pmBFj1wtVfbDZg7 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ +│ │ Version: 45428475 │ +│ │ Digest: 5Mwu8w81rfa4RW1R8yU1hFvZgrsaZfXd8Uj6DX15stiV │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0xcd0b89de4d306b2a44df340e90e41773a156368e0fb3ec0c7d4f547c856efbf4 │ +│ │ Owner: Account Address ( 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 ) │ +│ │ Version: 48026610 │ +│ │ Digest: FwhrneboWNPLW5JoPZisbx9viGS5wV9uvYo5C9EffR4e │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2599200 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2535588 MIST │ +│ Non-refundable Storage Fee: 25612 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 37t25SA5gn9Rd6TrR5CJhvM4AqmHUuMNeekL4pTxxnp3 │ +│ 6QBtuWVQpju1qv3rDck2PxcvDFbJexPwakTKNQuKWLip │ +│ 8YnAUm8qjSkfqZnhh2oxcvWWAG1bCXtfbSgqcgpFDD44 │ +│ GvtDcAEMFwzCSEPUqkaPGxD4CpKyD7DDfhLrnU8KuMBR │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 7oDgwmvFSvTD26GTSCdAydrVxVA9MZnzdQKAVvkG75T:0 │ +│ │ PackageID: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd │ +│ │ Transaction Module: check_in │ +│ │ Sender: 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 │ +│ │ EventType: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd::check_in::Flag │ +│ │ ParsedJSON: │ +│ │ ┌────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ flag │ true │ │ +│ │ ├────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ sender │ 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 │ │ +│ │ └────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Sender: 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 │ +│ │ Owner: Shared( 12674957 ) │ +│ │ ObjectType: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd::check_in::FlagString │ +│ │ Version: 48026610 │ +│ │ Digest: 6RnxHWJcadXzcvsEYhzXAmUzMMiTKc4pVCBQagEcb5c9 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xcd0b89de4d306b2a44df340e90e41773a156368e0fb3ec0c7d4f547c856efbf4 │ +│ │ Sender: 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 │ +│ │ Owner: Account Address ( 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 48026610 │ +│ │ Digest: FwhrneboWNPLW5JoPZisbx9viGS5wV9uvYo5C9EffR4e │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1063612 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ \ No newline at end of file diff --git a/mover/limitcool/code/task8/README.md b/mover/limitcool/code/task8/README.md new file mode 100644 index 000000000..4eb7784bb --- /dev/null +++ b/mover/limitcool/code/task8/README.md @@ -0,0 +1,140 @@ +sui client call --package 0xd5c6f9f40969f7af6f97c17d86ade578899f81b519f13e01dd551b12c3d99abf --module lets_move --function get_flag --gas-budget 10000000 --args efb662893a527dd238dc 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff 0x8 + +Transaction Digest: ATTnSWtoCL1Vannpt9anKQXhC4SftShabuGC92Htm2Xb +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 │ +│ Gas Owner: 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0xcd0b89de4d306b2a44df340e90e41773a156368e0fb3ec0c7d4f547c856efbf4 │ +│ │ Version: 48026610 │ +│ │ Digest: FwhrneboWNPLW5JoPZisbx9viGS5wV9uvYo5C9EffR4e │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: "efb662893a527dd238dc" │ │ +│ │ 1 Shared Object ID: 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff │ │ +│ │ 2 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: get_flag │ │ +│ │ │ Module: lets_move │ │ +│ │ │ Package: 0xd5c6f9f40969f7af6f97c17d86ade578899f81b519f13e01dd551b12c3d99abf │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 9Z+qgVGT35Wupb1/DhLZkqq12JRaGx/58+9qO9GbAy5hgfUpDjJJAeAXXGKhPCyEM0FLz7DyNLg+3uFo5gj5Dw== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: ATTnSWtoCL1Vannpt9anKQXhC4SftShabuGC92Htm2Xb │ +│ Status: Success │ +│ Executed Epoch: 396 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff │ +│ │ Owner: Shared( 48002537 ) │ +│ │ Version: 48027404 │ +│ │ Digest: 5NTyTKzWnZvPdtGxQgxGAKTwMTrP3B1ME3xpUamjQtTG │ +│ └── │ +│ ┌── │ +│ │ ID: 0xcd0b89de4d306b2a44df340e90e41773a156368e0fb3ec0c7d4f547c856efbf4 │ +│ │ Owner: Account Address ( 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 ) │ +│ │ Version: 48027404 │ +│ │ Digest: 4v2nV3tfGRgQQba36oYm3SaErfhNqb4YNNrDCKoy7vNb │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff │ +│ │ Version: 48027403 │ +│ │ Digest: GQTMxo2H567rGSq7HyDbSqG6QFojpn6FWKmAzyTnHAKg │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ +│ │ Version: 45451072 │ +│ │ Digest: 41kqXfkT4C1YD5Gn8AYGzNDM3T9ynKNRKQJwK4SnGQg3 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0xcd0b89de4d306b2a44df340e90e41773a156368e0fb3ec0c7d4f547c856efbf4 │ +│ │ Owner: Account Address ( 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 ) │ +│ │ Version: 48027404 │ +│ │ Digest: 4v2nV3tfGRgQQba36oYm3SaErfhNqb4YNNrDCKoy7vNb │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2576400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2573208 MIST │ +│ Non-refundable Storage Fee: 25992 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 7oDgwmvFSvTD26GTSCdAydrVxVA9MZnzdQKAVvkG75T │ +│ Xh741dPy22C9S63hREhCbWFe6JmtCdU1xpH8QRu5SHd │ +│ 6S5NF47HWtCRT5m3AR7qgPDcBHGnVT9v84fqCVr5X3mX │ +│ 6oNs1pJjQ4CRAFeyV4RqfBaiKfXyo4mHfEhkXvKBgbKM │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: ATTnSWtoCL1Vannpt9anKQXhC4SftShabuGC92Htm2Xb:0 │ +│ │ PackageID: 0xd5c6f9f40969f7af6f97c17d86ade578899f81b519f13e01dd551b12c3d99abf │ +│ │ Transaction Module: lets_move │ +│ │ Sender: 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 │ +│ │ EventType: 0xd5c6f9f40969f7af6f97c17d86ade578899f81b519f13e01dd551b12c3d99abf::lets_move::Flag │ +│ │ ParsedJSON: │ +│ │ ┌────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ flag │ true │ │ +│ │ ├────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ sender │ 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 │ │ +│ │ └────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff │ +│ │ Sender: 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 │ +│ │ Owner: Shared( 48002537 ) │ +│ │ ObjectType: 0xd5c6f9f40969f7af6f97c17d86ade578899f81b519f13e01dd551b12c3d99abf::lets_move::Challenge │ +│ │ Version: 48027404 │ +│ │ Digest: 5NTyTKzWnZvPdtGxQgxGAKTwMTrP3B1ME3xpUamjQtTG │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xcd0b89de4d306b2a44df340e90e41773a156368e0fb3ec0c7d4f547c856efbf4 │ +│ │ Sender: 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 │ +│ │ Owner: Account Address ( 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 48027404 │ +│ │ Digest: 4v2nV3tfGRgQQba36oYm3SaErfhNqb4YNNrDCKoy7vNb │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1003192 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ \ No newline at end of file diff --git a/mover/limitcool/images/package.png b/mover/limitcool/images/package.png new file mode 100644 index 000000000..fed7ca0e8 Binary files /dev/null and b/mover/limitcool/images/package.png differ diff --git a/mover/limitcool/images/sui-wallet.png b/mover/limitcool/images/sui-wallet.png new file mode 100644 index 000000000..9a5adb0c9 Binary files /dev/null and b/mover/limitcool/images/sui-wallet.png differ diff --git a/mover/limitcool/notes/readme.md b/mover/limitcool/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/limitcool/readme.md b/mover/limitcool/readme.md new file mode 100644 index 000000000..fab2d508b --- /dev/null +++ b/mover/limitcool/readme.md @@ -0,0 +1,48 @@ +## 基本信息 +- Sui钱包地址: `0xcf0c3152905ea004634535e4c84f410b71c58c3d6a691d921e58c5a255cba0a4` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `limitcool` + +## 个人简介 +- 工作经验: 3年 +- 技术栈: `Rust` `Go` `Python` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `limitcool` + +## 任务 + +## 01 hello move +- [X] Sui cli version: sui 1.26.1-540d384f226a-dirty +- [X] Sui钱包截图: ![Sui钱包截图](./images/sui-wallet.png) +- [X] package id: 0x3beafe5bed5a426f1129d00753a065d62b8db8c129c77874d277a922a68eb304 +- [X]X package id 在 scan上的查看截图:![Scan截图](./images/package.png) + +## 02 move coin +- [X] My Coin package id : 0x919db1db921191bd77910afab462a520b9f2209ca491cdf62ef608c1eaf88198 +- [X] Faucet package id : 0x617ea8c5865526213b347be660c1fcff0e71c193eef676fb0618dd369ce1dccc +- [X] 转账 `My Coin` hash: BaNwozTZNZNsxnJ7HM4g19DmQV5V1ycA7jTMqBMdS46z + +## 03 move NFT +- [X] nft package id : 0xbd19aec2801fbc92fb344a8a3ed8b1b6596191b692dd7815029d88e7aea21160 +- [X] nft object id : 0x09ecf57e904478055e93b1f5d27c45bfbd0a9c832b5ba5417025a73cd4e95d30 +- [X] 转账 nft hash: Hot4X3EPs2J5CM4S5JQZZCw3xxECJ8oHgzT5Ku68K4rb + +## 04 Move Game +- [X] game package id : 0x49195dd4ee60b417fc22bb6f1a92be8cd65df039de1b38a915fcf44acc6af79d +- [X] play game hash: 8XPJX9wAtFCuxMiRKPuSF6AAoa5fAgufTGsPLM9BkSKC + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + + +## 07 Move CTF Check In +- [X] CTF hash : 7oDgwmvFSvTD26GTSCdAydrVxVA9MZnzdQKAVvkG75T + +## 08 Move CTF +- [X] CTF hash : ATTnSWtoCL1Vannpt9anKQXhC4SftShabuGC92Htm2Xb diff --git a/mover/lispking/notes/task5.md b/mover/lispking/notes/task5.md index a3172b586..b8a2565a4 100644 --- a/mover/lispking/notes/task5.md +++ b/mover/lispking/notes/task5.md @@ -325,7 +325,7 @@ export AMM_PKG="0x82baebc7a93f60c1f1e575371565e387171b3e5d69f7c4455be39e4630e684 export COIN_A="0xc846b5c2ecd10aaf62f645e1c6f4bd2718c8782378a0059893cc6bb7f9d8e800::mycoin::MYCOIN" export COIN_B="0xc846b5c2ecd10aaf62f645e1c6f4bd2718c8782378a0059893cc6bb7f9d8e800::faucet_coin::FAUCET_COIN" -sui client call --package $AMM_PKG --module move_swap --function generate_pool --gas-budget 100000000 --type-args $COIN_A $COIN_B +sui client call --package $AMM_PKG --module move_swap --function generate_pool --type-args $COIN_A $COIN_B [warn] Client/Server api version mismatch, client api version : 1.21.1, server api version : 1.22.0 @@ -441,7 +441,7 @@ Transaction Digest: ALQtovYaJtRrAEwZ4EHj9RkGeTL9z9gGzjndHgKo6c9J ```bash -sui client call --package $AMM_PKG --module move_swap --function create_pocket --gas-budget 100000000 +sui client call --package $AMM_PKG --module move_swap --function create_pocket [warn] Client/Server api version mismatch, client api version : 1.21.1, server api version : 1.22.0 Transaction Digest: 4CNfQ4DohgNipjn4xnaaEVon5RaqZ2oFScu3KaSd5ETa @@ -555,7 +555,7 @@ Transaction Digest: 4CNfQ4DohgNipjn4xnaaEVon5RaqZ2oFScu3KaSd5ETa export POOL_ID="0xea7fad53bfae04eacc72316686d8477344dc8773f6ecbb3377dcd193867bc0e7" export POCKET_ID="0x1b3724c412885a2170345bf1be7447023c5bbf7a79c2dc1dc39f47eb58068340" -sui client call --package $AMM_PKG --module move_swap --function deposit_totally --gas-budget 100000000 --type-args $COIN_A $COIN_B --args $POOL_ID 0x90ff4bee2326aac8d893518af966c5cc6d381241a319a9c6026c81a9fa19d54c 0xae13e1c8e2fa65bccfba044bf8ad20cc4afb26eb97d1ba04776bbfe295d08c86 $POCKET_ID +sui client call --package $AMM_PKG --module move_swap --function deposit_totally --type-args $COIN_A $COIN_B --args $POOL_ID 0x90ff4bee2326aac8d893518af966c5cc6d381241a319a9c6026c81a9fa19d54c 0xae13e1c8e2fa65bccfba044bf8ad20cc4afb26eb97d1ba04776bbfe295d08c86 $POCKET_ID [warn] Client/Server api version mismatch, client api version : 1.21.1, server api version : 1.22.0 Transaction Digest: DPREixURvBMogfsxuiXPEreJ7XXe8uM6rDWuqETMt5iZ @@ -899,7 +899,7 @@ Transaction Digest: HF5wvp1sWm967LcFH6UjjYfTciSTLTVWWwEhUY1vSprs ``` ```bash -sui client call --package $AMM_PKG --module move_swap --function swap_b_to_a --gas-budget 100000000 --type-args $COIN_A $COIN_B --args $POOL_ID \ +sui client call --package $AMM_PKG --module move_swap --function swap_b_to_a --type-args $COIN_A $COIN_B --args $POOL_ID \ '["0x28ef00d9dc55d7f08c9a13b7ebcfc7ef5611b75446b1029c1bdfb6998e8b8ef9"]' \"66\" diff --git a/mover/littleP1ng/code/coin/Move.lock b/mover/littleP1ng/code/coin/Move.lock new file mode 100644 index 000000000..079a8a001 --- /dev/null +++ b/mover/littleP1ng/code/coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C375D9ECC52D9CB2FE2CB90C0408D2BD5BCCB5077C2EBA6AE5D1F048D0675A4D" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", 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.mainnet] +chain-id = "35834a8a" +original-published-id = "0x9cb993c5469e8a006187c7f3d83cd897b08dc259127ebd92a2573cd719c4876c" +latest-published-id = "0x9cb993c5469e8a006187c7f3d83cd897b08dc259127ebd92a2573cd719c4876c" +published-version = "1" diff --git a/mover/littleP1ng/code/coin/Move.toml b/mover/littleP1ng/code/coin/Move.toml new file mode 100644 index 000000000..3b79265ff --- /dev/null +++ b/mover/littleP1ng/code/coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://github.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] +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/littleP1ng/code/coin/sources/coin.move b/mover/littleP1ng/code/coin/sources/coin.move new file mode 100644 index 000000000..eeef9168c --- /dev/null +++ b/mover/littleP1ng/code/coin/sources/coin.move @@ -0,0 +1,35 @@ +// Module: coin +module coin::littleP1ng_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct LITTLEP1NG_COIN has drop {} + + fun init(witness: LITTLEP1NG_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"LITTLEP1NG_COIN", + b"LITTLEP1NG_COIN", + b"coin create by ping", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/169317857")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/littleP1ng/code/faucet/Move.lock b/mover/littleP1ng/code/faucet/Move.lock new file mode 100644 index 000000000..bee53350a --- /dev/null +++ b/mover/littleP1ng/code/faucet/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "5878F4D44CC319A30549BB8F836518B985B082C00002FF2393B75C48C8428CEC" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", 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.mainnet] +chain-id = "35834a8a" +original-published-id = "0xf384148678a81ed4e9a27fe1bd552e021c4c44cb44f657af22fe24ff8d3a3b4f" +latest-published-id = "0xf384148678a81ed4e9a27fe1bd552e021c4c44cb44f657af22fe24ff8d3a3b4f" +published-version = "1" diff --git a/mover/littleP1ng/code/faucet/Move.toml b/mover/littleP1ng/code/faucet/Move.toml new file mode 100644 index 000000000..1cc1f460f --- /dev/null +++ b/mover/littleP1ng/code/faucet/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "faucet" +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)"] +published-at = "0xf384148678a81ed4e9a27fe1bd552e021c4c44cb44f657af22fe24ff8d3a3b4f" + +[dependencies] +Sui = { git = "https://github.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] +faucet = "0xf384148678a81ed4e9a27fe1bd552e021c4c44cb44f657af22fe24ff8d3a3b4f" + +# 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/littleP1ng/code/faucet/sources/faucet.move b/mover/littleP1ng/code/faucet/sources/faucet.move new file mode 100644 index 000000000..fb34dd034 --- /dev/null +++ b/mover/littleP1ng/code/faucet/sources/faucet.move @@ -0,0 +1,36 @@ +// Module: faucet +module faucet::littleP1ng_faucet_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct LITTLEP1NG_FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: LITTLEP1NG_FAUCET_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"LITTLEP1NG_FAUCET", + b"LITTLEP1NG_FAUCET", + b"faucet coin defined by ping, everyone can access and mutate", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/169317857")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury_cap) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/littleP1ng/code/game/Move.toml b/mover/littleP1ng/code/game/Move.toml new file mode 100644 index 000000000..8d30bed3b --- /dev/null +++ b/mover/littleP1ng/code/game/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "game" +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/mainnet" } +faucet = { local = "../faucet" } + +# 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] +game = "0x0" +faucet = "0xf384148678a81ed4e9a27fe1bd552e021c4c44cb44f657af22fe24ff8d3a3b4f" + +# 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/littleP1ng/code/game/sources/game.move b/mover/littleP1ng/code/game/sources/game.move new file mode 100644 index 000000000..f8432566b --- /dev/null +++ b/mover/littleP1ng/code/game/sources/game.move @@ -0,0 +1,186 @@ +module game::littleP1ng_game { + use std::string::{Self, String}; + use sui::event; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::tx_context::sender; + use faucet::littleP1ng_faucet_coin::{Self, LITTLEP1NG_FAUCET_COIN}; + use std::hash; + use std::vector; + + use sui::bcs; + use sui::object; + use sui::tx_context::TxContext; + + const ERR_HIGH_ARG_GREATER_THAN_LOW_ARG: u64 = 101; + const EInvalidNumber: u64 = 0; + const EPoolNotEnough: u64 = 1; + const EInputNotEnough: u64 = 2; + + public struct GameResult has copy, drop { + your_roll: u64, + npc_roll: u64, + result: String, + is_winner: bool, + } + + public struct Game has key { + id: UID, + pool: Balance, + ticket: u64, + reward: u64, + } + + public fun game_pool(game: &Game): u64 { + balance::value(&game.pool) + } + + public fun game_ticket(game: &Game): u64 { + game.ticket + } + + public fun game_reward(game: &Game): u64 { + game.reward + } + + public struct AdminCap has key { + id: UID, + } + + fun init(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + pool: balance::zero(), + ticket: 1_000, + reward: 2_000, + }; + transfer::share_object(game); + + let admin_cap = AdminCap { id: object::new(ctx) }; + transfer::transfer(admin_cap, sender(ctx)); + } + + fun get_random_roll(ctx: &mut TxContext) : u64 { + rand_u64_range(0, 3, ctx) + } + + fun get_random_roll_2(ctx: &mut TxContext) : u64 { + rand_u64_range(0, 3, ctx) + } + + public entry fun play(game: &mut Game, input: Coin, ctx: &mut TxContext) { + + assert!(balance::value(&game.pool) >= game.reward - game.ticket, EPoolNotEnough); + + let input_value = coin::value(&input); + assert!(input_value >= game.ticket, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > game.ticket) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, game.ticket) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + }; + + let player_roll = get_random_roll_2(ctx); + let npc_roll = get_random_roll(ctx); + let (result, is_winner) = if (player_roll > npc_roll) { + (string::utf8(b"Win"), true) + } else if (player_roll == npc_roll) { + (string::utf8(b"Draw"), false) + } else { + (string::utf8(b"Lose"), false) + }; + + if (is_winner) { + let reward_balance = balance::split(&mut game.pool, game.reward); + let reward = coin::from_balance(reward_balance, ctx); + transfer::public_transfer(reward, sender(ctx)); + }; + + event::emit(GameResult { + your_roll: player_roll, + npc_roll: npc_roll, + result, + is_winner, + }); + } + + public entry fun deposit(game: &mut Game, input: Coin, amount: u64, ctx: &mut TxContext) { + let input_value = coin::value(&input); + assert!(input_value >= amount, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > amount) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, amount) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + } + } + + public entry fun withdraw(_: &AdminCap, game: &mut Game, amount: u64, ctx: &mut TxContext) { + let output_balance = balance::split(&mut game.pool, amount); + let output = coin::from_balance(output_balance, ctx); + transfer::public_transfer(output, sender(ctx)); + } + + public entry fun set_ticket(_: &AdminCap, game: &mut Game, ticket: u64, _: &mut TxContext) { + game.ticket = ticket; + } + + public entry fun set_reward(_: &AdminCap, game: &mut Game, reward: u64, _: &mut TxContext) { + game.reward = reward; + } + + public entry fun get_faucet_coin(treasury_cap: &mut TreasuryCap, amount: u64, ctx: &mut TxContext) { + littleP1ng_faucet_coin::mint(treasury_cap, amount, sender(ctx), ctx); + } + + fun seed(ctx: &mut TxContext): vector { + let ctx_bytes = bcs::to_bytes(ctx); + let uid = object::new(ctx); + let uid_bytes: vector = object::uid_to_bytes(&uid); + object::delete(uid); + + let mut info: vector = vector::empty(); + vector::append(&mut info, ctx_bytes); + vector::append(&mut info, uid_bytes); + + let hash: vector = hash::sha3_256(info); + hash + } + + fun bytes_to_u64(bytes: vector): u64 { + let mut value = 0u64; + let mut i = 0u64; + while (i < 8) { + value = value | ((*vector::borrow(&bytes, i) as u64) << ((8 * (7 - i)) as u8)); + i = i + 1; + }; + return value + } + + fun rand_u64_with_seed(_seed: vector): u64 { + bytes_to_u64(_seed) + } + + fun rand_u64_range_with_seed(_seed: vector, low: u64, high: u64): u64 { + assert!(high > low, ERR_HIGH_ARG_GREATER_THAN_LOW_ARG); + let value = rand_u64_with_seed(_seed); + (value % (high - low)) + low + } + + public fun rand_u64_range(low: u64, high: u64, ctx: &mut TxContext): u64 { + rand_u64_range_with_seed(seed(ctx), low, high) + } +} diff --git a/mover/littleP1ng/code/hello_world/Move.lock b/mover/littleP1ng/code/hello_world/Move.lock new file mode 100644 index 000000000..be1a82865 --- /dev/null +++ b/mover/littleP1ng/code/hello_world/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "60F2000F4D6DAD240EF371DB3BC521F7BD4C8B814BC59CA473B852B77FDBE53C" +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 = "0xc06ccafedc1e3317f7bc37c0d43433659d8c288721493a4ec9a7c16b4d6a9c02" +latest-published-id = "0xc06ccafedc1e3317f7bc37c0d43433659d8c288721493a4ec9a7c16b4d6a9c02" +published-version = "1" diff --git a/mover/littleP1ng/code/hello_world/Move.toml b/mover/littleP1ng/code/hello_world/Move.toml new file mode 100644 index 000000000..201de1731 --- /dev/null +++ b/mover/littleP1ng/code/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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] +hello_world = "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/littleP1ng/code/hello_world/sources/hello_world.move b/mover/littleP1ng/code/hello_world/sources/hello_world.move new file mode 100644 index 000000000..c24b78d11 --- /dev/null +++ b/mover/littleP1ng/code/hello_world/sources/hello_world.move @@ -0,0 +1,21 @@ +// Module: hello_world +module hello_world::hello_world { + + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct HelloMove has key, store { + id: UID, + text: string::String + } + + public fun mint(ctx: &mut TxContext) { + let object = HelloMove { + id: object::new(ctx), + text: string::utf8(b"Hello littleP1ng") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/littleP1ng/code/nft/Move.lock b/mover/littleP1ng/code/nft/Move.lock new file mode 100644 index 000000000..0941d406a --- /dev/null +++ b/mover/littleP1ng/code/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "598F8F874C952A217CD82EAFF3EC58932307CBD6F4EAAA625ACB910AA12EC3B0" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", 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.mainnet] +chain-id = "35834a8a" +original-published-id = "0x149e17f9ba48167f703f54e5c18de2b40947fa4e6242ea846d3f1dfa0110c556" +latest-published-id = "0x149e17f9ba48167f703f54e5c18de2b40947fa4e6242ea846d3f1dfa0110c556" +published-version = "1" diff --git a/mover/littleP1ng/code/nft/Move.toml b/mover/littleP1ng/code/nft/Move.toml new file mode 100644 index 000000000..51771cd90 --- /dev/null +++ b/mover/littleP1ng/code/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://github.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] +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/littleP1ng/code/nft/sources/nft.move b/mover/littleP1ng/code/nft/sources/nft.move new file mode 100644 index 000000000..fb12c8182 --- /dev/null +++ b/mover/littleP1ng/code/nft/sources/nft.move @@ -0,0 +1,48 @@ +// Module: nft +module nft::littleP1ng_nft { + use std::ascii::String; + use std::string::utf8; + use sui::display; + use sui::object; + use sui::object::{UID}; + use sui::package; + use sui::transfer; + use sui::transfer::public_transfer; + use sui::tx_context; + use sui::tx_context::{TxContext}; + + public struct LITTLEP1NG_NFT has drop {} + + public struct NFT has key,store { + id: UID, + name: String, + } + + fun init(otw: LITTLEP1NG_NFT, ctx: &mut sui::tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://avatars.githubusercontent.com/u/169317857"), + ]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values,ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + public entry fun mint_to(name: String, recipient: address,ctx: &mut TxContext) { + let nft = NFT{ + id: object::new(ctx), + name, + }; + public_transfer(nft, recipient) + } +} \ No newline at end of file diff --git a/mover/littleP1ng/code/sdk/index.html b/mover/littleP1ng/code/sdk/index.html new file mode 100644 index 000000000..3c9258df8 --- /dev/null +++ b/mover/littleP1ng/code/sdk/index.html @@ -0,0 +1,12 @@ + + + + + + SDK Task + + +
+ + + diff --git a/mover/littleP1ng/code/sdk/package.json b/mover/littleP1ng/code/sdk/package.json new file mode 100644 index 000000000..076a96228 --- /dev/null +++ b/mover/littleP1ng/code/sdk/package.json @@ -0,0 +1,24 @@ +{ + "name": "with-vite", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --port 3000" + }, + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@suiet/wallet-kit": "0.2.24", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tweetnacl": "^1.0.3", + "navi-sdk": "^1.1.21" + }, + "devDependencies": { + "@types/react": "^18.0.22", + "@types/react-dom": "^18.0.7", + "@vitejs/plugin-react": "^2.2.0", + "typescript": "^5.4.3", + "vite": "^3.2.7" + } +} diff --git a/mover/littleP1ng/code/sdk/src/App.tsx b/mover/littleP1ng/code/sdk/src/App.tsx new file mode 100644 index 000000000..cc0cde8f4 --- /dev/null +++ b/mover/littleP1ng/code/sdk/src/App.tsx @@ -0,0 +1,114 @@ +import "./App.css"; +import { + ConnectButton, + useAccountBalance, + useWallet, + ErrorCode, + formatSUI, +} from "@suiet/wallet-kit"; +import "@suiet/wallet-kit/style.css"; +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import {depositCoin, borrowCoin} from 'navi-sdk/dist/libs/PTB' +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from 'navi-sdk/dist/address' +import {Sui, USDC} from 'navi-sdk/dist/address'; + +function App() { + const wallet = useWallet(); + const { balance } = useAccountBalance(); + + function uint8arrayToHex(value: Uint8Array | undefined) { + if (!value) return ""; + // @ts-ignore + return value.toString("hex"); + } + + async function handleNAVISDK() { + if (!wallet.account) return; + const account = wallet.account; + const sender = account.address; + try { + let txb = new TransactionBlock(); + txb.setSender(sender); + + let getCoinInfo = balance; + if (!getCoinInfo) { + throw new Error("Insufficient balance"); + } + + let deposit_amount = 1e9; + let sui_symbol = Sui.symbol; + const pool_sui: PoolConfig = pool[sui_symbol as keyof Pool]; + const [to_deposit] = txb.splitCoins(txb.gas, [deposit_amount]); + await depositCoin(txb, pool_sui, to_deposit, deposit_amount); + + let borrow_amount = BigInt(Math.round(0.062812 * 1e6)); + let usdc_symbol = USDC.symbol; + const pool_usdc: PoolConfig = pool[usdc_symbol as keyof Pool]; + const [borrow_coin] = await borrowCoin(txb, pool_usdc, borrow_amount); + + await depositCoin(txb, pool_usdc, borrow_coin, borrow_amount); + + const resData = await wallet.signAndExecuteTransactionBlock({ + transactionBlock: txb, + }); + console.log("transaction digest: " + JSON.stringify(resData)); + } catch (e) { + console.error("failed", e); + alert("failed (see response in the console)"); + } + } + + return ( +
+
+ { + if (error.code === ErrorCode.WALLET__CONNECT_ERROR__USER_REJECTED) { + console.warn( + "user rejected the connection to " + error.details?.wallet + ); + } else { + console.warn("unknown connect error: ", error); + } + }} + /> + + {!wallet.connected ? ( +

Connect wallet from now!

+ ) : ( +
+
+

current wallet: {wallet.adapter?.name}

+

+ wallet status:{" "} + {wallet.connecting + ? "connecting" + : wallet.connected + ? "connected" + : "disconnected"} +

+

wallet address: {wallet.account?.address}

+

current network: {wallet.chain?.name}

+

+ wallet balance:{" "} + {formatSUI(balance ?? 0, { + withAbbr: false, + })}{" "} + SUI +

+

+ wallet publicKey: {uint8arrayToHex(wallet.account?.publicKey)} +

+
+
+ +
+
+ )} +
+
+ ); +} + +export default App; diff --git a/mover/littleP1ng/code/sdk/src/main.tsx b/mover/littleP1ng/code/sdk/src/main.tsx new file mode 100644 index 000000000..b27eb00c3 --- /dev/null +++ b/mover/littleP1ng/code/sdk/src/main.tsx @@ -0,0 +1,16 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +import { + WalletProvider, +} from '@suiet/wallet-kit'; + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + + + +) diff --git a/mover/littleP1ng/code/swap/Move.toml b/mover/littleP1ng/code/swap/Move.toml new file mode 100644 index 000000000..aa7dab9a2 --- /dev/null +++ b/mover/littleP1ng/code/swap/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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 (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] +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" + diff --git a/mover/littleP1ng/code/swap/sources/swap.move b/mover/littleP1ng/code/swap/sources/swap.move new file mode 100644 index 000000000..beab5a818 --- /dev/null +++ b/mover/littleP1ng/code/swap/sources/swap.move @@ -0,0 +1,261 @@ +module swap::littleP1ng_swap { + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply, Balance}; + use sui::math; + + const EZeroAmount: u64 = 0; + + const EReservesEmpty: u64 = 2; + + const EPoolFull: u64 = 4; + + const FEE_SCALING: u128 = 10000; + + const FEE_PERCENT: u128 = 30; + + const MAX_POOL_VALUE: u64 = { + 18446744073709551615 / 10000 + }; + + public struct LSP has drop {} + + public struct Pool has key { + id: UID, + token_a: Balance, + token_b: Balance, + lsp_supply: Supply>, + /// Fee Percent is denominated in basis points. + fee_percent: u64 + } + + fun init(_: &mut TxContext) { + } + + entry fun create_pool ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + create_pool_inner(token_a, token_b, ctx), + tx_context::sender(ctx) + ); + } + + fun create_pool_inner ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + let fee_percent = (FEE_PERCENT as u64); + + let token_a_amt = coin::value(&token_a); + let token_b_amt = coin::value(&token_b); + + assert!(token_a_amt > 0 && token_b_amt > 0, EZeroAmount); + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let share = math::sqrt(token_a_amt) * math::sqrt(token_b_amt); + let mut lsp_supply = balance::create_supply(LSP {}); + let lsp = balance::increase_supply(&mut lsp_supply, share); + + transfer::share_object(Pool { + id: object::new(ctx), + token_a: coin::into_balance(token_a), + token_b: coin::into_balance(token_b), + lsp_supply, + fee_percent, + }); + + coin::from_balance(lsp, ctx) + } + + entry fun add_liquidity ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + add_liquidity_inner(pool, token_a, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun add_liquidity_inner ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + assert!(coin::value(&token_a) > 0 && coin::value(&token_b) > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, lsp_supply) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_balance = coin::into_balance(token_a); + let token_b_balance = coin::into_balance(token_b); + + let token_a_added = balance::value(&token_a_balance); + let token_b_added = balance::value(&token_b_balance); + + let share_minted = math::min( + (token_a_added * lsp_supply) / token_a_amt, + (token_b_added * lsp_supply) / token_b_amt + ); + + let token_a_amt = balance::join(&mut pool.token_a, token_a_balance); + let token_b_amt = balance::join(&mut pool.token_b, token_b_balance); + + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let balance = balance::increase_supply(&mut pool.lsp_supply, share_minted); + + coin::from_balance(balance, ctx) + } + + entry fun remove_liquidity ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ) { + let (token_a, token_b) = remove_liquidity_inner(pool, lsp, ctx); + let sender = tx_context::sender(ctx); + + transfer::public_transfer(token_a, sender); + transfer::public_transfer(token_b, sender); + } + + fun remove_liquidity_inner ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ): (Coin, Coin) { + let lsp_amount = coin::value(&lsp); + assert!(lsp_amount > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, total_supply) = get_amounts(pool); + + let token_a = (token_a_amt * lsp_amount) / total_supply; + let token_b = (token_b_amt * lsp_amount) / total_supply; + + balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); + + ( + coin::take(&mut pool.token_a, token_a, ctx), + coin::take(&mut pool.token_b, token_b, ctx), + ) + } + + entry fun swap_a_to_b ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_a_to_b_inner(pool, token_a, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_a_to_b_inner ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ): Coin { + let token_a_amt = coin::value(&token_a); + assert!(token_a_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_b_amt = sell_token_a(pool, token_a_amt); + + balance::join(&mut pool.token_a, coin::into_balance(token_a)); + + coin::take(&mut pool.token_b, token_b_amt, ctx) + } + + entry fun swap_b_to_a ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_b_to_a_inner(pool, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_b_to_a_inner ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ): Coin { + let token_b_amt = coin::value(&token_b); + assert!(token_b_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_amt = sell_token_b(pool, token_b_amt); + + balance::join(&mut pool.token_b, coin::into_balance(token_b)); + + coin::take(&mut pool.token_a, token_a_amt, ctx) + } + + public fun sell_token_a(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_a_amt, + token_b_amt, + pool.fee_percent + ) + } + + public fun sell_token_b(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_b_amt, + token_a_amt, + pool.fee_percent + ) + } + + public fun get_amounts(pool: &Pool): (u64, u64, u64) { + ( + balance::value(&pool.token_a), + balance::value(&pool.token_b), + balance::supply_value(&pool.lsp_supply), + ) + } + + public fun calc_output_amount( + input_amount: u64, + input_reserve: u64, + output_reserve: u64, + fee_percent: u64 + ): u64 { + let ( + input_amount, + input_reserve, + output_reserve, + fee_percent + ) = ( + (input_amount as u128), + (input_reserve as u128), + (output_reserve as u128), + (fee_percent as u128), + ); + + let input_with_fee = input_amount * FEE_SCALING / (FEE_SCALING - fee_percent); + + let total = input_reserve * output_reserve; + let output_amount = output_reserve - total / (input_reserve + input_with_fee); + + (output_amount as u64) + } +} diff --git a/mover/littleP1ng/images/7.png b/mover/littleP1ng/images/7.png new file mode 100644 index 000000000..cbd75c7e2 Binary files /dev/null and b/mover/littleP1ng/images/7.png differ diff --git a/mover/littleP1ng/images/jietunft.jpg b/mover/littleP1ng/images/jietunft.jpg new file mode 100644 index 000000000..3e4f0806c Binary files /dev/null and b/mover/littleP1ng/images/jietunft.jpg differ diff --git a/mover/littleP1ng/images/jietuqianbao.png b/mover/littleP1ng/images/jietuqianbao.png new file mode 100644 index 000000000..5f5175859 Binary files /dev/null and b/mover/littleP1ng/images/jietuqianbao.png differ diff --git a/mover/littleP1ng/images/packagejietu.png b/mover/littleP1ng/images/packagejietu.png new file mode 100644 index 000000000..5b6c37467 Binary files /dev/null and b/mover/littleP1ng/images/packagejietu.png differ diff --git a/mover/littleP1ng/notes/readme.md b/mover/littleP1ng/notes/readme.md new file mode 100644 index 000000000..521f5ab54 --- /dev/null +++ b/mover/littleP1ng/notes/readme.md @@ -0,0 +1,123 @@ +# coin faucet nft + +sui client publish + +PackageID: 0x9cb993c5469e8a006187c7f3d83cd897b08dc259127ebd92a2573cd719c4876c + +ObjectID: 0xe2ec44d1affdd3e7aeec56c0b34d2757361a5559f1fc2558082ccf793ec9d641 +ObjectType: 0x2::coin::TreasuryCap<0x9cb993c5469e8a006187c7f3d83cd897b08dc259127ebd92a2573cd719c4876c::littleP1ng_coin::LITTLEP1NG_COIN> + +mint coin to 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2: + +sui client call --package 0x9cb993c5469e8a006187c7f3d83cd897b08dc259127ebd92a2573cd719c4876c --module littleP1ng_coin --function mint --args 0xe2ec44d1affdd3e7aeec56c0b34d2757361a5559f1fc2558082ccf793ec9d641 1000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +Transaction Digest: 5MdqLThcA3zSexwtd2S4AVENoGFkqg74kZBpewXVega7 + +PackageID: 0xf384148678a81ed4e9a27fe1bd552e021c4c44cb44f657af22fe24ff8d3a3b4f +ObjectID: 0x32e8457b1e3be75367b9a79d47e5bab235540af96bf9267877334d9d9c2fbdf7 +ObjectType: 0x2::coin::TreasuryCap<0xf384148678a81ed4e9a27fe1bd552e021c4c44cb44f657af22fe24ff8d3a3b4f::littleP1ng_faucet_coin::LITTLEP1NG_FAUCET_COIN> + +mint faucet coin 给 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2: + +sui client call --package 0xf384148678a81ed4e9a27fe1bd552e021c4c44cb44f657af22fe24ff8d3a3b4f --module littleP1ng_faucet_coin --function mint --args 0x32e8457b1e3be75367b9a79d47e5bab235540af96bf9267877334d9d9c2fbdf7 1000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +Transaction Digest: 8TtDy3tpRTqgAScyCSaDW3xtDQ3KiB8K2D9M4swmuRs4 + +mint faucet coin 给自己: + +sui client call --package 0xf384148678a81ed4e9a27fe1bd552e021c4c44cb44f657af22fe24ff8d3a3b4f --module littleP1ng_faucet_coin --function mint --args 0x32e8457b1e3be75367b9a79d47e5bab235540af96bf9267877334d9d9c2fbdf7 1000 0x829abecd7454a3af03cb141c38495107cd67e11abc595985bc90c24e96b7a2e7 + +Transaction Digest: 3V58FsPsW23ZiRLfsneoSpTanPnJfydGxJAqYVPepxvL + +nft: + +PackageID: 0x149e17f9ba48167f703f54e5c18de2b40947fa4e6242ea846d3f1dfa0110c556 + +sui client call --package 0x149e17f9ba48167f703f54e5c18de2b40947fa4e6242ea846d3f1dfa0110c556 --module littleP1ng_nft --function mint_to --args "LittleP1ng" 0x829abecd7454a3af03cb141c38495107cd67e11abc595985bc90c24e96b7a2e7 + +ObjectID: 0x0f1fc389b14d92e5f524459460cb19e1d6eba9c4fa83557d7dd50ade5d71b932 + +mint nft to: 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2: + +sui client call --package 0x149e17f9ba48167f703f54e5c18de2b40947fa4e6242ea846d3f1dfa0110c556 --module littleP1ng_nft --function mint_to --args "From LittleP1ng" 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +Transaction Digest: BKaBBe7Ew9YuRwsHzKWmCJBKuJkZWb78bm18b42YTg4i + + +# game + +`mainnet` + +sui client publish + +PackageID: 0x370e3b0810ca9e0c23c1710a699459901193de327f54e3c942014fca473d6b6a + +export PackageID=0x370e3b0810ca9e0c23c1710a699459901193de327f54e3c942014fca473d6b6a +faucet: +PackageID: 0xf384148678a81ed4e9a27fe1bd552e021c4c44cb44f657af22fe24ff8d3a3b4f +ObjectID: 0x32e8457b1e3be75367b9a79d47e5bab235540af96bf9267877334d9d9c2fbdf7 +ObjectType: 0x2::coin::TreasuryCap<0xf384148678a81ed4e9a27fe1bd552e021c4c44cb44f657af22fe24ff8d3a3b4f::littleP1ng_faucet_coin::LITTLEP1NG_FAUCET_COIN> + +export FaucetId=0xf384148678a81ed4e9a27fe1bd552e021c4c44cb44f657af22fe24ff8d3a3b4f::littleP1ng_faucet_coin::LITTLEP1NG_FAUCET_COIN + +adminCap: 0x0775d06caffd3483045c0830280634e0257f80e83cbc0ad604405a50dcaad7f3 + +gameId: 0x52fcfb4f03b357603c62d3002cb97977157b84d09c66d135b498142efe4f422b + +export GameId=0x52fcfb4f03b357603c62d3002cb97977157b84d09c66d135b498142efe4f422b + +export AdminCap=0x0775d06caffd3483045c0830280634e0257f80e83cbc0ad604405a50dcaad7f3 + +mint faucet coin: + +export MyAddress=0x829abecd7454a3af03cb141c38495107cd67e11abc595985bc90c24e96b7a2e7 + +export Task2Pack=0xf384148678a81ed4e9a27fe1bd552e021c4c44cb44f657af22fe24ff8d3a3b4f + +export TreasureId=0x32e8457b1e3be75367b9a79d47e5bab235540af96bf9267877334d9d9c2fbdf7 + +sui client call --package $Task2Pack --module littleP1ng_faucet_coin --function mint --args $TreasureId 1000000 $MyAddress + +get faucet coin +ObjectID: 0xcff22a974c6715575fc9b5a445f6ab073341153dfe6029678319f2d1c354846e +export FaucetCoin=0xcff22a974c6715575fc9b5a445f6ab073341153dfe6029678319f2d1c354846e + +deposit: +sui client call --package $PackageID --module littleP1ng_game --function deposit --args $GameId $FaucetCoin 500000 + +left coin: + +ObjectID: 0x0ab4630a31df2a21ab77b786fe2f2e91d55d972207ba84bf8628675ad79ea7bf + +Transaction Digest: 7z4ENKcAKVBvMgFXrBAegmpmFJYrpaf69dC5vjTat4fm + +export GameCoin=0x0ab4630a31df2a21ab77b786fe2f2e91d55d972207ba84bf8628675ad79ea7bf + +sui client call --package $PackageID --module littleP1ng_game --function play --args $GameId $GameCoin +Transaction Digest: AekFwTLjJHyrFSfMRapc9ofia3PjZ3F4a2cqtaPwPmj2 + +│ │ ParsedJSON: │ +│ │ ┌───────────┬──────┐ │ +│ │ │ is_winner │ true │ │ +│ │ ├───────────┼──────┤ │ +│ │ │ npc_roll │ 1 │ │ +│ │ ├───────────┼──────┤ │ +│ │ │ result │ Win │ │ +│ │ ├───────────┼──────┤ │ +│ │ │ your_roll │ 2 │ │ +│ │ └───────────┴──────┘ │ +│ + +取出GameCoin,使用task5的withdraw方法 + +sui client call --package $PackageID --module littleP1ng_game --function withdraw --args $AdminCap $GameId 2000 + +Transaction Digest: 3YpDaTPU9JqcwMR6qFpCz1KHEeqgSWoecCRwCeutxewC + +# ctf 1 + +sui client call --function get_flag --module check_in --package 0x914099b4d1b4f5513acc8aaa4fdc1f67578522b81d818f61bae527d590c6d87d --args [16,246,136,180,23,240,37,152,62,215,156,169,184,55,133,220,214,226,63,27,38,66,117,66,178,226,156,12,36,16,195,56] littleP1ng 0xc8dcd54baa7724177593a9f70598a09ae6a4286f996542e058f248209db08147 0x8 + +# ctf 2 + +sui client call --function get_flag --module lets_move --package 0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f --args 2e1a501722db235e07ab littleP1ng 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 0x8 \ No newline at end of file diff --git a/mover/littleP1ng/readme.md b/mover/littleP1ng/readme.md new file mode 100644 index 000000000..b311eeebe --- /dev/null +++ b/mover/littleP1ng/readme.md @@ -0,0 +1,55 @@ +## 基本信息 +- Sui钱包地址: `0x829abecd7454a3af03cb141c38495107cd67e11abc595985bc90c24e96b7a2e7` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `littleP1ng` + +## 个人简介 +- 工作经验: 1年 +- 技术栈: `Jave` `C++` +> 重要提示 请认真写自己的简介 +- java从业者,对Move和Rust感兴趣,想通过Move入门区块链 +- 联系方式: tg: `littleP1ng` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.27.2-9e2be6ad4185 +- [x] Sui钱包截图: ![Sui钱包截图](./images/jietuqianbao.png) +- [x] package id: 0xc06ccafedc1e3317f7bc37c0d43433659d8c288721493a4ec9a7c16b4d6a9c02 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/packagejietu.png) + +## 02 move coin +- [x] My Coin package id : 0x9cb993c5469e8a006187c7f3d83cd897b08dc259127ebd92a2573cd719c4876c +- [x] Faucet package id : 0xf384148678a81ed4e9a27fe1bd552e021c4c44cb44f657af22fe24ff8d3a3b4f +- [x] 转账 `My Coin` hash : 5MdqLThcA3zSexwtd2S4AVENoGFkqg74kZBpewXVega7 + +- [x] `Faucet Coin` address1 mint hash : 8TtDy3tpRTqgAScyCSaDW3xtDQ3KiB8K2D9M4swmuRs4 +- [x] `Faucet Coin` address2 mint hash : 3V58FsPsW23ZiRLfsneoSpTanPnJfydGxJAqYVPepxvL + +## 03 move NFT +- [x] nft package id : 0x149e17f9ba48167f703f54e5c18de2b40947fa4e6242ea846d3f1dfa0110c556 +- [x] nft object id : 0x0f1fc389b14d92e5f524459460cb19e1d6eba9c4fa83557d7dd50ade5d71b932 +- [x] 转账 nft hash: BKaBBe7Ew9YuRwsHzKWmCJBKuJkZWb78bm18b42YTg4i +- [x] scan上的NFT截图:![Scan截图](./images/jietunft.jpg) + +## 04 Move Game +- [x] game package id : 0x370e3b0810ca9e0c23c1710a699459901193de327f54e3c942014fca473d6b6a +- [x] deposit Coin hash: 7z4ENKcAKVBvMgFXrBAegmpmFJYrpaf69dC5vjTat4fm +- [x] withdraw `Coin` hash: 3YpDaTPU9JqcwMR6qFpCz1KHEeqgSWoecCRwCeutxewC +- [x] play game hash: AekFwTLjJHyrFSfMRapc9ofia3PjZ3F4a2cqtaPwPmj2 + +## 05 Move Swap +- [x] swap package id : 0x93112dedeaa9e3cad97a7dc6accfb101be05b3d5b1cfc71fc56c7f023ca15c62 +- [x] call swap CoinA-> CoinB hash : EPpdHcyCVMbEMBdYmM7Z1CUEVQ5Ee6rZfsc2FF2ESf8L +- [x] call swap CoinB-> CoinA hash : 92cwpiaUXEFffPRBc8fFZTNoVtXd6jekFC4gWMxkakZd + +## 06 Dapp-kit SDK PTB +- [x] save hash : A8YcTiUvV75EsgZVuayCzxZMq4JFiuiLJzwhPmjauzXV + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/7.png) +- [x] flag hash : 6ePzzD4Quc3eTGBiqrHn4m7Y4nmxDwyFti7pCbExYuoG + +## 08 Move CTF Lets Move +- [x] proof : 2e1a501722db235e07ab +- [x] flag hash : 4yj3FHMpkkpj4VX9DaNELQPVFyrjJoKiWFoUpN3kapGd diff --git a/mover/lujiankang95/code/readme.md b/mover/lujiankang95/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/lujiankang95/images/account.png b/mover/lujiankang95/images/account.png new file mode 100644 index 000000000..ddd167648 Binary files /dev/null and b/mover/lujiankang95/images/account.png differ diff --git a/mover/lujiankang95/images/package.png b/mover/lujiankang95/images/package.png new file mode 100644 index 000000000..66197d19a Binary files /dev/null and b/mover/lujiankang95/images/package.png differ diff --git a/mover/lujiankang95/notes/readme.md b/mover/lujiankang95/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/lujiankang95/readme.md b/mover/lujiankang95/readme.md new file mode 100644 index 000000000..5f4133522 --- /dev/null +++ b/mover/lujiankang95/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xc708cf72cd6d09f3b979aade7e216f17a1fb9e67bab52cbd3955e0a68aa0f9da` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `lujiankang95` + +## 个人简介 +- 工作经验: 6年 +- 技术栈: `Java` `Python` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `@lujk_1995` + +## 任务 + +## 01 hello move +- [] Sui cli version:sui-client 1.28.3-3781a7e6b56c +- [] Sui钱包截图: ![Sui钱包截图](./images/account.png) +- [] package id:0x8dfc8e1d59bb5c909876a9838de06d34ea083f825958b9fd3f6cf9a2582cae98 +- [] package id 在 scan上的查看截图:![Scan截图](./images/package.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/lyanna95/README.md b/mover/lyanna95/README.md new file mode 100644 index 000000000..bac685e4d --- /dev/null +++ b/mover/lyanna95/README.md @@ -0,0 +1,44 @@ +## 基本信息 +- Sui钱包地址: `0x750961ed018c57b37fb2510ad72a231c1fe9539e75401aa2b0e572b41022a939` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `lyanna95` + +## 个人简介 +- 工作经验: 三年 C++ 工作经验 +- 技术栈: C++ Java Python Golang +- 对信息安全感兴趣,参加过多次 CTF 比赛 +- 联系方式: qq: `2689257460` + +## 任务 + +## 01 hello move +- [x] package id: 0xb16bc7340c5949c730eeccf66c2b131e9238299dcfeed895561cfaaa5de08c41 + +## 02 move coin +- [x] My Coin package id : 0xa0caee361a5d6a2b2f6c26d787721da0c90de408ee894702776d43419258f7d7 +- [x] Faucet package id : 0xa0caee361a5d6a2b2f6c26d787721da0c90de408ee894702776d43419258f7d7 +- [x] 转账 `My Coin` hash : JDBp7Rw3WKQwB5RnLz3vR3TrRYUxdA7981B4iycNPz55 + +## 03 move NFT +- [x] nft package id : 0x3d0b6d2feadcae05c7f368fc66d67fd386832391272f048a1a7656bd4363b3f4 +- [x] nft object id : 0x7b5aff840bae5ca11a8445766291ad7aba0952841a046468a92fa0da956bf162 +- [x] 转账 nft hash: 78CH1YEJsdEqTSqdSqCqaMSMhZYdCAwieKcMBsfSUWfL + +## 04 Move Game +- [x] game package id : 0x5eaf7d170bf170de6a43ad16249b6e7a6211dae96c72cf350e8ac984c49d55e2 +- [x] call game hash: m3KD1sgWHi3gH1CL1fSQuR1k3s9DL6iWKSCo3UkCYXN + +## 05 Move Swap +- [ ] swap package id : +- [ ] call swap hash: + +## 06 SDK PTB +- [ ] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图: ![CLI](./img/WechatIMG63.jpg) +- [x] flag hash: 8HHgBjQiFM1Yb1ThDveJrnUbCjQgWfLyQ5ouHsGccGaJ + +## 08 Move CTF Lets Move +- [X] Proof : `IsCp` +- [x] Transaction block: `CnYJSFjaJj5VNs16FH9nR8hi4XsPBPcXTr7goUdojLJg` \ No newline at end of file diff --git a/mover/lyanna95/code/task1/hello_world/Move.lock b/mover/lyanna95/code/task1/hello_world/Move.lock new file mode 100644 index 000000000..1c3d56034 --- /dev/null +++ b/mover/lyanna95/code/task1/hello_world/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "60F2000F4D6DAD240EF371DB3BC521F7BD4C8B814BC59CA473B852B77FDBE53C" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xb16bc7340c5949c730eeccf66c2b131e9238299dcfeed895561cfaaa5de08c41" +latest-published-id = "0xb16bc7340c5949c730eeccf66c2b131e9238299dcfeed895561cfaaa5de08c41" +published-version = "1" diff --git a/mover/lyanna95/code/task1/hello_world/Move.toml b/mover/lyanna95/code/task1/hello_world/Move.toml new file mode 100644 index 000000000..201de1731 --- /dev/null +++ b/mover/lyanna95/code/task1/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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] +hello_world = "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/lyanna95/code/task1/hello_world/sources/hello_world.move b/mover/lyanna95/code/task1/hello_world/sources/hello_world.move new file mode 100644 index 000000000..b783fb247 --- /dev/null +++ b/mover/lyanna95/code/task1/hello_world/sources/hello_world.move @@ -0,0 +1,18 @@ +module hello_world::hello_world { + use std::ascii::{String, string}; + use sui::transfer::transfer; + use sui::tx_context::sender; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"lyanna95"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/lyanna95/code/task1/hello_world/tests/hello_world_tests.move b/mover/lyanna95/code/task1/hello_world/tests/hello_world_tests.move new file mode 100644 index 000000000..8fdf06eec --- /dev/null +++ b/mover/lyanna95/code/task1/hello_world/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_world::hello_world_tests { + // uncomment this line to import the module + // use hello_world::hello_world; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_world() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_world::hello_world_tests::ENotImplemented)] + fun test_hello_world_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/lyanna95/code/task2/coin/Move.lock b/mover/lyanna95/code/task2/coin/Move.lock new file mode 100644 index 000000000..c8ec3f797 --- /dev/null +++ b/mover/lyanna95/code/task2/coin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C375D9ECC52D9CB2FE2CB90C0408D2BD5BCCB5077C2EBA6AE5D1F048D0675A4D" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.26.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x4e16c2793a92268f15f048d0d57aa95ab14b3432987965dda8c7e740e3131733" +latest-published-id = "0x4e16c2793a92268f15f048d0d57aa95ab14b3432987965dda8c7e740e3131733" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xa0caee361a5d6a2b2f6c26d787721da0c90de408ee894702776d43419258f7d7" +latest-published-id = "0xa0caee361a5d6a2b2f6c26d787721da0c90de408ee894702776d43419258f7d7" +published-version = "1" diff --git a/mover/lyanna95/code/task2/coin/Move.toml b/mover/lyanna95/code/task2/coin/Move.toml new file mode 100644 index 000000000..3b79265ff --- /dev/null +++ b/mover/lyanna95/code/task2/coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://github.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] +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/lyanna95/code/task2/coin/sources/coin.move b/mover/lyanna95/code/task2/coin/sources/coin.move new file mode 100644 index 000000000..3abd8f1e4 --- /dev/null +++ b/mover/lyanna95/code/task2/coin/sources/coin.move @@ -0,0 +1,34 @@ +module coin::lyanna95_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct LYANNA95_COIN has drop {} + + fun init(witness: LYANNA95_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"LYANNA95_COIN", + b"lyanna95", + b"lyanna95 coin", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/172299107?v=4")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/lyanna95/code/task2/coin/sources/faucet.move b/mover/lyanna95/code/task2/coin/sources/faucet.move new file mode 100644 index 000000000..e0939bd7c --- /dev/null +++ b/mover/lyanna95/code/task2/coin/sources/faucet.move @@ -0,0 +1,35 @@ +module coin::lyanna95_faucet_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct LYANNA95_FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: LYANNA95_FAUCET_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"LYANNA95_FAUCET", + b"LYANNA95_FAUCET", + b"lyanna95's faucet coin, everyone can access and mutate.", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/172299107?v=4")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury_cap) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/lyanna95/code/task2/coin/tests/coin_tests.move b/mover/lyanna95/code/task2/coin/tests/coin_tests.move new file mode 100644 index 000000000..4cd0af9ad --- /dev/null +++ b/mover/lyanna95/code/task2/coin/tests/coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module coin::coin_tests { + // uncomment this line to import the module + // use coin::coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::coin::coin_tests::ENotImplemented)] + fun test_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/lyanna95/code/task3/nft/Move.lock b/mover/lyanna95/code/task3/nft/Move.lock new file mode 100644 index 000000000..49bf834b8 --- /dev/null +++ b/mover/lyanna95/code/task3/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "598F8F874C952A217CD82EAFF3EC58932307CBD6F4EAAA625ACB910AA12EC3B0" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.26.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x3d0b6d2feadcae05c7f368fc66d67fd386832391272f048a1a7656bd4363b3f4" +latest-published-id = "0x3d0b6d2feadcae05c7f368fc66d67fd386832391272f048a1a7656bd4363b3f4" +published-version = "1" diff --git a/mover/lyanna95/code/task3/nft/Move.toml b/mover/lyanna95/code/task3/nft/Move.toml new file mode 100644 index 000000000..51771cd90 --- /dev/null +++ b/mover/lyanna95/code/task3/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://github.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] +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/lyanna95/code/task3/nft/sources/nft.move b/mover/lyanna95/code/task3/nft/sources/nft.move new file mode 100644 index 000000000..5b21193b9 --- /dev/null +++ b/mover/lyanna95/code/task3/nft/sources/nft.move @@ -0,0 +1,61 @@ +module nft::nft { + + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"lyanna95"), + description: string::utf8(b"lyanna95 NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/172299107?v=4" + ) + }; + transfer::public_transfer(nft, recipient); + } +} \ No newline at end of file diff --git a/mover/lyanna95/code/task3/nft/tests/nft_tests.move b/mover/lyanna95/code/task3/nft/tests/nft_tests.move new file mode 100644 index 000000000..1e3625fad --- /dev/null +++ b/mover/lyanna95/code/task3/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/lyanna95/code/task4/game/Move.lock b/mover/lyanna95/code/task4/game/Move.lock new file mode 100644 index 000000000..b3f83ffa8 --- /dev/null +++ b/mover/lyanna95/code/task4/game/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "7BC81EE7D5B76ECFCD5AB7348D00F8DB7D28EBCF0DDB180BDA6D422CDFEA393C" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xa9ffd8c0ca720d9e4493f18c90c63f86b8b43e6db2069d2a9de224ccf570c43d" +latest-published-id = "0xa9ffd8c0ca720d9e4493f18c90c63f86b8b43e6db2069d2a9de224ccf570c43d" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x5eaf7d170bf170de6a43ad16249b6e7a6211dae96c72cf350e8ac984c49d55e2" +latest-published-id = "0x5eaf7d170bf170de6a43ad16249b6e7a6211dae96c72cf350e8ac984c49d55e2" +published-version = "1" diff --git a/mover/lyanna95/code/task4/game/Move.toml b/mover/lyanna95/code/task4/game/Move.toml new file mode 100644 index 000000000..83788c73a --- /dev/null +++ b/mover/lyanna95/code/task4/game/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "game" +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/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] +game = "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/lyanna95/code/task4/game/sources/game.move b/mover/lyanna95/code/task4/game/sources/game.move new file mode 100644 index 000000000..0317c4299 --- /dev/null +++ b/mover/lyanna95/code/task4/game/sources/game.move @@ -0,0 +1,35 @@ +module game::game { + use std::string; + use sui::event; + use sui::clock::{Self, Clock}; + + public struct GameResultEvent has drop, copy { + user_guess: u64, + random_number: u64, + result: string::String, + } + + public struct RandomResultEvent has drop, copy { + random_result: u64, + } + + fun get_random(clock: &Clock): u64 { + let time = clock::timestamp_ms(clock); + let random_number = time % 10; + random_number + } + + public entry fun play(guess: u64, clock: &Clock) { + assert!(guess < 10, 0); + + let random_number = get_random(clock); + + let result = if (random_number == guess) { + string::utf8(b"you win") + } else { + string::utf8(b"you loss") + }; + + event::emit(GameResultEvent { user_guess: guess, random_number, result }); + } +} diff --git a/mover/lyanna95/code/task4/game/tests/game_tests.move b/mover/lyanna95/code/task4/game/tests/game_tests.move new file mode 100644 index 000000000..c7dbc671a --- /dev/null +++ b/mover/lyanna95/code/task4/game/tests/game_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module game::game_tests { + // uncomment this line to import the module + // use game::game; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_game() { + // pass + } + + #[test, expected_failure(abort_code = ::game::game_tests::ENotImplemented)] + fun test_game_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/lyanna95/img/WechatIMG63.jpg b/mover/lyanna95/img/WechatIMG63.jpg new file mode 100644 index 000000000..371a08d0b Binary files /dev/null and b/mover/lyanna95/img/WechatIMG63.jpg differ diff --git a/mover/lz1998/code/task3/nft/Move.lock b/mover/lz1998/code/task3/nft/Move.lock new file mode 100644 index 000000000..6a6bc9d70 --- /dev/null +++ b/mover/lz1998/code/task3/nft/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9D4FCF5807A34E3110DFBA44AD92FEFEC55EE3DE8CF58F3D302F55D3004E70D1" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xb5ccd04ea0c139f6018ca98183f557a810265e0d04dbabd8f0785af8e8407a38" +latest-published-id = "0xb5ccd04ea0c139f6018ca98183f557a810265e0d04dbabd8f0785af8e8407a38" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xed8c17ffc0aaf31662efdd8adcc8f80d4175bdebede1515319a3ab330ffed533" +latest-published-id = "0xed8c17ffc0aaf31662efdd8adcc8f80d4175bdebede1515319a3ab330ffed533" +published-version = "1" diff --git a/mover/lz1998/code/task3/nft/Move.toml b/mover/lz1998/code/task3/nft/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/lz1998/code/task3/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/lz1998/code/task3/nft/sources/nft.move b/mover/lz1998/code/task3/nft/sources/nft.move new file mode 100644 index 000000000..38ccb7c2a --- /dev/null +++ b/mover/lz1998/code/task3/nft/sources/nft.move @@ -0,0 +1,61 @@ +module nft::nft { + + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"lz1998"), + description: string::utf8(b"lz1998 NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/9082086?v=4" + ) + }; + transfer::public_transfer(nft, recipient); + } +} \ No newline at end of file diff --git a/mover/lz1998/code/task3/nft/tests/nft_tests.move b/mover/lz1998/code/task3/nft/tests/nft_tests.move new file mode 100644 index 000000000..1e3625fad --- /dev/null +++ b/mover/lz1998/code/task3/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/lz1998/code/task4/game/Move.lock b/mover/lz1998/code/task4/game/Move.lock new file mode 100644 index 000000000..e55dcb138 --- /dev/null +++ b/mover/lz1998/code/task4/game/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "7BC81EE7D5B76ECFCD5AB7348D00F8DB7D28EBCF0DDB180BDA6D422CDFEA393C" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x33ad0b7ab58947bdff38575d4c4fd54a8a5b5fb8a344b0cbe6f4c8c5d8a0a8e7" +latest-published-id = "0x33ad0b7ab58947bdff38575d4c4fd54a8a5b5fb8a344b0cbe6f4c8c5d8a0a8e7" +published-version = "1" diff --git a/mover/lz1998/code/task4/game/Move.toml b/mover/lz1998/code/task4/game/Move.toml new file mode 100644 index 000000000..83788c73a --- /dev/null +++ b/mover/lz1998/code/task4/game/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "game" +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/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] +game = "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/lz1998/code/task4/game/sources/game.move b/mover/lz1998/code/task4/game/sources/game.move new file mode 100644 index 000000000..117deb3f8 --- /dev/null +++ b/mover/lz1998/code/task4/game/sources/game.move @@ -0,0 +1,35 @@ +module game::game { + use std::string; + use sui::event; + use sui::clock::{Self, Clock}; + + public struct GameResultEvent has drop, copy { + user_guess: u64, + random_number: u64, + result: string::String, + } + + public struct RandomResultEvent has drop, copy { + random_result: u64, + } + + fun get_random(clock: &Clock): u64 { + let time = clock::timestamp_ms(clock); + let random_number = time % 10; + random_number + } + + public entry fun play(guess: u64, clock: &Clock) { + assert!(guess < 10, 0); + + let random_number = get_random(clock); + + let result = if (random_number == guess) { + string::utf8(b"you win") + } else { + string::utf8(b"you loss") + }; + + event::emit(GameResultEvent { user_guess: guess, random_number, result }); + } +} diff --git a/mover/lz1998/code/task4/game/tests/game_tests.move b/mover/lz1998/code/task4/game/tests/game_tests.move new file mode 100644 index 000000000..c7dbc671a --- /dev/null +++ b/mover/lz1998/code/task4/game/tests/game_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module game::game_tests { + // uncomment this line to import the module + // use game::game; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_game() { + // pass + } + + #[test, expected_failure(abort_code = ::game::game_tests::ENotImplemented)] + fun test_game_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/lz1998/notes/task7/img.png b/mover/lz1998/notes/task7/img.png new file mode 100644 index 000000000..a17705403 Binary files /dev/null and b/mover/lz1998/notes/task7/img.png differ diff --git a/mover/lz1998/notes/task8/img.png b/mover/lz1998/notes/task8/img.png new file mode 100644 index 000000000..7cc74106b Binary files /dev/null and b/mover/lz1998/notes/task8/img.png differ diff --git a/mover/lz1998/readme.md b/mover/lz1998/readme.md index 6668a0d26..c6de07795 100644 --- a/mover/lz1998/readme.md +++ b/mover/lz1998/readme.md @@ -20,13 +20,13 @@ - [x] 转账 `My Coin` hash: 2nAFy7huKeX1R6DGJQwzvTrEJ5V8iYjdf69V5H9Hrfyn ## 03 move NFT -- [] nft package id : -- [] nft object id : -- [] 转账 nft hash: +- [x] nft package id : 0xed8c17ffc0aaf31662efdd8adcc8f80d4175bdebede1515319a3ab330ffed533 +- [x] nft object id : 0x2b624e0e19325eb2b071d175a8578ce59a475b8b6b28640c64bbd757fec3bd42 +- [x] 转账 nft hash: 6aBxY5548EXg7fVMvfQXyjfQce1QuXqkkasVo3MT1uJh ## 04 Move Game -- [] game package id : -- [] call game hash: +- [x] game package id : 0x33ad0b7ab58947bdff38575d4c4fd54a8a5b5fb8a344b0cbe6f4c8c5d8a0a8e7 +- [x] call game hash: Fh1hjxaDcDzccfA7WwGHjYbzbuUM2DZEdPvEKG7EtJsj ## 05 Move Swap - [] swap package id : @@ -34,3 +34,11 @@ ## 06 SDK PTB - [] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图: ![CLI](./notes/task7/img.png) +- [x] flag hash: 9fhpBMw3hyeVwpKteVuDPwqhhicRDvMjxnSjs8srZqD7 + +## 08 Move CTF Lets Move +- [x] CLI call 截图: ![CLI](./notes/task8/img.png) +- [x] Transaction block: `FRnQ3ciz1Ujhq85rPt2roTWimo8zsAt4VHPPQULrLuow` \ No newline at end of file diff --git a/mover/m4sk93/readme.md b/mover/m4sk93/readme.md index 5c4894ead..fbc32b011 100644 --- a/mover/m4sk93/readme.md +++ b/mover/m4sk93/readme.md @@ -53,3 +53,26 @@ mainnet: ## 06 Dapp-kit SDK PTB - [X] save hash :7Mt6Cu9xSEWRxCdPsczZEbi6NBCYYa2JnBN21pz3Nifh + +## 07 Move CTF Check In +- [X] CLI call (忘记截图了): +``` +#!/bin/bash + +PackageID=0x60695ee31f93add1f79909c884a55dff7e5f140bbd2e495819966bd2f7971d42 +FlagStr_Object=0x011f9404e6f167e549b617a53eea058029167a2beac26c624cbc3550e04b5ad2 + +github_id="m4sk93" +string="N21X" +rand="0x8" + +sui client call --package $PackageID \ + --module check_in \ + --function get_flag \ + --args $string $github_id $FlagStr_Object $rand +``` +- [X] flag hash : BNKqqwLPDiA1th71C1qp8nAMzdYFC8WhkXaBjoNyZhWD + +## 08 Move CTF Lets Move +- [X] proof : [0xe7,0xc6,0,0,0,0,0,0] +- [x] flag hash : 7uCNDToLAkLm7Ks1bUJirqNRjNrZ2vCbwyYEvFUHGuB9 diff --git a/mover/mameikagou/Readme.md b/mover/mameikagou/Readme.md new file mode 100644 index 000000000..f76f43ebd --- /dev/null +++ b/mover/mameikagou/Readme.md @@ -0,0 +1,21 @@ +## 基本信息 +- Sui钱包地址: +`0x15c1f5d933039c05b783804b8f5986af66bfa0b3dd14cef7becae705b218d6e0` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `mameikagou` + +## 个人简介 +- 工作经验: 无 +- 技术栈: `前端常用技术栈: Typescript, Vue, React` +> 重要提示 请认真写自己的简介 +- 成都某校区块链专业学生 +- 擅长前端开发, 想从前端转web3 +- 联系方式: tg: `@Oxmrlone` + +## 任务 + +## 01 hello move +- [x] Sui cli version: `sui 1.26.1-homebrew` +- [x] Sui钱包截图: ![Sui钱包截图](./images/wallet.png) +- [x] package id:` 0xf0e6ded55ba252e800774a86f1f66aeb97309fc5e97137a055737235e1ec6102` +- [x] package id 在 scan上的查看截图:![Scan截图](./images/scan.png) \ No newline at end of file diff --git a/mover/mameikagou/code/task1/Readme.md b/mover/mameikagou/code/task1/Readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/mameikagou/code/task1/hello_mameikagou/Move.toml b/mover/mameikagou/code/task1/hello_mameikagou/Move.toml new file mode 100644 index 000000000..f6bf62a02 --- /dev/null +++ b/mover/mameikagou/code/task1/hello_mameikagou/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello" +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] +hello = "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/mameikagou/code/task1/hello_mameikagou/sources/hello.move b/mover/mameikagou/code/task1/hello_mameikagou/sources/hello.move new file mode 100644 index 000000000..3c9abb483 --- /dev/null +++ b/mover/mameikagou/code/task1/hello_mameikagou/sources/hello.move @@ -0,0 +1,21 @@ + +/// Module: hello +module hello::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"Hello, mameikagou!"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/mameikagou/code/task1/hello_mameikagou/tests/hello_tests.move b/mover/mameikagou/code/task1/hello_mameikagou/tests/hello_tests.move new file mode 100644 index 000000000..8253c0e1a --- /dev/null +++ b/mover/mameikagou/code/task1/hello_mameikagou/tests/hello_tests.move @@ -0,0 +1,19 @@ + +#[test_only] +module hello::hello_tests { + // uncomment this line to import the module + // use hello::hello; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello() { + // pass + } + + #[test, expected_failure(abort_code = ::hello::hello_tests::ENotImplemented)] + fun test_hello_fail() { + abort ENotImplemented + } +} + diff --git a/mover/mameikagou/images/scan.png b/mover/mameikagou/images/scan.png new file mode 100644 index 000000000..17c0dfa12 Binary files /dev/null and b/mover/mameikagou/images/scan.png differ diff --git a/mover/mameikagou/images/wallet.png b/mover/mameikagou/images/wallet.png new file mode 100644 index 000000000..c916ec998 Binary files /dev/null and b/mover/mameikagou/images/wallet.png differ diff --git a/mover/manonloki/code/hello_move/readme.md b/mover/manonloki/code/hello_move/readme.md index fd26406aa..a9d78035b 100644 --- a/mover/manonloki/code/hello_move/readme.md +++ b/mover/manonloki/code/hello_move/readme.md @@ -51,7 +51,7 @@ sui move build ## 发布上链 ``` -sui client publish --gas-budget 100000000 +sui client publish ``` ## 结果 diff --git a/mover/misssonder/code/task1/hello_move/Move.lock b/mover/misssonder/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..9afa66e98 --- /dev/null +++ b/mover/misssonder/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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 = "0x523de44d74d8b9d08a1e09fd608d28c80004f4dbff2305288d6a7e87f4fe78cf" +latest-published-id = "0x523de44d74d8b9d08a1e09fd608d28c80004f4dbff2305288d6a7e87f4fe78cf" +published-version = "1" diff --git a/mover/misssonder/code/task1/hello_move/Move.toml b/mover/misssonder/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/misssonder/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/misssonder/code/task1/hello_move/sources/hello_move.move b/mover/misssonder/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..dc89778b4 --- /dev/null +++ b/mover/misssonder/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"misssonder"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/misssonder/code/task1/hello_move/tests/hello_move_tests.move b/mover/misssonder/code/task1/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/misssonder/code/task1/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/misssonder/code/task3/nft/Move.lock b/mover/misssonder/code/task3/nft/Move.lock new file mode 100644 index 000000000..4058c1451 --- /dev/null +++ b/mover/misssonder/code/task3/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "598F8F874C952A217CD82EAFF3EC58932307CBD6F4EAAA625ACB910AA12EC3B0" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", 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.mainnet] +chain-id = "35834a8a" +original-published-id = "0x2ad2d835fb86002b1bfd4f97412494f735723b2c3bec2bce7348e360237d375e" +latest-published-id = "0x2ad2d835fb86002b1bfd4f97412494f735723b2c3bec2bce7348e360237d375e" +published-version = "1" diff --git a/mover/misssonder/code/task3/nft/Move.toml b/mover/misssonder/code/task3/nft/Move.toml new file mode 100644 index 000000000..51771cd90 --- /dev/null +++ b/mover/misssonder/code/task3/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://github.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] +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/misssonder/code/task3/nft/sources/nft.move b/mover/misssonder/code/task3/nft/sources/nft.move new file mode 100644 index 000000000..87198d619 --- /dev/null +++ b/mover/misssonder/code/task3/nft/sources/nft.move @@ -0,0 +1,61 @@ +module nft::nft { + + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"misssonder"), + description: string::utf8(b"misssonder NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/44472482?v=4" + ) + }; + transfer::public_transfer(nft, recipient); + } +} \ No newline at end of file diff --git a/mover/misssonder/code/task3/nft/tests/nft_tests.move b/mover/misssonder/code/task3/nft/tests/nft_tests.move new file mode 100644 index 000000000..1e3625fad --- /dev/null +++ b/mover/misssonder/code/task3/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/misssonder/notes/sui-task7.png b/mover/misssonder/notes/sui-task7.png new file mode 100644 index 000000000..e70e01830 Binary files /dev/null and b/mover/misssonder/notes/sui-task7.png differ diff --git a/mover/misssonder/readme.md b/mover/misssonder/readme.md new file mode 100644 index 000000000..d6f1c4968 --- /dev/null +++ b/mover/misssonder/readme.md @@ -0,0 +1,43 @@ +## 基本信息 +- Sui钱包地址: `0xf3187c617869ebd573c80044419a4f02e4496eb351e277da47b14bb459154caa` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `misssonder` + +## 个人简介 +- 工作经验: 3年 +- 技术栈: `Rust` `Golang` +- 对sui感兴趣,喜欢合约开发 + +## 任务 + +## 01 hello move +- [x] package id: 0x523de44d74d8b9d08a1e09fd608d28c80004f4dbff2305288d6a7e87f4fe78cf + +## 02 move coin +- [ ] My Coin package id : +- [ ] Faucet package id : +- [ ] 转账 `My Coin` hash: + +## 03 move NFT +- [x] nft package id : 0x2ad2d835fb86002b1bfd4f97412494f735723b2c3bec2bce7348e360237d375e +- [x] nft object id : 0xef8e16f13146d14ec59685630045144d5544a5e7512aedfc3e297167ae865c36 +- [x] 转账 nft hash: E1daTGZUPZ1NuCL4gtoM76A2husppzKxctyJzMe1Mtwq + +## 04 Move Game +- [ ] game package id : +- [ ] call game hash: + +## 05 Move Swap +- [ ] swap package id : +- [ ] call swap hash: + +## 06 SDK PTB +- [ ] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图: ![](./notes/sui-task7.png) +- [x] flag hash: AwgvPfx21erH3XRdDFyrvsqMZKqgp7GFo6pi8UVELHT4 + +## 08 Move CTF Lets Move +- [ ] CLI call 截图: +- [ ] Transaction block: `` \ No newline at end of file diff --git a/mover/morefreeze/code/task1/Move.lock b/mover/morefreeze/code/task1/Move.lock new file mode 100644 index 000000000..fe8b56596 --- /dev/null +++ b/mover/morefreeze/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E03D8CCB139FD5AAA6C3DF53281A5C2A7267CEEDE876153DF254B492715959CB" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x2e716388f43a66fc8ecf227bf5c29d2b6e475a3eff0c11177c78e1697bb4390a" +latest-published-id = "0x2e716388f43a66fc8ecf227bf5c29d2b6e475a3eff0c11177c78e1697bb4390a" +published-version = "1" diff --git a/mover/morefreeze/code/task1/Move.toml b/mover/morefreeze/code/task1/Move.toml new file mode 100644 index 000000000..ade8a6442 --- /dev/null +++ b/mover/morefreeze/code/task1/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "hello_move" +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/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] +hello_move = "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/morefreeze/code/task1/sources/hello_move.move b/mover/morefreeze/code/task1/sources/hello_move.move new file mode 100644 index 000000000..14e28b068 --- /dev/null +++ b/mover/morefreeze/code/task1/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"morefreeze"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/morefreeze/code/task1/tests/hello_move_tests.move b/mover/morefreeze/code/task1/tests/hello_move_tests.move new file mode 100644 index 000000000..07ea8bb3f --- /dev/null +++ b/mover/morefreeze/code/task1/tests/hello_move_tests.move @@ -0,0 +1,17 @@ +// #[test_only] +// module hello_move::hello_move_tests { +// // uncomment this line to import the module +// // use hello_move::hello_move; +// +// const ENotImplemented: u64 = 0; +// +// #[test] +// fun test_hello_move() { +// hello_move::hello_move::hello_move(); +// } +// +// #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] +// fun test_hello_move_fail() { +// abort ENotImplemented +// } +// } diff --git a/mover/morefreeze/images/img_1.png b/mover/morefreeze/images/img_1.png new file mode 100644 index 000000000..eca3e9966 Binary files /dev/null and b/mover/morefreeze/images/img_1.png differ diff --git a/mover/morefreeze/images/img_2.png b/mover/morefreeze/images/img_2.png new file mode 100644 index 000000000..4e03cd2d1 Binary files /dev/null and b/mover/morefreeze/images/img_2.png differ diff --git a/mover/morefreeze/readme.md b/mover/morefreeze/readme.md new file mode 100644 index 000000000..f90500eef --- /dev/null +++ b/mover/morefreeze/readme.md @@ -0,0 +1,28 @@ +## 基本信息 + +- Sui钱包地址: 0xfcb1bfb86bb70fcaf997bd4593ddfbab20c6107fded0db4b28a61910dec91591 + + > 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 + +- github: morefreeze + +## 个人简介 + +- 工作经验: 4年 +- 技术栈: Nodejs\Java +- 刚接触sui链,希望通过move学习能进入sui链生态 +- 联系方式: morefreeze@Gmail.com + +## 任务 + +## 01 hello move + +- [x] Sui cli version: 1.25.1 +- [x] package id: 0x2e716388f43a66fc8ecf227bf5c29d2b6e475a3eff0c11177c78e1697bb4390a +- [x] Sui钱包截图: ![Sui钱包截图](./images/img_1.png) +- [x] package id 在 scan上的查看截图:![Scan截图](./images/img_2.png) + + + + + diff --git a/mover/move-expert/notes/task1.md b/mover/move-expert/notes/task1.md index ff9026f98..79520fc6e 100644 --- a/mover/move-expert/notes/task1.md +++ b/mover/move-expert/notes/task1.md @@ -151,7 +151,7 @@ Transaction Digest: CY8cdzdakfjJnx4V1aHnzgbAj8rALZbAEUWMmq6745Ya 调用合约函数: ```bash -❯ sui client call --package 0xe5ef33a2f877b7bb5a19c448649f5547284f2bcc33126f952f7ed6e7fb36b996 --module hello_word --function mint --gas-budget 1000000000 +❯ sui client call --package 0xe5ef33a2f877b7bb5a19c448649f5547284f2bcc33126f952f7ed6e7fb36b996 --module hello_word --function mint 0 [warn] Client/Server api version mismatch, client api version : 1.23.0, server api version : 1.22.0 Transaction Digest: HAXoyWTucVwFtmysiXRoDfU8ErLsvrqMn7FKA24KUiqa ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ diff --git a/mover/move-expert/notes/task2.md b/mover/move-expert/notes/task2.md index fdca45405..537c67dfc 100644 --- a/mover/move-expert/notes/task2.md +++ b/mover/move-expert/notes/task2.md @@ -206,7 +206,7 @@ Transaction Digest: 5Dvv55B4DN6HKQm2opxoJ9J7hzdeVZRpSU8E732kExPL 验证合约:PackageID: 后跟的是package参数,ObjectType: 0x2::coin::TreasuryCap上的objectid是args后的参数,如果验证的时候是move410coin要找到move410coin::MOVE410COIN对应的objectid,我就是找错了,找成另外一个token的objectid,卡了一阵。 ```bash -❯ sui client call --package 0xe0d020485b78bb3a7b8f6352fcb4b4253f4843384dd5330d33ff9fad882a4e5f --module move410coin --function mint --gas-budget 100000000 --args 0xeac8a7c99a05646e0984984229a61a6424f5edbe83dad3fe4e2030236881dd23 1 0xc235981c9b3f4927bd2f5ec004c6bdf870783c40494e9e0e84e2b273884cc149 +❯ sui client call --package 0xe0d020485b78bb3a7b8f6352fcb4b4253f4843384dd5330d33ff9fad882a4e5f --module move410coin --function mint --args 0xeac8a7c99a05646e0984984229a61a6424f5edbe83dad3fe4e2030236881dd23 1 0xc235981c9b3f4927bd2f5ec004c6bdf870783c40494e9e0e84e2b273884cc149 [warn] Client/Server api version mismatch, client api version : 1.23.0, server api version : 1.22.0 Transaction Digest: 2rLWBwL7vXsrf1zA5JpcaLWijFp3Taq1F3gneRghJNhh ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ diff --git a/mover/move-expert/notes/task5.md b/mover/move-expert/notes/task5.md index 811340e46..22fba524f 100644 --- a/mover/move-expert/notes/task5.md +++ b/mover/move-expert/notes/task5.md @@ -165,7 +165,7 @@ Transaction Digest: wtcEp5Qp9Vvz1N1wMFPWHw94wcrmbpoQoXeuvTLBbS8 铸造代币move410coin: ```bash -❯ sui client call --package 0xe0d020485b78bb3a7b8f6352fcb4b4253f4843384dd5330d33ff9fad882a4e5f --module move410coin --function mint --gas-budget 100000000 --args 0xeac8a7c99a05646e0984984229a61a6424f5edbe83dad3fe4e2030236881dd23 1000000000000 0x7c5b23487cf42f99d980913cdc812f07c720d5da039ca89336e8d1d5253e7bfc +❯ sui client call --package 0xe0d020485b78bb3a7b8f6352fcb4b4253f4843384dd5330d33ff9fad882a4e5f --module move410coin --function mint --args 0xeac8a7c99a05646e0984984229a61a6424f5edbe83dad3fe4e2030236881dd23 1000000000000 0x7c5b23487cf42f99d980913cdc812f07c720d5da039ca89336e8d1d5253e7bfc Transaction Digest: Co9pqFQEh7nWwi5DnE2kV2ZDHxYhV47L3SMmt7nxHwEh ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ Transaction Data │ @@ -305,7 +305,7 @@ Transaction Digest: Co9pqFQEh7nWwi5DnE2kV2ZDHxYhV47L3SMmt7nxHwEh 铸造代币sui410coin: ```bash -❯ sui client call --package 0xe0d020485b78bb3a7b8f6352fcb4b4253f4843384dd5330d33ff9fad882a4e5f --module sui410coin --function mint --gas-budget 100000000 --args 0x1289226cdff8183285d865a3ab61a96c9d277d7b3e372520ba0a3da17811a728 8100000000000 0x7c5b23487cf42f99d980913cdc812f07c720d5da039ca89336e8d1d5253e7bfc +❯ sui client call --package 0xe0d020485b78bb3a7b8f6352fcb4b4253f4843384dd5330d33ff9fad882a4e5f --module sui410coin --function mint --args 0x1289226cdff8183285d865a3ab61a96c9d277d7b3e372520ba0a3da17811a728 8100000000000 0x7c5b23487cf42f99d980913cdc812f07c720d5da039ca89336e8d1d5253e7bfc Transaction Digest: AdQwQ9uX4DkyDyTa5dpCUdNa3TXo575YSk2nzrwGSydb ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ Transaction Data │ diff --git a/mover/move-student/code/task1/sources/task1.md b/mover/move-student/code/task1/sources/task1.md index aeaf34839..f687e673c 100644 --- a/mover/move-student/code/task1/sources/task1.md +++ b/mover/move-student/code/task1/sources/task1.md @@ -157,7 +157,7 @@ Transaction Digest: 9rBDoaWBsAc2KcPsWCHmgDBsdTyAZdzFLohY4awHYgow 调用合约函数: ```bash -❯ sui client call --package 0xe5ef33a2f877b7bb5a19c448649f5547284f2bcc33126f952f7ed6e7fb36b996 --module hello_word --function mint --gas-budget 1000000000 +❯ sui client call --package 0xe5ef33a2f877b7bb5a19c448649f5547284f2bcc33126f952f7ed6e7fb36b996 --module hello_word --function mint 0 [warn] Client/Server api version mismatch, client api version : 1.23.0, server api version : 1.22.0 Transaction Digest: HAXoyWTucVwFtmysiXRoDfU8ErLsvrqMn7FKA24KUiqa ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ diff --git a/mover/mozartb/code/readme.md b/mover/mozartb/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/mozartb/code/task1/Move.lock b/mover/mozartb/code/task1/Move.lock new file mode 100644 index 000000000..4ec43ffb1 --- /dev/null +++ b/mover/mozartb/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "15C92DB7143AE506431E8FE14625189CE312456B12D01A47D7711D0BFBD6A124" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xe0d0ebad6d5d9ca163084fed303a0d1c97675412c5efbe7512c77c4eb14257e0" +latest-published-id = "0xe0d0ebad6d5d9ca163084fed303a0d1c97675412c5efbe7512c77c4eb14257e0" +published-version = "1" diff --git a/mover/mozartb/code/task1/Move.toml b/mover/mozartb/code/task1/Move.toml new file mode 100644 index 000000000..2fd3b0f2a --- /dev/null +++ b/mover/mozartb/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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/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] +hello_move = "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/mozartb/code/task1/sources/hello_move.move b/mover/mozartb/code/task1/sources/hello_move.move new file mode 100644 index 000000000..c7a79fff6 --- /dev/null +++ b/mover/mozartb/code/task1/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"move"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/mozartb/code/task1/tests/hello_move_tests.move b/mover/mozartb/code/task1/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/mozartb/code/task1/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/mozartb/images/81e280b30df63fd89d12ee00f75f612.png b/mover/mozartb/images/81e280b30df63fd89d12ee00f75f612.png new file mode 100644 index 000000000..e40d961b3 Binary files /dev/null and b/mover/mozartb/images/81e280b30df63fd89d12ee00f75f612.png differ diff --git a/mover/mozartb/images/b5f2f93aa299bfe51767f29c4230926.png b/mover/mozartb/images/b5f2f93aa299bfe51767f29c4230926.png new file mode 100644 index 000000000..ce0f189e9 Binary files /dev/null and b/mover/mozartb/images/b5f2f93aa299bfe51767f29c4230926.png differ diff --git a/mover/mozartb/notes/readme.md b/mover/mozartb/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/mozartb/readme.md b/mover/mozartb/readme.md new file mode 100644 index 000000000..fec8eb021 --- /dev/null +++ b/mover/mozartb/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xb13b0c588da16728021721fd6149d1b57e5dc2560c3d911a66d2250bfc2eb290` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `自己的githubid` + +## 个人简介 +- 工作经验: 0年 +- 技术栈: 无 +> 重要提示 请认真写自己的简介 +- 无开发经验,对区块链特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `mozartbb` + +## 任务 + +## 01 hello move +- [] Sui cli version:sui 1.27.0-e5f080922d56-dirty +- [] Sui钱包截图: ![Sui钱包截图](./images/81e280b30df63fd89d12ee00f75f612.png) +- [] package id: 0xe0d0ebad6d5d9ca163084fed303a0d1c97675412c5efbe7512c77c4eb14257e0 +- [] package id 在 scan上的查看截图:![Scan截图](./images/b5f2f93aa299bfe51767f29c4230926.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/n-WN/code/readme.md b/mover/n-WN/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/n-WN/code/task1/Move.lock b/mover/n-WN/code/task1/Move.lock new file mode 100644 index 000000000..3e8afbec6 --- /dev/null +++ b/mover/n-WN/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2E267C18D553336099CDD31F7063857679825E46CD06EC67CC7F7FB0C20317C1" +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 = "0x252cc738a16f3ad050b00c4661205b9acd75c65467edb05230a03b2c1d61e329" +latest-published-id = "0x252cc738a16f3ad050b00c4661205b9acd75c65467edb05230a03b2c1d61e329" +published-version = "1" diff --git a/mover/n-WN/code/task1/Move.toml b/mover/n-WN/code/task1/Move.toml new file mode 100644 index 000000000..e75e497eb --- /dev/null +++ b/mover/n-WN/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1" +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] +task1 = "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/n-WN/code/task1/sources/task1.move b/mover/n-WN/code/task1/sources/task1.move new file mode 100644 index 000000000..f13b652bd --- /dev/null +++ b/mover/n-WN/code/task1/sources/task1.move @@ -0,0 +1,19 @@ +module task1::hello { + use sui::object::{Self, UID}; + use sui::tx_context::{Self, TxContext}; + use std::string::{Self, String}; + use sui::transfer; + + public struct Hello has key { + id: UID, + str: String, + } + + public fun say_hello(ctx: &mut TxContext) { + let word = Hello { + id: object::new(ctx), + str: string::utf8(b"Hello n-WN"), + }; + transfer::transfer(word, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/n-WN/code/task1/tests/task1_tests.move b/mover/n-WN/code/task1/tests/task1_tests.move new file mode 100644 index 000000000..31fb8c1ac --- /dev/null +++ b/mover/n-WN/code/task1/tests/task1_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task1::task1_tests { + // uncomment this line to import the module + // use task1::task1; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task1() { + // pass + } + + #[test, expected_failure(abort_code = ::task1::task1_tests::ENotImplemented)] + fun test_task1_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/n-WN/images/web_scan.jpeg b/mover/n-WN/images/web_scan.jpeg new file mode 100644 index 000000000..020b29380 Binary files /dev/null and b/mover/n-WN/images/web_scan.jpeg differ diff --git a/mover/n-WN/images/web_wallet.jpeg b/mover/n-WN/images/web_wallet.jpeg new file mode 100644 index 000000000..b3be69dda Binary files /dev/null and b/mover/n-WN/images/web_wallet.jpeg differ diff --git a/mover/n-WN/notes/readme.md b/mover/n-WN/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/n-WN/readme.md b/mover/n-WN/readme.md new file mode 100644 index 000000000..9e369054c --- /dev/null +++ b/mover/n-WN/readme.md @@ -0,0 +1,53 @@ +## 基本信息 +- Sui钱包地址: `0x8a7bfb8d9dab117b532affcc30c35be3bb2ee44d76b84633c65e5790d73a5fe1` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `n-WN` + +## 个人简介 +- 工作经验: 5 年 +- 技术栈: `Rust` `C++` `Python` `Golang` `Typescript` `Vue` `React` `Nodejs` `Docker` `K8s` `Ethereum` `ZK` +> 重要提示 请认真写自己的简介 +- 熟悉常见编程语言, 爱好 ZK, 尝试通过 Move 学习区块链技术, 希望能够在这里学到更多的东西 + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.27.2-homebrew +- [x] Sui钱包截图: ![Sui钱包截图](./images/web_wallet.jpeg) +- [x] package id: 0x252cc738a16f3ad050b00c4661205b9acd75c65467edb05230a03b2c1d61e329 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/web_scan.jpeg) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/oliverxl/code/readme.md b/mover/oliverxl/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/oliverxl/code/task1/hello_move/Move.toml b/mover/oliverxl/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/oliverxl/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/oliverxl/code/task1/hello_move/sources/hello_move.move b/mover/oliverxl/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..83faf0988 --- /dev/null +++ b/mover/oliverxl/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"oliverxl"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/oliverxl/code/task1/hello_move/tests/hello_move_tests.move b/mover/oliverxl/code/task1/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/oliverxl/code/task1/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/oliverxl/code/task2/move_coin/Move.toml b/mover/oliverxl/code/task2/move_coin/Move.toml new file mode 100644 index 000000000..0b40bd6dd --- /dev/null +++ b/mover/oliverxl/code/task2/move_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "move_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/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] +move_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/oliverxl/code/task2/move_coin/Readme.MD b/mover/oliverxl/code/task2/move_coin/Readme.MD new file mode 100644 index 000000000..f89cc4f9d --- /dev/null +++ b/mover/oliverxl/code/task2/move_coin/Readme.MD @@ -0,0 +1,186 @@ +Transaction Digest: HiiKWK7eshe6cnCvVRZUTjsKBGp5oFcKRW47TNXbGomp +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 │ +│ Gas Owner: 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 759 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x6c6c5de5391a0bb0073731f26884f23059f8e0f90fc65ca458bd0f9f17506416 │ +│ │ Version: 292648714 │ +│ │ Digest: 8eQLEo3VS8jueUhapENBqnvSgNHv9ieMMwU28hBzS1oq │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 3q45I5RcXl9Zf3v1w16WWLgRSLWCAb0zHsS5+t/z96X8v3I+PJoJOfLcSrAnmiS2KQtM8qUBtA2tYSizHugeCw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: HiiKWK7eshe6cnCvVRZUTjsKBGp5oFcKRW47TNXbGomp │ +│ Status: Success │ +│ Executed Epoch: 459 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x06051a8551294f499805069646968f923104f3f953f1652f86c5c5da3090d58b │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 3fYS4JzDNXA4u9WxNQqTFZXFzBu2ysiYVxS1hApUiV2P │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0c2427d05e4d24b5df209bca353dcb5cd7c98cfe0dad06ae2878572e6ff9aeaa │ +│ │ Owner: Immutable │ +│ │ Version: 292648715 │ +│ │ Digest: C3bAENcsU7LnxtLiZJsjwR4dWp3et35uXirwAp244jnG │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0ef29f4dbc5450f9ba42b4d55dcdc38bf7a320bb437f8b5b6ac47953571e2cef │ +│ │ Owner: Account Address ( 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 ) │ +│ │ Version: 292648715 │ +│ │ Digest: 6UvomjBXGESVvWvc75gq2LV9LETCDPbnPKSN1r3VTp7 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x1fb8df0f3a5ebec1ad34951d6f567e7d7a8e947ce2676e99c136ae877ad4738f │ +│ │ Owner: Account Address ( 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 ) │ +│ │ Version: 292648715 │ +│ │ Digest: 7GzArZc8zn6Bq6WD2yjuXNuy6MdQGv1okjyQcFsKps3n │ +│ └── │ +│ ┌── │ +│ │ ID: 0x9a5f9c160d3a3712b2263ce4f5141c3d419dd42f1b764e7cccd8926d184381a1 │ +│ │ Owner: Immutable │ +│ │ Version: 292648715 │ +│ │ Digest: GyYuu7ST8vKGB1LU19aSFkASjPJpVFfMVqjKqTThHPYb │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf073bb8d6decd8f81c98afbb7fd811b0f9b5334d7564e105149eee667a1ee81e │ +│ │ Owner: Shared( 292648715 ) │ +│ │ Version: 292648715 │ +│ │ Digest: DUNokbDJ9ipFHjrTzWTicCrVU58YNKb77HNSy7BBS8Vc │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x6c6c5de5391a0bb0073731f26884f23059f8e0f90fc65ca458bd0f9f17506416 │ +│ │ Owner: Account Address ( 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 ) │ +│ │ Version: 292648715 │ +│ │ Digest: 14axXQ4tBPAAwtd5KkympxhFhY49wk1smB8CbNhiAZRE │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x6c6c5de5391a0bb0073731f26884f23059f8e0f90fc65ca458bd0f9f17506416 │ +│ │ Owner: Account Address ( 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 ) │ +│ │ Version: 292648715 │ +│ │ Digest: 14axXQ4tBPAAwtd5KkympxhFhY49wk1smB8CbNhiAZRE │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 22275600 MIST │ +│ Computation Cost: 759000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ C7H22EWGgQahtHctWByQKA8g7daGcpReQUHb8JZswKpj │ +│ EY8ZaDkjhyBXX8iu9HXPQWznBp4QUcpAaTuwXSheDVuq │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0c2427d05e4d24b5df209bca353dcb5cd7c98cfe0dad06ae2878572e6ff9aeaa │ +│ │ Sender: 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x6051a8551294f499805069646968f923104f3f953f1652f86c5c5da3090d58b::oliverxl_faucet::OLIVERXL_FAUCET> │ +│ │ Version: 292648715 │ +│ │ Digest: C3bAENcsU7LnxtLiZJsjwR4dWp3et35uXirwAp244jnG │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x0ef29f4dbc5450f9ba42b4d55dcdc38bf7a320bb437f8b5b6ac47953571e2cef │ +│ │ Sender: 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 │ +│ │ Owner: Account Address ( 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x6051a8551294f499805069646968f923104f3f953f1652f86c5c5da3090d58b::oliverxl_coin::OLIVERXL_COIN> │ +│ │ Version: 292648715 │ +│ │ Digest: 6UvomjBXGESVvWvc75gq2LV9LETCDPbnPKSN1r3VTp7 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x1fb8df0f3a5ebec1ad34951d6f567e7d7a8e947ce2676e99c136ae877ad4738f │ +│ │ Sender: 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 │ +│ │ Owner: Account Address ( 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 292648715 │ +│ │ Digest: 7GzArZc8zn6Bq6WD2yjuXNuy6MdQGv1okjyQcFsKps3n │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x9a5f9c160d3a3712b2263ce4f5141c3d419dd42f1b764e7cccd8926d184381a1 │ +│ │ Sender: 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0x6051a8551294f499805069646968f923104f3f953f1652f86c5c5da3090d58b::oliverxl_coin::OLIVERXL_COIN> │ +│ │ Version: 292648715 │ +│ │ Digest: GyYuu7ST8vKGB1LU19aSFkASjPJpVFfMVqjKqTThHPYb │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xf073bb8d6decd8f81c98afbb7fd811b0f9b5334d7564e105149eee667a1ee81e │ +│ │ Sender: 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 │ +│ │ Owner: Shared( 292648715 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0x6051a8551294f499805069646968f923104f3f953f1652f86c5c5da3090d58b::oliverxl_faucet::OLIVERXL_FAUCET> │ +│ │ Version: 292648715 │ +│ │ Digest: DUNokbDJ9ipFHjrTzWTicCrVU58YNKb77HNSy7BBS8Vc │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x6c6c5de5391a0bb0073731f26884f23059f8e0f90fc65ca458bd0f9f17506416 │ +│ │ Sender: 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 │ +│ │ Owner: Account Address ( 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 292648715 │ +│ │ Digest: 14axXQ4tBPAAwtd5KkympxhFhY49wk1smB8CbNhiAZRE │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x06051a8551294f499805069646968f923104f3f953f1652f86c5c5da3090d58b │ +│ │ Version: 1 │ +│ │ Digest: 3fYS4JzDNXA4u9WxNQqTFZXFzBu2ysiYVxS1hApUiV2P │ +│ │ Modules: oliverxl_coin, oliverxl_faucet │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -22056480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/oliverxl/code/task2/move_coin/sources/oliverxl_coin.move b/mover/oliverxl/code/task2/move_coin/sources/oliverxl_coin.move new file mode 100644 index 000000000..afdc91bf0 --- /dev/null +++ b/mover/oliverxl/code/task2/move_coin/sources/oliverxl_coin.move @@ -0,0 +1,41 @@ +/// Module: oliverxl_coin +module move_coin::oliverxl_coin { + use std::option; + use sui::coin; + use sui::transfer::{public_freeze_object, public_transfer}; + use sui::tx_context::sender; + use sui::url::Url; + + //OTW + public struct OLIVERXL_COIN has drop {} + + fun init(witness: OLIVERXL_COIN, ctx: &mut TxContext) { + // public fun create_currency( + // witness: T, + // decimals: u8, 6-10 + // symbol: vector, + // name: vector, + // description: vector, + // icon_url: Option, + // ctx: &mut TxContext + // ): (TreasuryCap, CoinMetadata) + let icon_url = option::none(); + + let (treasury_cap, coin_metadata) = coin::create_currency( + witness, + 6, + b"CNY", + b"RMB", + b"this is my money", + icon_url, + ctx + ); + + //PackageID: 0x2fabc8d957987484eae7f3fe7e193affe32af5d2f79f6fb0bf24f4265e67d0ee + //不可变对象 + public_freeze_object(coin_metadata); + + //独享国库权限 转移 0xd971214111ea63857a9064c413e93bef5361f70714f4a4b3a0f217c5523d563c + public_transfer(treasury_cap,sender(ctx)); + } +} diff --git a/mover/oliverxl/code/task2/move_coin/sources/oliverxl_faucet.move b/mover/oliverxl/code/task2/move_coin/sources/oliverxl_faucet.move new file mode 100644 index 000000000..d3b746045 --- /dev/null +++ b/mover/oliverxl/code/task2/move_coin/sources/oliverxl_faucet.move @@ -0,0 +1,39 @@ +/// Module: oliverxl_faucet +module move_coin::oliverxl_faucet { + use std::option; + use sui::coin; + use sui::transfer::{public_freeze_object, public_share_object}; + use sui::url::Url; + + //OTW + public struct OLIVERXL_FAUCET has drop {} + + fun init(witness: OLIVERXL_FAUCET, ctx: &mut TxContext) { + // public fun create_currency( + // witness: T, + // decimals: u8, 6-10 + // symbol: vector, + // name: vector, + // description: vector, + // icon_url: Option, + // ctx: &mut TxContext + // ): (TreasuryCap, CoinMetadata) + let icon_url = option::none(); + + let (treasury_cap, coin_metadata) = coin::create_currency( + witness, + 6, + b"Faucet Coin", + b"Faucet Coin", + b"this is my Faucet Coin", + icon_url, + ctx + ); + + //不可变对象 + public_freeze_object(coin_metadata); + + //共享国库权限 + public_share_object(treasury_cap); + } +} diff --git a/mover/oliverxl/code/task2/move_coin/sources/test.sh b/mover/oliverxl/code/task2/move_coin/sources/test.sh new file mode 100644 index 000000000..8468eed76 --- /dev/null +++ b/mover/oliverxl/code/task2/move_coin/sources/test.sh @@ -0,0 +1,6 @@ +sui client call --package 0x2 --module coin --function mint_and_transfer --args 0xd971214111ea63857a9064c413e93bef5361f70714f4a4b3a0f217c5523d563c 100000000 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 --type-args "0x2fabc8d957987484eae7f3fe7e193affe32af5d2f79f6fb0bf24f4265e67d0ee::oliverxl_coin::OLIVERXL_COIN" + +sui client call --package 0x2 --module coin --function mint_and_transfer --args 0x0ef29f4dbc5450f9ba42b4d55dcdc38bf7a320bb437f8b5b6ac47953571e2cef 100000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 --type-args "0x06051a8551294f499805069646968f923104f3f953f1652f86c5c5da3090d58b::oliverxl_coin::OLIVERXL_COIN" + +sui client call --package 0x2 --module coin --function mint_and_transfer --args 0xf073bb8d6decd8f81c98afbb7fd811b0f9b5334d7564e105149eee667a1ee81e 100000000 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 --type-args "0x06051a8551294f499805069646968f923104f3f953f1652f86c5c5da3090d58b::oliverxl_faucet::OLIVERXL_FAUCET" +sui client call --package 0x2 --module coin --function mint_and_transfer --args 0xf073bb8d6decd8f81c98afbb7fd811b0f9b5334d7564e105149eee667a1ee81e 100000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 --type-args "0x06051a8551294f499805069646968f923104f3f953f1652f86c5c5da3090d58b::oliverxl_faucet::OLIVERXL_FAUCET" \ No newline at end of file diff --git a/mover/oliverxl/code/task3/move_nft/Move.lock b/mover/oliverxl/code/task3/move_nft/Move.lock new file mode 100644 index 000000000..5e00232a6 --- /dev/null +++ b/mover/oliverxl/code/task3/move_nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E29D0F1328A6990060C5BD14266DC231C53EF26902E601EDCA4564FA329A6E63" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x5c7719d22684468e6fc5b0c72cbfe00e8a4cd01080d3ee85159ff3ec72789927" +latest-published-id = "0x5c7719d22684468e6fc5b0c72cbfe00e8a4cd01080d3ee85159ff3ec72789927" +published-version = "1" diff --git a/mover/oliverxl/code/task3/move_nft/Move.toml b/mover/oliverxl/code/task3/move_nft/Move.toml new file mode 100644 index 000000000..05d12d362 --- /dev/null +++ b/mover/oliverxl/code/task3/move_nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "move_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/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] +move_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/oliverxl/code/task3/move_nft/readme.MD b/mover/oliverxl/code/task3/move_nft/readme.MD new file mode 100644 index 000000000..cd048ab3d --- /dev/null +++ b/mover/oliverxl/code/task3/move_nft/readme.MD @@ -0,0 +1,143 @@ +Transaction Digest: 6LdyxRsaRw48F5DfQ5ZUT2e35J7qdZbWc9PExagQsCfe +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 │ +│ Gas Owner: 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 │ +│ Gas Budget: 12665200 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x2f82b65674e1ea4d1c6eee8c2949545f2bc6a31d0e7af3f2d43e67c399680178 │ +│ │ Version: 304373430 │ +│ │ Digest: CXVBNyRUryf3CAzq9DfGbWV8xntoRsP6oeS62jY7sbEk │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ h4SaAZ33sY3vWTlG7zweykzDfCXiP5kGhG9DvTUKe93aRcYb/g0AOlEvpUd1TtilgaUSWU5kBV3/ecScqfbOAw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 6LdyxRsaRw48F5DfQ5ZUT2e35J7qdZbWc9PExagQsCfe │ +│ Status: Success │ +│ Executed Epoch: 460 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x372a912ca7484c2c754e90402e0627ba1c209e9ad4d5e16ff348662ad72d7c3a │ +│ │ Owner: Account Address ( 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 ) │ +│ │ Version: 304373431 │ +│ │ Digest: CcNb2pMMZxiDErjHKWBytKtJpgLgTqbTuzjAJP8nVvMf │ +│ └── │ +│ ┌── │ +│ │ ID: 0x5c7719d22684468e6fc5b0c72cbfe00e8a4cd01080d3ee85159ff3ec72789927 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 857JSb8yALGZE9pX5Bqczn1eUNo7EZRLS4mZZxSnEabj │ +│ └── │ +│ ┌── │ +│ │ ID: 0xaa232a2ffbb81a1ba7cf28c3ba98b9b8587eb0dc79d4c34edc6afa09801e273b │ +│ │ Owner: Account Address ( 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 ) │ +│ │ Version: 304373431 │ +│ │ Digest: 4bYme3pXde5NH7kpp89XD4mhExyASYAFxDFQ3XFa5RHw │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x2f82b65674e1ea4d1c6eee8c2949545f2bc6a31d0e7af3f2d43e67c399680178 │ +│ │ Owner: Account Address ( 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 ) │ +│ │ Version: 304373431 │ +│ │ Digest: Fd9CKySrQgPCp6g5E722NCNpUDENGkHpyEVr4J4tx5Pb │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x2f82b65674e1ea4d1c6eee8c2949545f2bc6a31d0e7af3f2d43e67c399680178 │ +│ │ Owner: Account Address ( 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 ) │ +│ │ Version: 304373431 │ +│ │ Digest: Fd9CKySrQgPCp6g5E722NCNpUDENGkHpyEVr4J4tx5Pb │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 11149200 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 61WQTxj2n8JJuWfy9HxBmUpR9Gz7b4ZHC9MxNDUh5RuX │ +│ EY8ZaDkjhyBXX8iu9HXPQWznBp4QUcpAaTuwXSheDVuq │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x372a912ca7484c2c754e90402e0627ba1c209e9ad4d5e16ff348662ad72d7c3a │ +│ │ Sender: 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 │ +│ │ Owner: Account Address ( 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 304373431 │ +│ │ Digest: CcNb2pMMZxiDErjHKWBytKtJpgLgTqbTuzjAJP8nVvMf │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xaa232a2ffbb81a1ba7cf28c3ba98b9b8587eb0dc79d4c34edc6afa09801e273b │ +│ │ Sender: 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 │ +│ │ Owner: Account Address ( 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 ) │ +│ │ ObjectType: 0x5c7719d22684468e6fc5b0c72cbfe00e8a4cd01080d3ee85159ff3ec72789927::oliverxl_nft::Oliverxl_Nft │ +│ │ Version: 304373431 │ +│ │ Digest: 4bYme3pXde5NH7kpp89XD4mhExyASYAFxDFQ3XFa5RHw │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x2f82b65674e1ea4d1c6eee8c2949545f2bc6a31d0e7af3f2d43e67c399680178 │ +│ │ Sender: 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 │ +│ │ Owner: Account Address ( 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 304373431 │ +│ │ Digest: Fd9CKySrQgPCp6g5E722NCNpUDENGkHpyEVr4J4tx5Pb │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x5c7719d22684468e6fc5b0c72cbfe00e8a4cd01080d3ee85159ff3ec72789927 │ +│ │ Version: 1 │ +│ │ Digest: 857JSb8yALGZE9pX5Bqczn1eUNo7EZRLS4mZZxSnEabj │ +│ │ Modules: oliverxl_nft │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ │ Owner: Account Address ( 0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -10929080 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/oliverxl/code/task3/move_nft/sources/oliverxl_nft.move b/mover/oliverxl/code/task3/move_nft/sources/oliverxl_nft.move new file mode 100644 index 000000000..65a19b3cf --- /dev/null +++ b/mover/oliverxl/code/task3/move_nft/sources/oliverxl_nft.move @@ -0,0 +1,44 @@ +/// Module: oliverxl_nft +module move_nft::oliverxl_nft { + use std::string; + use std::string::String; + use sui::object; + use sui::transfer::public_transfer; + use sui::tx_context::{sender, TxContext}; + + public struct Oliverxl_Nft has key, store { + id: UID, + name: String, + image_url: String + } + + fun init(ctx: &mut TxContext) { + let my_nft = Oliverxl_Nft { + id: object::new(ctx), + name: string::utf8(b"oliverxl nft"), + image_url: string::utf8(b"https://avatars.githubusercontent.com/u/20931572?v=4"), + }; + public_transfer(my_nft, sender(ctx)); + } + + + public entry fun mint(name: String, image_url: String, ctx: &mut TxContext) { + let my_nft = Oliverxl_Nft { + id: object::new(ctx), + name, + image_url + }; + public_transfer(my_nft, sender(ctx)); + } + + public entry fun mint_and_transfer(name: String, image_url: String, recipient: address, ctx: &mut TxContext) { + let my_nft = Oliverxl_Nft { + id: object::new(ctx), + name, + image_url + }; + let sender = tx_context::sender(ctx); + + public_transfer(my_nft, recipient); + } +} diff --git a/mover/oliverxl/code/task3/move_nft/tests/move_nft_tests.move b/mover/oliverxl/code/task3/move_nft/tests/move_nft_tests.move new file mode 100644 index 000000000..c1a1b24ce --- /dev/null +++ b/mover/oliverxl/code/task3/move_nft/tests/move_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module move_nft::move_nft_tests { + // uncomment this line to import the module + // use move_nft::move_nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_move_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::move_nft::move_nft_tests::ENotImplemented)] + fun test_move_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/oliverxl/images/oliverxl_nft.png b/mover/oliverxl/images/oliverxl_nft.png new file mode 100644 index 000000000..d3cfd9d98 Binary files /dev/null and b/mover/oliverxl/images/oliverxl_nft.png differ diff --git a/mover/oliverxl/images/suiscan_oliverxl.png b/mover/oliverxl/images/suiscan_oliverxl.png new file mode 100644 index 000000000..91940e58d Binary files /dev/null and b/mover/oliverxl/images/suiscan_oliverxl.png differ diff --git a/mover/oliverxl/images/suiwallet_oliverxl.png b/mover/oliverxl/images/suiwallet_oliverxl.png new file mode 100644 index 000000000..04110d4eb Binary files /dev/null and b/mover/oliverxl/images/suiwallet_oliverxl.png differ diff --git a/mover/oliverxl/notes/readme.md b/mover/oliverxl/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/oliverxl/readme.md b/mover/oliverxl/readme.md new file mode 100644 index 000000000..6f6d33dd3 --- /dev/null +++ b/mover/oliverxl/readme.md @@ -0,0 +1,53 @@ +## 基本信息 +- Sui钱包地址: `0xd7ea6893354b5cdc343a86fe0f0423b74294ea1c52ffb749a56b4e1591496776` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `oliverxl` + +## 个人简介 +- 工作经验: 20年+ +- 技术栈: `Java` `JS` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: QQ: `298056679` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.28.0-f58faa4c5bbf-dirty +- [x] Sui钱包截图: ![Sui钱包截图](./images/suiwallet_oliverxl.png) +- [x] package id: 0x07007b1c8529afcca60d9aa89a9bde87a5439707f5a0d9efafc4b9746feb5cef +- [x] package id 在 scan上的查看截图:![Scan截图](./images/suiscan_oliverxl.png) + +## 02 move coin +- [x] My Coin package id : 0x06051a8551294f499805069646968f923104f3f953f1652f86c5c5da3090d58b +- [x] Faucet package id : 0x06051a8551294f499805069646968f923104f3f953f1652f86c5c5da3090d58b +- [x] 转账 `My Coin` hash: AkKUMhfhtqjKGQHSFbJgBaVUvVfUr5tknpgMn5V7ibdZ +- [x] `Faucet Coin` address1 mint hash: 8bRAvP7g7EbRnk3U1b5yCYKDHfHvDkSmrgPYqnQyAees +- [x] `Faucet Coin` address2 mint hash: 9w1BVCvMiufdQgYDCtrLB9QppirWNZDURSiBX9pMX8yu + +## 03 move NFT +- [x] nft package id : 0x5c7719d22684468e6fc5b0c72cbfe00e8a4cd01080d3ee85159ff3ec72789927 +- [x] nft object id : 0xaa232a2ffbb81a1ba7cf28c3ba98b9b8587eb0dc79d4c34edc6afa09801e273b +- [x] 转账 nft hash: FXii4z62sukUwcgCSpqiHxAoY25j3Yj7Zk3ce6Z44wJe +- [x] scan上的NFT截图:![Scan截图](./images/oliverxl_nft.png) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/ooooo-create/images/hello_ctf.png b/mover/ooooo-create/images/hello_ctf.png new file mode 100644 index 000000000..10afb8742 Binary files /dev/null and b/mover/ooooo-create/images/hello_ctf.png differ diff --git a/mover/ooooo-create/notes/task1.md b/mover/ooooo-create/notes/task1.md index b8a3d354b..875da8708 100644 --- a/mover/ooooo-create/notes/task1.md +++ b/mover/ooooo-create/notes/task1.md @@ -23,4 +23,4 @@ ## 发布上链 -1. `sui client publish --gas-budget 100000000` +1. `sui client publish ` diff --git a/mover/ooooo-create/notes/task2.md b/mover/ooooo-create/notes/task2.md index 1f0f46bd6..d9046c2e2 100644 --- a/mover/ooooo-create/notes/task2.md +++ b/mover/ooooo-create/notes/task2.md @@ -5,7 +5,7 @@ 1. 命令 ``` -sui client publish --gas-budget 100000000 +sui client publish ``` 2. 返回 @@ -250,7 +250,7 @@ Transaction Digest: 739WxomUU7rkxfzoJFdd2huvD8jR1Td5quQ5X4gUmnY1 1. 命令 ``` -sui client call --function mint --module mycoin --package 0x7247004b03f116499058575daac468d59ad6c4e84d0878628b785e16c39f5403 --args 0xd735520f429f73845c8193e724d7cb1c3631bc716b719d01dd783074ce0b8c0c 100 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 --gas-budget 100000000 +sui client call --function mint --module mycoin --package 0x7247004b03f116499058575daac468d59ad6c4e84d0878628b785e16c39f5403 --args 0xd735520f429f73845c8193e724d7cb1c3631bc716b719d01dd783074ce0b8c0c 100 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ``` 2. 返回 diff --git a/mover/ooooo-create/notes/task3.md b/mover/ooooo-create/notes/task3.md index 66e0d7ace..5bd77f201 100644 --- a/mover/ooooo-create/notes/task3.md +++ b/mover/ooooo-create/notes/task3.md @@ -5,7 +5,7 @@ 1. 命令 ``` -sui client publish --gas-budget 100000000 +sui client publish ``` 2. 结果 diff --git a/mover/ooooo-create/notes/task4.md b/mover/ooooo-create/notes/task4.md index 0d039341a..14bfbbc27 100644 --- a/mover/ooooo-create/notes/task4.md +++ b/mover/ooooo-create/notes/task4.md @@ -5,7 +5,7 @@ 1. 命令 ``` -sui client publish --gas-budget 100000000 +sui client publish ``` 2. 返回 @@ -487,7 +487,7 @@ Transaction Digest: EcKoA2jMQ36oYBgDhfKDz9g9ZSUhC3BMwShy5T6SsHzL 1. 命令 ``` -sui client call --package 0xd8b04849cd2642cc101fbca6043c810cfaa08f2f18cc61e2e5cb79933e5508ad --module mygame --function play --args 1 0x472ec3a985be7182ff404e141e48d2e8264c98a4f001a249f7e49ae76e7543b8 0xbf4f4865faec53790675e0e894fee6a8a37bd68f8135bdee8894cae03c6a45e0 0x6 --gas-budget 100000000 +sui client call --package 0xd8b04849cd2642cc101fbca6043c810cfaa08f2f18cc61e2e5cb79933e5508ad --module mygame --function play --args 1 0x472ec3a985be7182ff404e141e48d2e8264c98a4f001a249f7e49ae76e7543b8 0xbf4f4865faec53790675e0e894fee6a8a37bd68f8135bdee8894cae03c6a45e0 0x6 ``` 2. 结果 diff --git a/mover/ooooo-create/notes/task5.md b/mover/ooooo-create/notes/task5.md index 16c597d95..0518be58e 100644 --- a/mover/ooooo-create/notes/task5.md +++ b/mover/ooooo-create/notes/task5.md @@ -5,7 +5,7 @@ 1. 命令 ``` -sui client publish --gas-budget 100000000 +sui client publish ``` 2. 结果 @@ -178,11 +178,11 @@ Transaction Digest: FCmVfKVXHvompfxwUP4gneqZ9pDbJtMWmq8iixpYJVey ``` ## mint mycoin1 -sui client call --function mint --module mycoin --package 0x7247004b03f116499058575daac468d59ad6c4e84d0878628b785e16c39f5403 --args 0xd735520f429f73845c8193e724d7cb1c3631bc716b719d01dd783074ce0b8c0c 10000 0x118abaa1d8254a0c1e0a2a8287560701aad59b74ca33801826d4a10e0153abb4 --gas-budget 100000000 +sui client call --function mint --module mycoin --package 0x7247004b03f116499058575daac468d59ad6c4e84d0878628b785e16c39f5403 --args 0xd735520f429f73845c8193e724d7cb1c3631bc716b719d01dd783074ce0b8c0c 10000 0x118abaa1d8254a0c1e0a2a8287560701aad59b74ca33801826d4a10e0153abb4 ## mint faucetcoin1 sui client call --function mint --module faucetcoin --package 0x7247004b03f116499058575daac468d59ad6c4e84d0878628b785e16c39f5403 --args 0xbe2b232fb67ee76f5e9adfcdf2d3d2785d8c5a5cd0f2cf2af4ba3981fb8a4983 1000000 0x118abaa1d8254a0c1e0a2a8287560701aad59b74ca33801826d4a10e0153abb4 --gas-budget 10000000 ## mint mycoin2 -sui client call --function mint --module mycoin --package 0x7247004b03f116499058575daac468d59ad6c4e84d0878628b785e16c39f5403 --args 0xd735520f429f73845c8193e724d7cb1c3631bc716b719d01dd783074ce0b8c0c 1000 0x118abaa1d8254a0c1e0a2a8287560701aad59b74ca33801826d4a10e0153abb4 --gas-budget 100000000 +sui client call --function mint --module mycoin --package 0x7247004b03f116499058575daac468d59ad6c4e84d0878628b785e16c39f5403 --args 0xd735520f429f73845c8193e724d7cb1c3631bc716b719d01dd783074ce0b8c0c 1000 0x118abaa1d8254a0c1e0a2a8287560701aad59b74ca33801826d4a10e0153abb4 ## mint faucetcoin2 sui client call --function mint --module faucetcoin --package 0x7247004b03f116499058575daac468d59ad6c4e84d0878628b785e16c39f5403 --args 0xbe2b232fb67ee76f5e9adfcdf2d3d2785d8c5a5cd0f2cf2af4ba3981fb8a4983 10000 0x118abaa1d8254a0c1e0a2a8287560701aad59b74ca33801826d4a10e0153abb4 --gas-budget 10000000 ## deposit_mycoin diff --git a/mover/ooooo-create/notes/task7.md b/mover/ooooo-create/notes/task7.md new file mode 100644 index 000000000..978ef0dbf --- /dev/null +++ b/mover/ooooo-create/notes/task7.md @@ -0,0 +1,31 @@ +# task7 + +## 获取 object 属性 + +``` +sui clint object 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 +``` + +## 将数字转换成 ASCII 码 + +powershell 中执行 `[char]number` + +``` +>>> [char]76 +>>> L +``` + +## cli 调用与合约交互 + +``` +sui client call --function get_flag --module check_in --package 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd --args "lsLF" 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 0x8 --gas-budget 10000000 +``` + +## 注意 + +gas -budget 不能太小,否则会报错 + +``` +Gas budget: 10000 is lower than min: Caused by: + RPC call failed: ErrorObject { code: ServerError(-32002), message: "Transaction execution failed due to issues with transaction inputs, please review the errors and try again: Gas budget: 10000 is lower than min: 1000000.", data: None } +``` \ No newline at end of file diff --git a/mover/ooooo-create/readme.md b/mover/ooooo-create/readme.md index 417dfd7d9..f9292ffc5 100644 --- a/mover/ooooo-create/readme.md +++ b/mover/ooooo-create/readme.md @@ -44,3 +44,7 @@ ## 06 SDK PTB - [x] save hash : 6DRTyWPPNct7XxNNz8DwMeY3YSgBcCnpH3FfkWTZLgTu + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/hello_ctf.png) +- [x] flag hash : 6FDsS2uRPYpe9h48obrogWheEvQFiTokfedK4aewnPp9 diff --git a/mover/orange1244/notes/task1.md b/mover/orange1244/notes/task1.md index 86beb6a27..a58bab54f 100644 --- a/mover/orange1244/notes/task1.md +++ b/mover/orange1244/notes/task1.md @@ -114,7 +114,7 @@ sui move test 没有报错之后进行发布 ~~~ - sui client publish --gas-budget 100000000 + sui client publish ~~~ 有如下信息即发布成功 diff --git a/mover/philhjw/code/readme.md b/mover/philhjw/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/philhjw/code/task1/hello/Move.lock b/mover/philhjw/code/task1/hello/Move.lock new file mode 100644 index 000000000..20937da7b --- /dev/null +++ b/mover/philhjw/code/task1/hello/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "23C730475A68F1E6BEDDB2CD78A3EB131C4A59425643F732B34CA8F439B08D68" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xbe9220571e09b15467d8c6aee13d8d4321fbb3f5aed02e95e72d571f732c4795" +latest-published-id = "0xbe9220571e09b15467d8c6aee13d8d4321fbb3f5aed02e95e72d571f732c4795" +published-version = "1" diff --git a/mover/philhjw/code/task1/hello/Move.toml b/mover/philhjw/code/task1/hello/Move.toml new file mode 100644 index 000000000..f6bf62a02 --- /dev/null +++ b/mover/philhjw/code/task1/hello/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello" +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] +hello = "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/philhjw/code/task1/hello/sources/hello.move b/mover/philhjw/code/task1/hello/sources/hello.move new file mode 100644 index 000000000..e36c1708a --- /dev/null +++ b/mover/philhjw/code/task1/hello/sources/hello.move @@ -0,0 +1,21 @@ +/// Module: hello +module hello::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"philhjw"), + }; + transfer(hello_move, sender(ctx)); + } +} + diff --git a/mover/philhjw/code/task1/hello/tests/hello_tests.move b/mover/philhjw/code/task1/hello/tests/hello_tests.move new file mode 100644 index 000000000..34dfcfb57 --- /dev/null +++ b/mover/philhjw/code/task1/hello/tests/hello_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello::hello_tests { + // uncomment this line to import the module + // use hello::hello; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello() { + // pass + } + + #[test, expected_failure(abort_code = ::hello::hello_tests::ENotImplemented)] + fun test_hello_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/philhjw/images/img.png b/mover/philhjw/images/img.png new file mode 100644 index 000000000..42504f5cc Binary files /dev/null and b/mover/philhjw/images/img.png differ diff --git a/mover/philhjw/images/img2.png b/mover/philhjw/images/img2.png new file mode 100644 index 000000000..e90ec9dbd Binary files /dev/null and b/mover/philhjw/images/img2.png differ diff --git a/mover/philhjw/notes/readme.md b/mover/philhjw/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/philhjw/readme.md b/mover/philhjw/readme.md new file mode 100644 index 000000000..95f2a9bac --- /dev/null +++ b/mover/philhjw/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x2c763a560d1d3bce0f9f7097d3b679366c554f3ef4003ec6dce41051fd440999` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `philhjw` + +## 个人简介 +- 工作经验: 2年 +- 技术栈: `Go` `C++` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `philhjw` + +## 任务 + +## 01 hello move +- [] Sui cli version: sui 1.27.0-6e8946f19841 +- [] Sui钱包截图: ![Sui钱包截图](./images/img.png) +- [] package id: 0xbe9220571e09b15467d8c6aee13d8d4321fbb3f5aed02e95e72d571f732c4795 +- [] package id 在 scan上的查看截图:![Scan截图](./images/img2.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/pymongo/code/readme.md b/mover/pymongo/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/pymongo/images/sui_explorer.png b/mover/pymongo/images/sui_explorer.png new file mode 100644 index 000000000..2b4dc62cc Binary files /dev/null and b/mover/pymongo/images/sui_explorer.png differ diff --git a/mover/pymongo/images/sui_wallet.png b/mover/pymongo/images/sui_wallet.png new file mode 100644 index 000000000..52db97406 Binary files /dev/null and b/mover/pymongo/images/sui_wallet.png differ diff --git a/mover/pymongo/notes/readme.md b/mover/pymongo/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/pymongo/readme.md b/mover/pymongo/readme.md new file mode 100644 index 000000000..b08c86b2f --- /dev/null +++ b/mover/pymongo/readme.md @@ -0,0 +1,53 @@ +## 基本信息 +- Sui钱包地址: `0x0eadd1cb51d89736bdc676e775ea575ee11210c5dc68a399df62c994a5429ee0` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `pymongo` + +## 个人简介 +- 工作经验: 5年 +- 技术栈: `Rust` `Python` +- 曾给rust提交过PR并因此拿到过FLT空投,了解过一些cosmos/dydx grants项目,想学会修改sui源码,还想参与sui基金会grants悬赏任务 +- 联系方式: email: os.popen@gmail.com + +## 任务 + +## 01 hello move +- [x] Sui cli version:sui 1.28.0-f58faa4c5bbf +- [x] Sui钱包截图: ![Sui钱包截图](./images/sui_wallet.png) +- [x] package id: 0xdbfc40bbdc312d9ef44f7ce1e837ef443ee20dd7c2dcaeef6584fea4bf4d7b7d +- [x] package id 在 scan上的查看截图:![Scan截图](./images/sui_explorer.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/qiaopengjun5162/notes/task1.md b/mover/qiaopengjun5162/notes/task1.md index 4da39557e..8eb2b70c8 100644 --- a/mover/qiaopengjun5162/notes/task1.md +++ b/mover/qiaopengjun5162/notes/task1.md @@ -90,13 +90,13 @@ cd qiaopengjun5162/ ## 发布上链 ```sh - sui client publish --gas-budget 100000000 + sui client publish ``` ### 实操 ```sh -sui client publish --gas-budget 100000000 +sui client publish UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git INCLUDING DEPENDENCY Sui INCLUDING DEPENDENCY MoveStdlib diff --git a/mover/qiaopengjun5162/notes/task2.md b/mover/qiaopengjun5162/notes/task2.md index 2fb21c43f..116ef0b87 100644 --- a/mover/qiaopengjun5162/notes/task2.md +++ b/mover/qiaopengjun5162/notes/task2.md @@ -42,7 +42,7 @@ letsmove/mover/qiaopengjun5162/code/task2/mycoin on  main [!?] via 🅒 base ╰─────────┴───────────────────────────────────────┴────────╯ letsmove/mover/qiaopengjun5162/code/task2/mycoin on  main [!?] via 🅒 base took 35.1s -➜ sui client publish --gas-budget 100000000 --skip-fetch-latest-git-deps +➜ sui client publish --skip-fetch-latest-git-deps INCLUDING DEPENDENCY Sui INCLUDING DEPENDENCY MoveStdlib BUILDING mycoin @@ -360,7 +360,7 @@ Transaction Digest: Hk2m48YK9VbDL8cdLAMM119ZDHiqGuBJttC1zE2jH6yh ### 发布 faucet coin ```shell letsmove/mover/qiaopengjun5162/code/task2/faucet_coin on  main [!?] via 🅒 base took 4.3s -➜ sui client publish --gas-budget 100000000 --skip-fetch-latest-git-deps +➜ sui client publish --skip-fetch-latest-git-deps INCLUDING DEPENDENCY Sui INCLUDING DEPENDENCY MoveStdlib BUILDING faucet_coin @@ -552,7 +552,7 @@ mycoin package id testnet: 0x7e8063dd7740ec02746fa970dea089468a9730be75ee71530dc 1. 发布报错 Server returned an error status code: 429 ```shell letsmove/mover/qiaopengjun5162/code/task2/mycoin on  main [!?] via 🅒 base took 2.4s -➜ sui client publish --gas-budget 100000000 +➜ sui client publish Networking or low-level protocol error: Server returned an error status code: 429 Caused by: diff --git a/mover/qiaopengjun5162/notes/task3.md b/mover/qiaopengjun5162/notes/task3.md index 60a6fbb48..65d938fdc 100644 --- a/mover/qiaopengjun5162/notes/task3.md +++ b/mover/qiaopengjun5162/notes/task3.md @@ -21,7 +21,7 @@ INCLUDING DEPENDENCY MoveStdlib BUILDING mynft letsmove/mover/qiaopengjun5162/code/task3/mynft on  main [?] via 🅒 base took 5.1s -➜ sui client publish --gas-budget 100000000 --skip-fetch-latest-git-deps +➜ sui client publish --skip-fetch-latest-git-deps [warn] Client/Server api version mismatch, client api version : 1.22.0, server api version : 1.23.1 INCLUDING DEPENDENCY Sui INCLUDING DEPENDENCY MoveStdlib @@ -389,7 +389,7 @@ INCLUDING DEPENDENCY MoveStdlib BUILDING sui_nft letsmove/mover/qiaopengjun5162/code/task3/sui_nft on  main [!?] via 🅒 base -➜ sui client publish --gas-budget 100000000 --skip-fetch-latest-git-deps +➜ sui client publish --skip-fetch-latest-git-deps INCLUDING DEPENDENCY Sui INCLUDING DEPENDENCY MoveStdlib BUILDING sui_nft @@ -727,7 +727,7 @@ INCLUDING DEPENDENCY MoveStdlib BUILDING sui_nft letsmove/mover/qiaopengjun5162/code/task3/sui_nft on  main [!?] via 🅒 base -➜ sui client publish --gas-budget 100000000 --skip-fetch-latest-git-deps +➜ sui client publish --skip-fetch-latest-git-deps INCLUDING DEPENDENCY Sui INCLUDING DEPENDENCY MoveStdlib BUILDING sui_nft diff --git a/mover/qipan2333/code/task4/minority/Move.lock b/mover/qipan2333/code/task4/minority/Move.lock new file mode 100644 index 000000000..772f38431 --- /dev/null +++ b/mover/qipan2333/code/task4/minority/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "64CDFA7D1F98C06A5577DCC600E890479492879DF1311C41C85AB2EDA213577C" +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.22.0" +edition = "legacy" +flavor = "sui" diff --git a/mover/qipan2333/code/task4/minority/Move.toml b/mover/qipan2333/code/task4/minority/Move.toml new file mode 100644 index 000000000..2085f64d9 --- /dev/null +++ b/mover/qipan2333/code/task4/minority/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "minority" +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] +minority = "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/qipan2333/code/task4/minority/publish.log b/mover/qipan2333/code/task4/minority/publish.log new file mode 100644 index 000000000..ef53e39f7 --- /dev/null +++ b/mover/qipan2333/code/task4/minority/publish.log @@ -0,0 +1,129 @@ +Transaction Digest: 5vkuNwGGsgL3u2rRXqnjD1SMoPRDvXxA5cBGze1L1BJB +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x8613f7b2a3b760d34957d0d299ea89486cb0592139814892f64fab43a0ebf7b9 │ +│ Gas Owner: 0x8613f7b2a3b760d34957d0d299ea89486cb0592139814892f64fab43a0ebf7b9 │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0xb2263ec06ddce3a7dd8b6071b87cc8d9948735de140a2a79c956c0694bab284a │ +│ │ Version: 17 │ +│ │ Digest: AcAW8qW75ZYUgq7JihSQt9LBrnaqAY27VZjkCiefLj6g │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x8613f7b2a3b760d34957d0d299ea89486cb0592139814892f64fab43a0ebf7b9" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ U5MOspfv4zuc2QUhJrl3Icx4I0AQ8XlKD7Nxq5Gu2xGs+iRC/Vvx5gchiuR3ZOUsPDISe1TiATCoX6/cTxjqAQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 5vkuNwGGsgL3u2rRXqnjD1SMoPRDvXxA5cBGze1L1BJB │ +│ Status: Success │ +│ Executed Epoch: 20 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x21a84c2cd51270a6eb41addd209027c587da9cd3a298d3f07e3e21ec66d35309 │ +│ │ Owner: Account Address ( 0x8613f7b2a3b760d34957d0d299ea89486cb0592139814892f64fab43a0ebf7b9 ) │ +│ │ Version: 18 │ +│ │ Digest: 4JtKxSVWokEvSMxAccL6EC3iGzSFCZSi5QYav9r3NxbK │ +│ └── │ +│ ┌── │ +│ │ ID: 0x9993b643226a60ab1a178422b1bccc767b9f589e92e5f83a8dba79c0431620f9 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: GM3whkprbpnQXB4mn5P6WCqoNRzWzenG7gqa4mSpqBV1 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0xb2263ec06ddce3a7dd8b6071b87cc8d9948735de140a2a79c956c0694bab284a │ +│ │ Owner: Account Address ( 0x8613f7b2a3b760d34957d0d299ea89486cb0592139814892f64fab43a0ebf7b9 ) │ +│ │ Version: 18 │ +│ │ Digest: 3soNC6Mrt47mS6KViHkWoPHZyb1NxKadqEoKY8wfyMVY │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0xb2263ec06ddce3a7dd8b6071b87cc8d9948735de140a2a79c956c0694bab284a │ +│ │ Owner: Account Address ( 0x8613f7b2a3b760d34957d0d299ea89486cb0592139814892f64fab43a0ebf7b9 ) │ +│ │ Version: 18 │ +│ │ Digest: 3soNC6Mrt47mS6KViHkWoPHZyb1NxKadqEoKY8wfyMVY │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 15838400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ CHfyM8Wtw5KJh36boV9isP9PZSfm5vcWJEEFKiw8TGzw │ +│ DKxqKCy5d7tEPtbQZdSRqagBa53qbpA7uEcG73CTMbH6 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x21a84c2cd51270a6eb41addd209027c587da9cd3a298d3f07e3e21ec66d35309 │ +│ │ Sender: 0x8613f7b2a3b760d34957d0d299ea89486cb0592139814892f64fab43a0ebf7b9 │ +│ │ Owner: Account Address ( 0x8613f7b2a3b760d34957d0d299ea89486cb0592139814892f64fab43a0ebf7b9 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 18 │ +│ │ Digest: 4JtKxSVWokEvSMxAccL6EC3iGzSFCZSi5QYav9r3NxbK │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0xb2263ec06ddce3a7dd8b6071b87cc8d9948735de140a2a79c956c0694bab284a │ +│ │ Sender: 0x8613f7b2a3b760d34957d0d299ea89486cb0592139814892f64fab43a0ebf7b9 │ +│ │ Owner: Account Address ( 0x8613f7b2a3b760d34957d0d299ea89486cb0592139814892f64fab43a0ebf7b9 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 18 │ +│ │ Digest: 3soNC6Mrt47mS6KViHkWoPHZyb1NxKadqEoKY8wfyMVY │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x9993b643226a60ab1a178422b1bccc767b9f589e92e5f83a8dba79c0431620f9 │ +│ │ Version: 1 │ +│ │ Digest: GM3whkprbpnQXB4mn5P6WCqoNRzWzenG7gqa4mSpqBV1 │ +│ │ Modules: minority │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x8613f7b2a3b760d34957d0d299ea89486cb0592139814892f64fab43a0ebf7b9 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -15860280 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ \ No newline at end of file diff --git a/mover/qipan2333/code/task4/minority/sources/minority.move b/mover/qipan2333/code/task4/minority/sources/minority.move new file mode 100644 index 000000000..b0340776d --- /dev/null +++ b/mover/qipan2333/code/task4/minority/sources/minority.move @@ -0,0 +1,91 @@ + +module minority::minority { + use std::string; + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Balance}; + use sui::event; + + const PLAYERS_NUM: u64 = 3; + + // ------- ERRORS ------------------------- + const EAreadyParticipated: u64 = 0; + const EGameFulled: u64 = 1; + const EIncorrectCreator: u64 = 2; + const EPlayerNotEnough: u64 = 3; + + public struct Game has key, store { + id: UID, + creator: address, + players: vector
, + yes_players: vector
, + no_players: vector
, + fund: Balance, + question: string::String, + } + + public struct Player has store { + name: string::String, + email: string::String, + } + + public struct GameCrteated has copy, drop { + id: ID, + creator: address, + } + + public entry fun create_game(question:vector, ctx: &mut TxContext) { + let fund = coin::into_balance(coin::zero(ctx)); + let sender = tx_context::sender(ctx); + let id = object::new(ctx); + let game = Game { + id: id, + creator: sender, + players: vector::empty(), + yes_players: vector::empty(), + no_players: vector::empty(), + question: string::utf8(question), + fund: fund, + }; + + event::emit(GameCrteated { + id: object::id(&game), + creator: sender, + }); + + transfer::share_object(game); + } + + public entry fun join_game(game:&mut Game, wager: Coin, answer: bool, ctx: &mut TxContext) { + let player = tx_context::sender(ctx); + assert!(!(vector::contains(&game.no_players, &player) || vector::contains(&game.yes_players, &player)), EAreadyParticipated); + assert!(game.no_players.length() + game.yes_players.length() < PLAYERS_NUM, EGameFulled); + if (answer) { + vector::push_back(&mut game.yes_players, player); + } else { + vector::push_back(&mut game.no_players, player); + }; + coin::put(&mut game.fund, wager); + } + + public entry fun settle_game(game:&mut Game, ctx: &mut TxContext) { + let creator = tx_context::sender(ctx); + assert!(creator == game.creator, EIncorrectCreator); + assert!(game.no_players.length() + game.yes_players.length() == PLAYERS_NUM, EPlayerNotEnough); + let mut winners = game.no_players; + if (game.no_players.length() < game.yes_players.length()) { + winners = game.no_players; + } else { + winners = game.yes_players; + }; + let winner_get = game.fund.value() / (winners.length() as u64); + let mut index = 0; + while (index < winners.length()) { + let winner = vector::borrow(&winners, index); + let win_balance = balance::split(&mut game.fund, winner_get); + let win_coin = coin::from_balance(win_balance, ctx); + transfer::public_transfer(win_coin, *winner); + index = index + 1; + } + } +} + diff --git a/mover/qipan2333/code/task4/minority/tests/minority_tests.move b/mover/qipan2333/code/task4/minority/tests/minority_tests.move new file mode 100644 index 000000000..91d337dbb --- /dev/null +++ b/mover/qipan2333/code/task4/minority/tests/minority_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module minority::minority_tests { + // uncomment this line to import the module + // use minority::minority; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_minority() { + // pass + } + + #[test, expected_failure(abort_code = minority::minority_tests::ENotImplemented)] + fun test_minority_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/qipan2333/code/task5/swap/Move.lock b/mover/qipan2333/code/task5/swap/Move.lock new file mode 100644 index 000000000..99cd07c97 --- /dev/null +++ b/mover/qipan2333/code/task5/swap/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "7D4356ACADCB8D2072EAA75FA8A23AB48D42F9DF4C708A3AB54642825AB24EF2" +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.22.0" +edition = "legacy" +flavor = "sui" diff --git a/mover/qipan2333/code/task5/swap/Move.toml b/mover/qipan2333/code/task5/swap/Move.toml new file mode 100644 index 000000000..aa3ed8d81 --- /dev/null +++ b/mover/qipan2333/code/task5/swap/Move.toml @@ -0,0 +1,36 @@ +[package] +name = "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 (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] +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" + diff --git a/mover/qipan2333/code/task5/swap/sources/swap.move b/mover/qipan2333/code/task5/swap/sources/swap.move new file mode 100644 index 000000000..db9e5034e --- /dev/null +++ b/mover/qipan2333/code/task5/swap/sources/swap.move @@ -0,0 +1,94 @@ +module swap::swap { + + use sui::balance; + use sui::balance::Balance; + use sui::coin; + use sui::coin::Coin; + use sui::transfer::{transfer, share_object, public_transfer}; + use sui::tx_context::{sender}; + + public struct AdminCap has key { + id: UID, + } + + public struct Bank has key { + id: UID, + a: Balance, + b: Balance + } + + + fun init(ctx: &mut TxContext) { + + let admin_cap = AdminCap { id: object::new(ctx) }; + + transfer(admin_cap, sender(ctx)); + } + + + public entry fun create(ctx: &mut TxContext){ + let pool = Bank{ + id:object::new(ctx), + a:balance::zero(), + b:balance::zero(), + }; + share_object(pool); + } + + public entry fun deposit_a(bank:&mut Bank,a:Coin,_:&mut TxContext){ + let a_balance = coin::into_balance(a); + balance::join(&mut bank.a,a_balance); + } + + public entry fun deposit_b(bank:&mut Bank,b:Coin,_:&mut TxContext){ + let b_balance = coin::into_balance(b); + balance::join(&mut bank.b,b_balance); + } + + public entry fun withdraw_a(_:&AdminCap, bank:&mut Bank, amt:u64, ctx:&mut TxContext){ + let a_balance = balance::split(&mut bank.a, amt); + let a = coin::from_balance(a_balance, ctx); + public_transfer(a, sender(ctx)); + } + + public entry fun withdraw_b(_:&AdminCap, bank:&mut Bank, amt:u64, ctx:&mut TxContext){ + let b_balance = balance::split(&mut bank.b, amt); + let b = coin::from_balance(b_balance, ctx); + public_transfer(b, sender(ctx)); + } + + public entry fun swap_a_b(bank: &mut Bank, a: Coin, ctx: &mut TxContext) { + let amt = coin::value(&a); + + balance::join(&mut bank.a, coin::into_balance(a)); + + + let amt_b = amt; + + + let b_balance = balance::split(&mut bank.b, amt_b); + + + let b = coin::from_balance(b_balance, ctx); + + public_transfer(b, sender(ctx)); + } + + public entry fun swap_b_a(bank: &mut Bank, b: Coin, ctx: &mut TxContext) { + let amt = coin::value(&b); + + balance::join(&mut bank.b, coin::into_balance(b)); + + + let amt_a = amt; + + + let a_balance = balance::split(&mut bank.a, amt_a); + + + let a = coin::from_balance(a_balance, ctx); + + public_transfer(a, sender(ctx)); + } +} + diff --git a/mover/qipan2333/code/task5/swap/tests/swap_tests.move b/mover/qipan2333/code/task5/swap/tests/swap_tests.move new file mode 100644 index 000000000..538cb5ae3 --- /dev/null +++ b/mover/qipan2333/code/task5/swap/tests/swap_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module swap::swap_tests { + // uncomment this line to import the module + // use swap::swap; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_swap() { + // pass + } + + #[test, expected_failure(abort_code = swap::swap_tests::ENotImplemented)] + fun test_swap_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/qipan2333/readme.md b/mover/qipan2333/readme.md index 9b938e079..faa925d7e 100644 --- a/mover/qipan2333/readme.md +++ b/mover/qipan2333/readme.md @@ -24,12 +24,30 @@ - [x] 转账 nft hash: HGX6SxoHUbmriTGWHZ1VU9zKRtyGkybtTWBsvfJm7xqR ## 04 Move Game -- [] game package id : -- [] call game hash: +"少数派"游戏说明: +1. 发起者调用 create_game() 创建一个新游戏。新游戏需要提出一个yes/no的问题等待玩家回答。 +2. 玩家调用 join_game() 提交一个 yes/no 答案,并提供一些coin进入游戏奖池 +3. 玩家满员后,发起者可以调用 settle_game() 对游戏进行结算:yes/no 两种回答中人少的一方平分奖池里的coin + +TODO: +1. 按照最初的游戏设计,玩家参与游戏时需要提供一个邮箱地址或者telegram的ID,鼓励玩家进行私下沟通串联,使用结盟欺骗等策略影响其它玩家的回答,以增加游戏的策略性。后续可以继续开发,比如自动拉起telegram群聊。 + +2. 合约中未对游戏时间做出限制,每个玩家提交的coin数量也没做检查,等等后面进一步补充优化。 +主网由于账号和token有限只测试了创建游戏的链接: +- [] game package id : 0x774cca12cd3d60e5bb1d3f5ccdcdd8f3fb60fc0ab01b352c0f8fd48f438fd518 +- [] call game hash: 创建新游戏:HnFu8q69QpwtJC12qGw5dVTLuoWr8mobfp1efnV7fuud + +测试网完整的测试: +game package id : 0x53661b946b14db90513424e6ae309b0a83628e08ebe885aa02141fe2c78c3822 +创建新游戏hash: ChiVMM3eWFgtmRNVYhrR1qAi4ZoBcfHUxVqDqfNFHSD9 +玩家1参与hash: 8S5FAbeFTaLJXUB1Ca6dZTmt9nffzB2oRKcS1Ts1bDJN +玩家2参与hash: AFJtirW1uDc9jkdEuvXQmwB6hjTzEc4UCFq3hBaL3To4 +玩家3参与hash: A86RXxGya3S3kdt8gUGUFj7fySsd3KFH743zzyN7moFF +结算游戏hash: Ho3cb6z3TWUs2ZziZg57c1N44TkSXBu4VnVDh9BXj62t ## 05 Move Swap -- [] swap package id : -- [] call swap hash: +- [] swap package id : 0x84e8e058714bf5948b0e0283f73f434ed4f9ffa07c9bc97f0245ff02b876ee40 +- [] call swap hash: DbJDKzrdME7ymm46hhpZWVUNmcYj4oyesda664t3uvj1 ## 06 SDK PTB -- [] save hash : +- [] save hash : 4uqT7SCRZjVC8aUYZrqHbxsC6KSVXksYncA89PEGXTox diff --git a/mover/qweghj1245/code/readme.md b/mover/qweghj1245/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/qweghj1245/code/task1/hello_world/Move.lock b/mover/qweghj1245/code/task1/hello_world/Move.lock new file mode 100644 index 000000000..c3c34ef11 --- /dev/null +++ b/mover/qweghj1245/code/task1/hello_world/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "60F2000F4D6DAD240EF371DB3BC521F7BD4C8B814BC59CA473B852B77FDBE53C" +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.24.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x283113dc3e11171f904a5f8487f0f6fa6a978f99a18bb7207bef6babe3201742" +latest-published-id = "0x283113dc3e11171f904a5f8487f0f6fa6a978f99a18bb7207bef6babe3201742" +published-version = "1" diff --git a/mover/qweghj1245/code/task1/hello_world/Move.toml b/mover/qweghj1245/code/task1/hello_world/Move.toml new file mode 100644 index 000000000..201de1731 --- /dev/null +++ b/mover/qweghj1245/code/task1/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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] +hello_world = "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/qweghj1245/code/task1/hello_world/sources/hello_world.move b/mover/qweghj1245/code/task1/hello_world/sources/hello_world.move new file mode 100644 index 000000000..43025ead8 --- /dev/null +++ b/mover/qweghj1245/code/task1/hello_world/sources/hello_world.move @@ -0,0 +1,19 @@ +module hello_world::hello_world { + use sui::object::{UID, Self}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + use std::string; + + public struct HelloWorldObject has key, store { + id: UID, + text: string::String + } + + fun init(ctx: &mut TxContext) { + let object = HelloWorldObject { + id: object::new(ctx), + text: string::utf8(b"Hello World! qweghj1245") + }; + transfer::transfer(object, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/qweghj1245/code/task1/hello_world/tests/hello_world_tests.move b/mover/qweghj1245/code/task1/hello_world/tests/hello_world_tests.move new file mode 100644 index 000000000..31fb8c1ac --- /dev/null +++ b/mover/qweghj1245/code/task1/hello_world/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task1::task1_tests { + // uncomment this line to import the module + // use task1::task1; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task1() { + // pass + } + + #[test, expected_failure(abort_code = ::task1::task1_tests::ENotImplemented)] + fun test_task1_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/qweghj1245/notes/package_screenshot.png b/mover/qweghj1245/notes/package_screenshot.png new file mode 100644 index 000000000..91ae3d8de Binary files /dev/null and b/mover/qweghj1245/notes/package_screenshot.png differ diff --git a/mover/qweghj1245/notes/readme.md b/mover/qweghj1245/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/qweghj1245/notes/wallet_screenshot.png b/mover/qweghj1245/notes/wallet_screenshot.png new file mode 100644 index 000000000..f94a84150 Binary files /dev/null and b/mover/qweghj1245/notes/wallet_screenshot.png differ diff --git a/mover/qweghj1245/readme.md b/mover/qweghj1245/readme.md new file mode 100644 index 000000000..2c25388c1 --- /dev/null +++ b/mover/qweghj1245/readme.md @@ -0,0 +1,53 @@ +## 基本信息 + +- Sui 钱包地址: `0xfb728df2a5b4196e1ec810e1877a702be1ef29c13d7dfb8a2c12c6734c916968` + > 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `qweghj1245` + +## 个人简介 + +- 工作经验: 5 年 +- 技术栈: `JS` `TS` `Solidity` +- 对 MOVE 语言、Sui 生态感兴趣 +- 联系方式: email: `qweghj1245@gmail.com` + +## 任务 + +## 01 hello move + +- [] Sui cli version: 1.24.1 +- [] Sui 钱包截图: ![Sui钱包截图](./notes/wallet_screenshot.png) +- [] package id: 0x283113dc3e11171f904a5f8487f0f6fa6a978f99a18bb7207bef6babe3201742 +- [] package id 在 scan 上的查看截图:![Scan截图](./notes/package_screenshot.png) + +## 02 move coin + +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT + +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan 上的 NFT 截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game + +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap + +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 SDK PTB + +- [] save hash : diff --git a/mover/qxtlsm/code/readme.md b/mover/qxtlsm/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/qxtlsm/code/task1/hello_move/Move.lock b/mover/qxtlsm/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..31115d9bc --- /dev/null +++ b/mover/qxtlsm/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "46F6744B038786D008067EC09E70D0F147FC7321CCB75B14BDF339397E2EE2AD" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/mystenLabs/sui.git", rev = "framework/testnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/mystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x2299deb75d6eae684a164dd1aa8f8ec2592dc6d1f769acafc0c9e486bc988a11" +latest-published-id = "0x2299deb75d6eae684a164dd1aa8f8ec2592dc6d1f769acafc0c9e486bc988a11" +published-version = "1" diff --git a/mover/qxtlsm/code/task1/hello_move/Move.toml b/mover/qxtlsm/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/qxtlsm/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/qxtlsm/code/task1/hello_move/sources/hello_move.move b/mover/qxtlsm/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..e10ba8575 --- /dev/null +++ b/mover/qxtlsm/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,6 @@ +/* +/// Module: hello_move +module hello_move::hello_move { + +} +*/ diff --git a/mover/qxtlsm/code/task1/hello_move/tests/hello_move_tests.move b/mover/qxtlsm/code/task1/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/qxtlsm/code/task1/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/qxtlsm/image-1.png b/mover/qxtlsm/image-1.png new file mode 100644 index 000000000..98b6f2aa4 Binary files /dev/null and b/mover/qxtlsm/image-1.png differ diff --git a/mover/qxtlsm/image.png b/mover/qxtlsm/image.png new file mode 100644 index 000000000..e89ed292e Binary files /dev/null and b/mover/qxtlsm/image.png differ diff --git a/mover/qxtlsm/images/package.png b/mover/qxtlsm/images/package.png new file mode 100644 index 000000000..1bab2ef14 Binary files /dev/null and b/mover/qxtlsm/images/package.png differ diff --git a/mover/qxtlsm/images/sui.png b/mover/qxtlsm/images/sui.png new file mode 100644 index 000000000..15ee3d0de Binary files /dev/null and b/mover/qxtlsm/images/sui.png differ diff --git a/mover/qxtlsm/notes/readme.md b/mover/qxtlsm/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/qxtlsm/readme.md b/mover/qxtlsm/readme.md new file mode 100644 index 000000000..db9de0493 --- /dev/null +++ b/mover/qxtlsm/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x367e3d1dbd24ad5f5ddeefada134018bb070dba41f99173628bb3cb9c279016f` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `qxtlsm` + +## 个人简介 +- 工作经验: 0年 +- 技术栈:`C` +> 重要提示 请认真写自己的简介 +- 在读学生,对Move和sui特别感兴趣,想通过Move入门区块链并了解sui +- 联系方式: tg: `clealove` + +## 任务 + +## 01 hello move +- [] Sui cli version:sui 1.26.1-540d384f226a-dirty +- [] Sui钱包截图:![alt text](image.png) +- [] package id: 0x0c17719c7de6757fafc2217da2102d73ccf4a12a3eca240c29d03addf073690d +- [] package id 在 scan上的查看截图:![alt text](image-1.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/reetyo/code/readme.md b/mover/reetyo/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/reetyo/code/task1/hello_world/Move.lock b/mover/reetyo/code/task1/hello_world/Move.lock new file mode 100644 index 000000000..004760e29 --- /dev/null +++ b/mover/reetyo/code/task1/hello_world/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "60F2000F4D6DAD240EF371DB3BC521F7BD4C8B814BC59CA473B852B77FDBE53C" +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.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xfa559263f4fbe06fd4ec58bdec63de5ff728c8db98bb0c4592c9a2655689fd5b" +latest-published-id = "0xfa559263f4fbe06fd4ec58bdec63de5ff728c8db98bb0c4592c9a2655689fd5b" +published-version = "1" diff --git a/mover/reetyo/code/task1/hello_world/Move.toml b/mover/reetyo/code/task1/hello_world/Move.toml new file mode 100644 index 000000000..201de1731 --- /dev/null +++ b/mover/reetyo/code/task1/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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] +hello_world = "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/reetyo/code/task1/hello_world/sources/hello_world.move b/mover/reetyo/code/task1/hello_world/sources/hello_world.move new file mode 100644 index 000000000..2945e4282 --- /dev/null +++ b/mover/reetyo/code/task1/hello_world/sources/hello_world.move @@ -0,0 +1,20 @@ +/// Module: hello_world +module hello_world::hello_world { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"reetyo"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/reetyo/code/task1/hello_world/tests/hello_world_tests.move b/mover/reetyo/code/task1/hello_world/tests/hello_world_tests.move new file mode 100644 index 000000000..fefedbe62 --- /dev/null +++ b/mover/reetyo/code/task1/hello_world/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_world::hello_world_tests { + // uncomment this line to import the module + // use hello_world::hello_world; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_world() { + // pass + } + + #[test, expected_failure(abort_code = hello_world::hello_world_tests::ENotImplemented)] + fun test_hello_world_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/reetyo/code/task2/reetyo_coin/Move.lock b/mover/reetyo/code/task2/reetyo_coin/Move.lock new file mode 100644 index 000000000..ebbca3d0a --- /dev/null +++ b/mover/reetyo/code/task2/reetyo_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "FD2BA57868EA146EA99FEB24FE88F8F806F19D6C18B779BE3ED273B667082B3C" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xb4b55e1e81639620ee2f67b1b36c647fa7c4f0c2540ddfdaf622fda6fc61dba4" +latest-published-id = "0xb4b55e1e81639620ee2f67b1b36c647fa7c4f0c2540ddfdaf622fda6fc61dba4" +published-version = "1" diff --git a/mover/reetyo/code/task2/reetyo_coin/Move.toml b/mover/reetyo/code/task2/reetyo_coin/Move.toml new file mode 100644 index 000000000..6c4d192ad --- /dev/null +++ b/mover/reetyo/code/task2/reetyo_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "reetyo_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://github.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] +reetyo_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/reetyo/code/task2/reetyo_coin/sources/reetyo_coin.move b/mover/reetyo/code/task2/reetyo_coin/sources/reetyo_coin.move new file mode 100644 index 000000000..f9a7ca0ab --- /dev/null +++ b/mover/reetyo/code/task2/reetyo_coin/sources/reetyo_coin.move @@ -0,0 +1,32 @@ + +/// Module: reetyo_coin +module reetyo_coin::reetyo_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + public struct REETYO_COIN has drop {} + fun init(witness: REETYO_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, // decimals + b"reetyo COIN", // symbol + b"reetyo COIN", // name + b"Amazing Coin", // description + option:: none(), // icon url + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} + diff --git a/mover/reetyo/code/task2/reetyo_coin/tests/reetyo_coin_tests.move b/mover/reetyo/code/task2/reetyo_coin/tests/reetyo_coin_tests.move new file mode 100644 index 000000000..56c2a16c4 --- /dev/null +++ b/mover/reetyo/code/task2/reetyo_coin/tests/reetyo_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module reetyo_coin::reetyo_coin_tests { + // uncomment this line to import the module + // use reetyo_coin::reetyo_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_reetyo_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::reetyo_coin::reetyo_coin_tests::ENotImplemented)] + fun test_reetyo_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/reetyo/code/task2/reetyo_faucet/Move.lock b/mover/reetyo/code/task2/reetyo_faucet/Move.lock new file mode 100644 index 000000000..6545ad93e --- /dev/null +++ b/mover/reetyo/code/task2/reetyo_faucet/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C60511D9898C6DF503B78B5CABDC019ACBAACFDA58C4BCC9871AA105311C260A" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x91fd665c1d0a5cffa316da511777f27491245defcfefee2790ee18aaa64de70d" +latest-published-id = "0x91fd665c1d0a5cffa316da511777f27491245defcfefee2790ee18aaa64de70d" +published-version = "1" + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xcf2b6e1d2fb4c5431897ec0a7e453ca1f04b58025e81c0ca9918d400a77fc6d4" +latest-published-id = "0xcf2b6e1d2fb4c5431897ec0a7e453ca1f04b58025e81c0ca9918d400a77fc6d4" +published-version = "1" diff --git a/mover/reetyo/code/task2/reetyo_faucet/Move.toml b/mover/reetyo/code/task2/reetyo_faucet/Move.toml new file mode 100644 index 000000000..8dae60797 --- /dev/null +++ b/mover/reetyo/code/task2/reetyo_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "reetyo_faucet" +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/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] +reetyo_faucet = "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/reetyo/code/task2/reetyo_faucet/sources/reetyo_faucet.move b/mover/reetyo/code/task2/reetyo_faucet/sources/reetyo_faucet.move new file mode 100644 index 000000000..2edf7726d --- /dev/null +++ b/mover/reetyo/code/task2/reetyo_faucet/sources/reetyo_faucet.move @@ -0,0 +1,48 @@ +/// Module: reetyo_faucet +module reetyo_faucet::reetyo_faucet { + use sui::balance::{Balance}; + use sui::balance; + use sui::coin::{Self, TreasuryCap}; + public struct REETYO_FAUCET has drop {} + public struct PublicWallet has key { + id: UID, + coin: Balance, + faucet_amount: u64, + } + const AMOUNT: u64 = 10^12; + const EFaucetDry: u64 = 1; + #[allow(lint(share_owned))] + fun init(witness: REETYO_FAUCET, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 10, + b"Reetyo Faucet", + b"Reetyo Faucet", + b"Get some free coin", + option::none(), + ctx); + transfer::public_freeze_object(metadata); + let wallet = PublicWallet { + id: object::new(ctx), + coin: balance::zero(), + faucet_amount: AMOUNT, + }; + transfer::share_object(wallet); + transfer::public_share_object(treasury_cap) + } + public entry fun mint_faucet( + treasury_cap: &mut TreasuryCap, + amount: u64, + wallet: &mut PublicWallet, + ctx: &mut TxContext) { + let coins = coin::mint(treasury_cap, amount, ctx); + balance::join(&mut wallet.coin, coin::into_balance(coins)); + } + public entry fun get_faucet(wallet: &mut PublicWallet, ctx: &mut TxContext) { + let balance_amount = balance::value(&wallet.coin); + assert!(balance_amount >= wallet.faucet_amount, EFaucetDry); + let mint_balance = balance::split(&mut wallet.coin, wallet.faucet_amount); + let faucet_coin = coin::from_balance(mint_balance, ctx); + transfer::public_transfer(faucet_coin, tx_context::sender(ctx)); + } +} diff --git a/mover/reetyo/code/task2/reetyo_faucet/tests/reetyo_faucet_tests.move b/mover/reetyo/code/task2/reetyo_faucet/tests/reetyo_faucet_tests.move new file mode 100644 index 000000000..f23007555 --- /dev/null +++ b/mover/reetyo/code/task2/reetyo_faucet/tests/reetyo_faucet_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module reetyo_faucet::reetyo_faucet_tests { + // uncomment this line to import the module + // use reetyo_faucet::reetyo_faucet; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_reetyo_faucet() { + // pass + } + + #[test, expected_failure(abort_code = ::reetyo_faucet::reetyo_faucet_tests::ENotImplemented)] + fun test_reetyo_faucet_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/reetyo/images/sui.png b/mover/reetyo/images/sui.png new file mode 100644 index 000000000..c9dea17d4 Binary files /dev/null and b/mover/reetyo/images/sui.png differ diff --git a/mover/reetyo/images/suiscan.png b/mover/reetyo/images/suiscan.png new file mode 100644 index 000000000..39d48867b Binary files /dev/null and b/mover/reetyo/images/suiscan.png differ diff --git a/mover/reetyo/notes/readme.md b/mover/reetyo/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/reetyo/readme.md b/mover/reetyo/readme.md new file mode 100644 index 000000000..17b164176 --- /dev/null +++ b/mover/reetyo/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x96c0b971f1592db5c952a37af51af19cbfca5fef1da1f9ddac4ad30859919c09` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `reetyo` + +## 个人简介 +- 工作经验: 3年 +- 技术栈: `Objective-C` `Javascript` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `CaDiamondHand` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.27.1-f4512b72bc77suiscan.png +- [x] Sui钱包截图: ![Sui钱包截图](./images/sui.png) +- [x] package id: 0xfa559263f4fbe06fd4ec58bdec63de5ff728c8db98bb0c4592c9a2655689fd5b +- [x] package id 在 scan上的查看截图:![Scan截图](./images/suiscan.png) + +## 02 move coin +- [x] My Coin package id : 0xb4b55e1e81639620ee2f67b1b36c647fa7c4f0c2540ddfdaf622fda6fc61dba4 +- [x] Faucet package id : 0x91fd665c1d0a5cffa316da511777f27491245defcfefee2790ee18aaa64de70d +- [x] 转账 `My Coin` hash: 7UtETfwbABJrCfWqfvaCkDwLncSeevqia16iDjALqe4j +- [x] `Faucet Coin` address1 mint hash: 2zWUYm8c5RUTSLDMQsBEggA92qfxrw6QbYMWpZnqLRBV +- [x] `Faucet Coin` address2 mint hash: 5XBVBcdrPc2vWfzopLDpSEnAr7tvi8PVVEC9PSAE7KFr + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/rustbeta/code/get-faucet.sh b/mover/rustbeta/code/get-faucet.sh new file mode 100755 index 000000000..bc8f66f45 --- /dev/null +++ b/mover/rustbeta/code/get-faucet.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +recipient=$1 +curl --location --request POST 'https://faucet.devnet.sui.io/gas' \ +--header 'Content-Type: application/json' \ +--data-raw "{ + \"FixedAmountRequest\": { + \"recipient\": \"${recipient}\" + } +}" diff --git a/mover/rustbeta/code/readme.md b/mover/rustbeta/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/rustbeta/code/task1/Move.lock b/mover/rustbeta/code/task1/Move.lock new file mode 100644 index 000000000..9cf391a45 --- /dev/null +++ b/mover/rustbeta/code/task1/Move.lock @@ -0,0 +1,35 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 0 +manifest_digest = "E768714330D4EB4C2932D28AAE2EAE1EBC27A4DEF6A4D520C84BEA7FA0F75BF3" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" + +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/devnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/devnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "legacy" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "b032f5b2" +original-published-id = "0xfb34b63281b2e5b2df62e7a199419462f1e75cbf4c2f547909a162aec78a30cd" +latest-published-id = "0xfb34b63281b2e5b2df62e7a199419462f1e75cbf4c2f547909a162aec78a30cd" +published-version = "1" diff --git a/mover/rustbeta/code/task1/Move.toml b/mover/rustbeta/code/task1/Move.toml new file mode 100644 index 000000000..d662c4d4a --- /dev/null +++ b/mover/rustbeta/code/task1/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "task1" + +# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha +# 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/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] +task1 = "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/rustbeta/code/task1/sources/hello_move.move b/mover/rustbeta/code/task1/sources/hello_move.move new file mode 100644 index 000000000..d9a2ba03d --- /dev/null +++ b/mover/rustbeta/code/task1/sources/hello_move.move @@ -0,0 +1,19 @@ +module task1::hello_move { + use sui::object::{Self, UID}; + use sui::tx_context::{Self, TxContext}; + use std::string::{Self, String}; + use sui::transfer; + + struct HelloMove has key { + id: UID, + str: String, + } + + public fun say_hello(ctx: &mut TxContext) { + let greet = HelloMove { + id: object::new(ctx), + str: string::utf8(b"Hello, rustbeta!"), + }; + transfer::transfer(greet, tx_context::sender(ctx)); + } +} diff --git a/mover/rustbeta/code/task2/Move.lock b/mover/rustbeta/code/task2/Move.lock new file mode 100644 index 000000000..c55fcca40 --- /dev/null +++ b/mover/rustbeta/code/task2/Move.lock @@ -0,0 +1,35 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 0 +manifest_digest = "519D3776AE5C54FE6153381D7581195D471E7A5A2EB686BB5565595FBF5BF292" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" + +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/devnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/devnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "legacy" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "b032f5b2" +original-published-id = "0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267" +latest-published-id = "0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267" +published-version = "1" diff --git a/mover/rustbeta/code/task2/Move.toml b/mover/rustbeta/code/task2/Move.toml new file mode 100644 index 000000000..6e2d23cde --- /dev/null +++ b/mover/rustbeta/code/task2/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "task2" + +# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha +# 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/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] +task2 = "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/rustbeta/code/task2/sources/faucet_coin.move b/mover/rustbeta/code/task2/sources/faucet_coin.move new file mode 100644 index 000000000..f71788ec8 --- /dev/null +++ b/mover/rustbeta/code/task2/sources/faucet_coin.move @@ -0,0 +1,22 @@ +module task2::faucet_coin { + use std::option; + use sui::coin::{Self,Coin,TreasuryCap}; + use sui::transfer; + use sui::tx_context::{Self,TxContext}; + + struct FAUCET_COIN has drop {} + + fun init(waitness: FAUCET_COIN, ctx: &mut sui::tx_context::TxContext) { + let (treasury_cap, meta) = coin::create_currency(waitness, 18, b"rustbetaFAUCET_COIN", b"rustbetaFAUCET_COIN", b"", option::none(), ctx); + transfer::public_freeze_object(meta); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + } + + public entry fun mint(treasury_cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public entry fun burn(treasury_cap: &mut TreasuryCap, coin : Coin, _ctx: &mut TxContext) { + coin::burn(treasury_cap, coin); + } +} diff --git a/mover/rustbeta/code/task2/sources/mycoin.move b/mover/rustbeta/code/task2/sources/mycoin.move new file mode 100644 index 000000000..282568ad1 --- /dev/null +++ b/mover/rustbeta/code/task2/sources/mycoin.move @@ -0,0 +1,23 @@ +module task2::mycoin { + use std::option; + use sui::coin::{Self,Coin,TreasuryCap}; + use sui::transfer; + use sui::tx_context::{Self,TxContext}; + + struct MYCOIN has drop {} + + fun init(waitness: MYCOIN, ctx: &mut sui::tx_context::TxContext) { + let (treasury_cap, meta) = coin::create_currency(waitness, 18, b"rustbetaCOIN", b"rustbetaCOIN", b"", option::none(), ctx); + + transfer::public_freeze_object(meta); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + } + + public entry fun mint(treasury_cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public entry fun burn(treasury_cap: &mut TreasuryCap, coin : Coin, _ctx: &mut TxContext) { + coin::burn(treasury_cap, coin); + } +} diff --git a/mover/rustbeta/code/task3/Move.lock b/mover/rustbeta/code/task3/Move.lock new file mode 100644 index 000000000..8ab7d5f33 --- /dev/null +++ b/mover/rustbeta/code/task3/Move.lock @@ -0,0 +1,35 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 0 +manifest_digest = "BB2572FBA2932011BC65232DF51ECBD0A743C50B63E74E395455C134BC8FF751" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" + +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/devnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/devnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "legacy" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "b032f5b2" +original-published-id = "0x9a1b725175fdabd8f98febd957c9be9706cd4562c33b11a985cfb2b9dcdd9391" +latest-published-id = "0x9a1b725175fdabd8f98febd957c9be9706cd4562c33b11a985cfb2b9dcdd9391" +published-version = "1" diff --git a/mover/rustbeta/code/task3/Move.toml b/mover/rustbeta/code/task3/Move.toml new file mode 100644 index 000000000..6a6286d5a --- /dev/null +++ b/mover/rustbeta/code/task3/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "task3" + +# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha +# 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/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] +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" + diff --git a/mover/rustbeta/code/task3/sources/move_nft.move b/mover/rustbeta/code/task3/sources/move_nft.move new file mode 100644 index 000000000..0946e4ef9 --- /dev/null +++ b/mover/rustbeta/code/task3/sources/move_nft.move @@ -0,0 +1,76 @@ + +module task3::move_nft { + use sui::url::{Url, Self}; + use std::string; + use sui::object::{Self, ID, UID}; + use sui::event; + use sui::transfer; + use sui::tx_context::{TxContext, Self}; + + struct MoveNFT has key, store { + id: UID, + name: string::String, + description: string::String, + url: Url, + } + + struct MoveNFTTransferEvent has copy, drop { + object_id: ID, + creator: address, + name: string::String, + } + + public fun name(nft: &MoveNFT): &string::String { + &nft.name + } + + public fun description(nft: &MoveNFT): &string::String { + &nft.description + } + + public fun url(nft: &MoveNFT): &Url { + &nft.url + } + + public entry fun mint_to_sender( + name: vector, + description: vector, + url: vector, + ctx: &mut TxContext + ) { + let sender = tx_context::sender(ctx); + let nft = MoveNFT { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + url: url::new_unsafe_from_bytes(url) + }; + + event::emit(MoveNFTTransferEvent { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + public entry fun transfer( + nft: MoveNFT, recipient: address, _: &mut TxContext + ) { + transfer::public_transfer(nft, recipient) + } + + public entry fun update_description( + nft: &mut MoveNFT, + new_description: vector, + _: &mut TxContext + ) { + nft.description = string::utf8(new_description) + } + + public entry fun burn(nft: MoveNFT, _: &mut TxContext) { + let MoveNFT { id, name: _, description: _, url: _ } = nft; + object::delete(id) + } +} \ No newline at end of file diff --git a/mover/rustbeta/images/sui-wallet.png b/mover/rustbeta/images/sui-wallet.png new file mode 100644 index 000000000..989d90a5d Binary files /dev/null and b/mover/rustbeta/images/sui-wallet.png differ diff --git a/mover/rustbeta/images/task1.png b/mover/rustbeta/images/task1.png new file mode 100644 index 000000000..6bb19e531 Binary files /dev/null and b/mover/rustbeta/images/task1.png differ diff --git a/mover/rustbeta/images/task3.png b/mover/rustbeta/images/task3.png new file mode 100644 index 000000000..00a16806e Binary files /dev/null and b/mover/rustbeta/images/task3.png differ diff --git a/mover/rustbeta/notes/readme.md b/mover/rustbeta/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/rustbeta/notes/task1.md b/mover/rustbeta/notes/task1.md new file mode 100644 index 000000000..6d3732722 --- /dev/null +++ b/mover/rustbeta/notes/task1.md @@ -0,0 +1,238 @@ + +# Task1 + +## Sui 版本 + +> 直接下载官方包解压,直接使用 + +```bash +sui --version +sui 1.28.0-6a179c58a848 +``` + +## DevNet 环境准备 + +```bash +sui client envs +╭────────┬────────────────────────────────────┬────────╮ +│ alias │ url │ active │ +├────────┼────────────────────────────────────┼────────┤ +│ devnet │ https://fullnode.devnet.sui.io:443 │ * │ +╰────────┴────────────────────────────────────┴────────╯ +``` + +## 确认钱包是否有钱 + +```bash +sui client gas +[warn] Client/Server api version mismatch, client api version : 1.21.1, server api version : 1.22.0 +╭────────────────────────────────────────────────────────────────────┬────────────────────┬──────────────────╮ +│ gasCoinId │ mistBalance (MIST) │ suiBalance (SUI) │ +├────────────────────────────────────────────────────────────────────┼────────────────────┼──────────────────┤ +│ 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ 10000000000 │ 10.00 │ +╰────────────────────────────────────────────────────────────────────┴────────────────────┴──────────────────╯ +``` + +## 编写合约 + +* 执行`sui move new task1` 创建合约 package +* 在 `sources` 目录下创建 `hello_move.move` 合约,内容源于官方sample +* 修改 str 内容为 `Hello, rustbeta!`; + +```rust +module task1::hello_move { + use sui::object::{Self, UID}; + use sui::tx_context::{Self, TxContext}; + use std::string::{Self, String}; + use sui::transfer; + + struct HelloMove has key { + id: UID, + str: String, + } + + public fun say_hello(ctx: &mut TxContext) { + let greet = HelloMove { + id: object::new(ctx), + str: string::utf8(b"Hello, rustbeta!"), + }; + transfer::transfer(greet, tx_context::sender(ctx)); + } +} +``` + +## 取水 + +* 封装脚本 `get-faucet.sh`,内容如下: + +```bash +#!/bin/bash + +recipient=$1 +curl --location --request POST 'https://faucet.devnet.sui.io/gas' \ +--header 'Content-Type: application/json' \ +--data-raw "{ + \"FixedAmountRequest\": { + \"recipient\": \"${recipient}\" + } +}" +``` + +* 执行脚本取水 + +```bash +./get-faucet.sh 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc +{"transferredGasObjects":[{"amount":10000000000,"id":"0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967","transferTxDigest":"CwNYgHvweeRjjnm9EehjpzeUXTubAsidbfpkpvtyi8uT"}],"error":null} +``` + +## 编译合约 + +```bash +sui move build +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING task1 +``` + +## 部署合约 + +```bash +sui client publish --gas-budget 20000000 + +[warn] Client/Server api version mismatch, client api version : 1.28.0, server api version : 1.29.0 +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING task1 +Successfully verified dependencies on-chain against source. +Transaction Digest: 2n4WJq1SRb9odCLqXzCQB6VAvvUocdCcTZpP7j8Lb9TR +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ Gas Owner: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ Gas Budget: 20000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Version: 75 │ +│ │ Digest: 8vRP8jwjA7YSQnRjYkEEaEP1prwKed5jEkn7QguQPMLE │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ LW6IKFKmWBJWKggqFavuE5YHFyDo0rEh8+dzpAjvhdGVEcqq8avvv5jxPa7A58woHG2oyMSKA/A9O5dNDIotCA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 2n4WJq1SRb9odCLqXzCQB6VAvvUocdCcTZpP7j8Lb9TR │ +│ Status: Success │ +│ Executed Epoch: 128 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x72100832529e3a3991856c9567b4c0204a12f54019d7c2f25039871aff988b1d │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 76 │ +│ │ Digest: 3Qo6B1vS6Cngu8V6oWiETC3LiLWoUbGxBPH3fETLVR85 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xfb34b63281b2e5b2df62e7a199419462f1e75cbf4c2f547909a162aec78a30cd │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: A2SBjDoNJXSZNEiJEa7X3nKK7GMbNi1eUdMKSEhMuhVQ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 76 │ +│ │ Digest: 7TWKrgtVnfHSrSjke6gFiPxcZ1vY4SYv9GZVGAmuXUio │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 76 │ +│ │ Digest: 7TWKrgtVnfHSrSjke6gFiPxcZ1vY4SYv9GZVGAmuXUio │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 7759600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ CwNYgHvweeRjjnm9EehjpzeUXTubAsidbfpkpvtyi8uT │ +│ E4KEoBaW3osvyMtt8H11XTND1pPmX32e4d4RPgfZU3p7 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x72100832529e3a3991856c9567b4c0204a12f54019d7c2f25039871aff988b1d │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 76 │ +│ │ Digest: 3Qo6B1vS6Cngu8V6oWiETC3LiLWoUbGxBPH3fETLVR85 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 76 │ +│ │ Digest: 7TWKrgtVnfHSrSjke6gFiPxcZ1vY4SYv9GZVGAmuXUio │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xfb34b63281b2e5b2df62e7a199419462f1e75cbf4c2f547909a162aec78a30cd │ +│ │ Version: 1 │ +│ │ Digest: A2SBjDoNJXSZNEiJEa7X3nKK7GMbNi1eUdMKSEhMuhVQ │ +│ │ Modules: hello_move │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -7781480 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` \ No newline at end of file diff --git a/mover/rustbeta/notes/task2.md b/mover/rustbeta/notes/task2.md new file mode 100644 index 000000000..40eaae466 --- /dev/null +++ b/mover/rustbeta/notes/task2.md @@ -0,0 +1,633 @@ +### Task2 + +```bash +> sui move build +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING task2 +``` + +```bash +sui client publish --gas-budget 50000000 --skip-dependency-verification + +[warn] Client/Server api version mismatch, client api version : 1.28.0, server api version : 1.29.0 +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING task2 +Skipping dependency verification +Transaction Digest: E5n3wX9WdZ4NZSRddxKRMHpqigzCdWaRy1aYK4cnQPme +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ Gas Owner: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ Gas Budget: 50000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Version: 76 │ +│ │ Digest: 7TWKrgtVnfHSrSjke6gFiPxcZ1vY4SYv9GZVGAmuXUio │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ +BUWE5OF28fg6fPfkfv8kHx7ACnf0p2TTW6hGkEIRp+HuWllQHF+bD49wlZq3XJhNsDZzyUf3x2zyPhHOaULDg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: E5n3wX9WdZ4NZSRddxKRMHpqigzCdWaRy1aYK4cnQPme │ +│ Status: Success │ +│ Executed Epoch: 128 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x17e9fe74c17ac73dbc99d4a169f5347e191571db4a279d2306a236e7cb15d17a │ +│ │ Owner: Immutable │ +│ │ Version: 77 │ +│ │ Digest: 9sSCt2EZELMN2GJcdTfiGmRYCK87LPgnz9XwnjSN2dVj │ +│ └── │ +│ ┌── │ +│ │ ID: 0x61b135d6dce003c37c37462cc8f5a56d989a86d8a946e11c41f22bd7cf2fc642 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 77 │ +│ │ Digest: tKEGLnsDRRZWXJ6CGDXPMBstLyzUmTBgympN6RzLPMQ │ +│ └── │ +│ ┌── │ +│ │ ID: 0x94d6b0fa1f374b564043ef5d30b30ab6cf2e3da166676e97721c2bf255d9dc4b │ +│ │ Owner: Immutable │ +│ │ Version: 77 │ +│ │ Digest: 9JfWADpC2sgxWAnU1vkqKgo6Bd99VvLCs47BnvfANoC2 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: HV12feP16Eep4Cp9x3dueqKW1zYKHZuotFCcQvjkNcLh │ +│ └── │ +│ ┌── │ +│ │ ID: 0xb04196f7bbfcd6f0ea992407181c22f35a878cf9a18593e499e0155483db8ca9 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 77 │ +│ │ Digest: 7vJPULER7HC9KwaFnrrTLYsXjiouFmds8yxmpDZJTzLa │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf1c2d4658ab2c0ffcb9665a69a03dddca13f4919060b4f72e1265f6b2ef6ccd8 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 77 │ +│ │ Digest: GdDNvpRFoRLejm2NnxLR79poQHJTah1m2waUf8wwbRpQ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 77 │ +│ │ Digest: 4GbsdMf3QzspXxrrtAWw8hc2K8pEpp1vze9LXG25okPD │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 77 │ +│ │ Digest: 4GbsdMf3QzspXxrrtAWw8hc2K8pEpp1vze9LXG25okPD │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 23598000 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 2n4WJq1SRb9odCLqXzCQB6VAvvUocdCcTZpP7j8Lb9TR │ +│ E4KEoBaW3osvyMtt8H11XTND1pPmX32e4d4RPgfZU3p7 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x17e9fe74c17ac73dbc99d4a169f5347e191571db4a279d2306a236e7cb15d17a │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267::mycoin::MYCOIN> │ +│ │ Version: 77 │ +│ │ Digest: 9sSCt2EZELMN2GJcdTfiGmRYCK87LPgnz9XwnjSN2dVj │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x61b135d6dce003c37c37462cc8f5a56d989a86d8a946e11c41f22bd7cf2fc642 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267::mycoin::MYCOIN> │ +│ │ Version: 77 │ +│ │ Digest: tKEGLnsDRRZWXJ6CGDXPMBstLyzUmTBgympN6RzLPMQ │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x94d6b0fa1f374b564043ef5d30b30ab6cf2e3da166676e97721c2bf255d9dc4b │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267::faucet_coin::FAUCET_COIN> │ +│ │ Version: 77 │ +│ │ Digest: 9JfWADpC2sgxWAnU1vkqKgo6Bd99VvLCs47BnvfANoC2 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xb04196f7bbfcd6f0ea992407181c22f35a878cf9a18593e499e0155483db8ca9 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 77 │ +│ │ Digest: 7vJPULER7HC9KwaFnrrTLYsXjiouFmds8yxmpDZJTzLa │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xf1c2d4658ab2c0ffcb9665a69a03dddca13f4919060b4f72e1265f6b2ef6ccd8 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267::faucet_coin::FAUCET_COIN> │ +│ │ Version: 77 │ +│ │ Digest: GdDNvpRFoRLejm2NnxLR79poQHJTah1m2waUf8wwbRpQ │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 77 │ +│ │ Digest: 4GbsdMf3QzspXxrrtAWw8hc2K8pEpp1vze9LXG25okPD │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267 │ +│ │ Version: 1 │ +│ │ Digest: HV12feP16Eep4Cp9x3dueqKW1zYKHZuotFCcQvjkNcLh │ +│ │ Modules: faucet_coin, mycoin │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -23619880 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` + + +## Mint 地址1 + +```bash +sui client call --function mint --module faucet_coin --package 0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267 --gas-budget 5000000 --args 0xf1c2d4658ab2c0ffcb9665a69a03dddca13f4919060b4f72e1265f6b2ef6ccd8 100 0xb2886490b40668a555515fa7faa9de0b590464a0868ef2876202b494ac9ccdb9 + +[warn] Client/Server api version mismatch, client api version : 1.28.0, server api version : 1.29.0 +Transaction Digest: H8tab1Wx7SazaPxQSzS4WCfDP58R2oWMqSPWwDnBYHWV +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ Gas Owner: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ Gas Budget: 5000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Version: 77 │ +│ │ Digest: 4GbsdMf3QzspXxrrtAWw8hc2K8pEpp1vze9LXG25okPD │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0xf1c2d4658ab2c0ffcb9665a69a03dddca13f4919060b4f72e1265f6b2ef6ccd8 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "100" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0xb2886490b40668a555515fa7faa9de0b590464a0868ef2876202b494ac9ccdb9" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: faucet_coin │ │ +│ │ │ Package: 0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ cYjkbZD2bYWboMHr1ORFj/pRLqNj321W410X1maj7WxAcr1et1dmlLQ8a2MDpXH5MR2ApVWCp95xNS4j3yUkBA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: H8tab1Wx7SazaPxQSzS4WCfDP58R2oWMqSPWwDnBYHWV │ +│ Status: Success │ +│ Executed Epoch: 129 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x50abbc8346c5d5ac77bb3364f11567b60d1a82cb2bfc812de04aa2b60516c4da │ +│ │ Owner: Account Address ( 0xb2886490b40668a555515fa7faa9de0b590464a0868ef2876202b494ac9ccdb9 ) │ +│ │ Version: 78 │ +│ │ Digest: B73WhmYhJYYfKRD8cERvEvsAr3p6pBmoTcJEj4bfPYAp │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 78 │ +│ │ Digest: 2ScUfWEAMYAumaUQFdhymWoPyW12FrsKApFojGxuiSP5 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf1c2d4658ab2c0ffcb9665a69a03dddca13f4919060b4f72e1265f6b2ef6ccd8 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 78 │ +│ │ Digest: 5DkTk7AYWJVqUjK87hZHTovbWXHxhUt3ozmZcpF1gF5z │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 78 │ +│ │ Digest: 2ScUfWEAMYAumaUQFdhymWoPyW12FrsKApFojGxuiSP5 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4225600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2768832 MIST │ +│ Non-refundable Storage Fee: 27968 MIST │ +│ │ +│ Transaction Dependencies: │ +│ E5n3wX9WdZ4NZSRddxKRMHpqigzCdWaRy1aYK4cnQPme │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x50abbc8346c5d5ac77bb3364f11567b60d1a82cb2bfc812de04aa2b60516c4da │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xb2886490b40668a555515fa7faa9de0b590464a0868ef2876202b494ac9ccdb9 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267::faucet_coin::FAUCET_COIN> │ +│ │ Version: 78 │ +│ │ Digest: B73WhmYhJYYfKRD8cERvEvsAr3p6pBmoTcJEj4bfPYAp │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 78 │ +│ │ Digest: 2ScUfWEAMYAumaUQFdhymWoPyW12FrsKApFojGxuiSP5 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xf1c2d4658ab2c0ffcb9665a69a03dddca13f4919060b4f72e1265f6b2ef6ccd8 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267::faucet_coin::FAUCET_COIN> │ +│ │ Version: 78 │ +│ │ Digest: 5DkTk7AYWJVqUjK87hZHTovbWXHxhUt3ozmZcpF1gF5z │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xb2886490b40668a555515fa7faa9de0b590464a0868ef2876202b494ac9ccdb9 ) │ +│ │ CoinType: 0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267::faucet_coin::FAUCET_COIN │ +│ │ Amount: 100 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2456768 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` + + +## Mint 地址2 + +```bash +sui client call --function mint --module faucet_coin --package 0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267 --gas-budget 5000000 --args 0xf1c2d4658ab2c0ffcb9665a69a03dddca13f4919060b4f72e1265f6b2ef6ccd8 1000000000000000000 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc + +[warn] Client/Server api version mismatch, client api version : 1.28.0, server api version : 1.29.0 +Transaction Digest: BQPAyxHXXkxv61AF1KZxoV1dYb4JSbfFVfPyFHuVqHrR +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ Gas Owner: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ Gas Budget: 5000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Version: 87 │ +│ │ Digest: GEWbwekzTuiqZvYcUAa3xpXxVSUAy2KnqgBPNM5i3DgD │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0xf1c2d4658ab2c0ffcb9665a69a03dddca13f4919060b4f72e1265f6b2ef6ccd8 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "1000000000000000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: faucet_coin │ │ +│ │ │ Package: 0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ PAzEC9gBp6Cc8cEAw+5ap0+x2z9/A5D+hK/O7MLnQ9FhcDHl+28G4yCBokXjqoGmAzNoPioEBSfCwTox4jhPBQ== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: BQPAyxHXXkxv61AF1KZxoV1dYb4JSbfFVfPyFHuVqHrR │ +│ Status: Success │ +│ Executed Epoch: 129 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x8815b057b7483ef5d1191954e9672c88ca1356493424c3fb179cc10c76989396 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 88 │ +│ │ Digest: GFSeV1igxe3iJ9wWQBV1XCgTMgDSpM89L1GKcvtC7YB1 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 88 │ +│ │ Digest: Hrwoy5R28GNQteiKfDKZAx19k6RW5PaH2X4KCPBsRyV9 │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf1c2d4658ab2c0ffcb9665a69a03dddca13f4919060b4f72e1265f6b2ef6ccd8 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 88 │ +│ │ Digest: 4JnAggpfiwg2QBxMfuA9gbKA9cZ3gtf6nPzaKcyAjBni │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 88 │ +│ │ Digest: Hrwoy5R28GNQteiKfDKZAx19k6RW5PaH2X4KCPBsRyV9 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4225600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2768832 MIST │ +│ Non-refundable Storage Fee: 27968 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 45w1YqnmYC7meR6iya4ehQKEH8k6bYouGFzKZ5Fn34WD │ +│ 9tDrR8w31XdCAAeJPg5eKPM3B87oeRE9GoJgCQkS44UL │ +│ E5n3wX9WdZ4NZSRddxKRMHpqigzCdWaRy1aYK4cnQPme │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x8815b057b7483ef5d1191954e9672c88ca1356493424c3fb179cc10c76989396 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::coin::Coin<0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267::faucet_coin::FAUCET_COIN> │ +│ │ Version: 88 │ +│ │ Digest: GFSeV1igxe3iJ9wWQBV1XCgTMgDSpM89L1GKcvtC7YB1 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 88 │ +│ │ Digest: Hrwoy5R28GNQteiKfDKZAx19k6RW5PaH2X4KCPBsRyV9 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xf1c2d4658ab2c0ffcb9665a69a03dddca13f4919060b4f72e1265f6b2ef6ccd8 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267::faucet_coin::FAUCET_COIN> │ +│ │ Version: 88 │ +│ │ Digest: 4JnAggpfiwg2QBxMfuA9gbKA9cZ3gtf6nPzaKcyAjBni │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2456768 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ CoinType: 0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267::faucet_coin::FAUCET_COIN │ +│ │ Amount: 1000000000000000000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` + +## MyCoin Mint + +```bash +sui client call --function mint --module mycoin --package 0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267 --gas-budget 5000000 --args 0x61b135d6dce003c37c37462cc8f5a56d989a86d8a946e11c41f22bd7cf2fc642 1000000000000000000 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc + +[warn] Client/Server api version mismatch, client api version : 1.28.0, server api version : 1.29.0 +Transaction Digest: 6Mx8AqRrdsA1SVJb8WvioJ8Q3abFZ8MMmzwyc7WJL33e +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ Gas Owner: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ Gas Budget: 5000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Version: 82 │ +│ │ Digest: EqFfo7JqNvzSyhVDUAsNYAWYGXHSyFm65D9RTXEtyHAj │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x61b135d6dce003c37c37462cc8f5a56d989a86d8a946e11c41f22bd7cf2fc642 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "1000000000000000000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: mycoin │ │ +│ │ │ Package: 0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ HxQde4HktIJzx7NbfqLBXk1PIN29QC1Eb1WGtT25/2XcgMZN0KKua5KqqBUKQchtvlNTwuDhzxRoB9QzrR0GBw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 6Mx8AqRrdsA1SVJb8WvioJ8Q3abFZ8MMmzwyc7WJL33e │ +│ Status: Success │ +│ Executed Epoch: 129 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x24719f42df43f1534941f696c7a0b1f5e1a39b54fecedab3ba3d5509a1cdc49e │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 83 │ +│ │ Digest: 9hj2CAzJfMoh9NRDDHwPeNu2PJA7EBeAhwbmAxjxmLCD │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 83 │ +│ │ Digest: 5T3dXmKafRPxV5w6Rw5z6wpZQBy8ZfrVb4QWYfqtkYaR │ +│ └── │ +│ ┌── │ +│ │ ID: 0x61b135d6dce003c37c37462cc8f5a56d989a86d8a946e11c41f22bd7cf2fc642 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 83 │ +│ │ Digest: AkHBT78bi58MEAyRYwfE92aFRw656nxRfAdPEYTBAjf7 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 83 │ +│ │ Digest: 5T3dXmKafRPxV5w6Rw5z6wpZQBy8ZfrVb4QWYfqtkYaR │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4073600 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2693592 MIST │ +│ Non-refundable Storage Fee: 27208 MIST │ +│ │ +│ Transaction Dependencies: │ +│ E5n3wX9WdZ4NZSRddxKRMHpqigzCdWaRy1aYK4cnQPme │ +│ J4D23H86kWrRf46fZN9yDgpDZPvbAKnGcE59DcXnbgBB │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x24719f42df43f1534941f696c7a0b1f5e1a39b54fecedab3ba3d5509a1cdc49e │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::coin::Coin<0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267::mycoin::MYCOIN> │ +│ │ Version: 83 │ +│ │ Digest: 9hj2CAzJfMoh9NRDDHwPeNu2PJA7EBeAhwbmAxjxmLCD │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 83 │ +│ │ Digest: 5T3dXmKafRPxV5w6Rw5z6wpZQBy8ZfrVb4QWYfqtkYaR │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x61b135d6dce003c37c37462cc8f5a56d989a86d8a946e11c41f22bd7cf2fc642 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267::mycoin::MYCOIN> │ +│ │ Version: 83 │ +│ │ Digest: AkHBT78bi58MEAyRYwfE92aFRw656nxRfAdPEYTBAjf7 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2380008 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ CoinType: 0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267::mycoin::MYCOIN │ +│ │ Amount: 1000000000000000000 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` \ No newline at end of file diff --git a/mover/rustbeta/notes/task3.md b/mover/rustbeta/notes/task3.md new file mode 100644 index 000000000..572e11ba0 --- /dev/null +++ b/mover/rustbeta/notes/task3.md @@ -0,0 +1,402 @@ +# Task3 + +```bash +> sui move build +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING task3 +``` + +```bash +> sui client publish --gas-budget 50000000 --skip-dependency-verification +sui client publish --gas-budget 50000000 --skip-dependency-verification +[warn] Client/Server api version mismatch, client api version : 1.28.0, server api version : 1.29.0 +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING task3 +Skipping dependency verification +Transaction Digest: 3f9t4LyByvMf9PtufDNHb9Q16bNQk9EfbmPrKu5rdJUc +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ Gas Owner: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ Gas Budget: 50000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Version: 84 │ +│ │ Digest: HpHhN8wNedo4jMpkQquEyeWJuv2RDWCznJgH1aJ3UwFP │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ aILrilGY6VQUfWefY9fDhEpuMJTOOGj0obpWi2+3641oQTtwLed37WGlBfRjSmKQy3Anz/gFurpU2dcLilOHDA== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 3f9t4LyByvMf9PtufDNHb9Q16bNQk9EfbmPrKu5rdJUc │ +│ Status: Success │ +│ Executed Epoch: 129 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x6b17762b14b53e52a0b1dae1a8a4fe406b312bc04928abdd9d89752e849a7ca9 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 85 │ +│ │ Digest: 9tkmDbQY8RCuPFHCxygtGQgTEgBkK28baCe7PenA5So7 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x9a1b725175fdabd8f98febd957c9be9706cd4562c33b11a985cfb2b9dcdd9391 │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 8itLnMREJWbpQ5dvotxKqiP28dKhXYiKxXLQ4HoJKutY │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 85 │ +│ │ Digest: 2C7aPV6o8c1TncPZK1t21shny1j6xFLhawutYSic91GN │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 85 │ +│ │ Digest: 2C7aPV6o8c1TncPZK1t21shny1j6xFLhawutYSic91GN │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 11172000 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 4SW7smWcZp4sKS5o9vaSAUEjMojpsbkWQmxNrBbfnbUp │ +│ E4KEoBaW3osvyMtt8H11XTND1pPmX32e4d4RPgfZU3p7 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x6b17762b14b53e52a0b1dae1a8a4fe406b312bc04928abdd9d89752e849a7ca9 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 85 │ +│ │ Digest: 9tkmDbQY8RCuPFHCxygtGQgTEgBkK28baCe7PenA5So7 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 85 │ +│ │ Digest: 2C7aPV6o8c1TncPZK1t21shny1j6xFLhawutYSic91GN │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0x9a1b725175fdabd8f98febd957c9be9706cd4562c33b11a985cfb2b9dcdd9391 │ +│ │ Version: 1 │ +│ │ Digest: 8itLnMREJWbpQ5dvotxKqiP28dKhXYiKxXLQ4HoJKutY │ +│ │ Modules: move_nft │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -11193880 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` + + +```bash +sui client call --function mint_to_sender --module move_nft --package 0x9a1b725175fdabd8f98febd957c9be9706cd4562c33b11a985cfb2b9dcdd9391 --gas-budget 4000000 --args RustBetaNFT "rustbeta MoveNFT in the World" "https://avatars.githubusercontent.com/u/174920020?v=4" + +[warn] Client/Server api version mismatch, client api version : 1.28.0, server api version : 1.29.0 +Transaction Digest: 33eno8wurS5CFYFwNFUoA6YJV2KAPGFBP7Hmy6M3T8K6 +╭────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ Gas Owner: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ Gas Budget: 4000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Version: 85 │ +│ │ Digest: 2C7aPV6o8c1TncPZK1t21shny1j6xFLhawutYSic91GN │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: "RustBetaNFT" │ │ +│ │ 1 Pure Arg: Type: vector, Value: "rustbeta MoveNFT in the World" │ │ +│ │ 2 Pure Arg: Type: vector, Value: "https://avatars.githubusercontent.com/u/174920020?v=4" │ │ +│ ╰────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint_to_sender │ │ +│ │ │ Module: move_nft │ │ +│ │ │ Package: 0x9a1b725175fdabd8f98febd957c9be9706cd4562c33b11a985cfb2b9dcdd9391 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ zzIVOquou+WxGQpHKhqYJVidewnJYD4cqmF6/R6ql9noMkPTaQ7qKzZQmmmdg/Mo9l8zMCxnYYvfWFT5R8CqAQ== │ +│ │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 33eno8wurS5CFYFwNFUoA6YJV2KAPGFBP7Hmy6M3T8K6 │ +│ Status: Success │ +│ Executed Epoch: 129 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x0960adc5b398f3fbbceee4a00561a31a418636fa64e95047bff3813d79a3d467 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 86 │ +│ │ Digest: 8VM7NAzLC3zBA1HnTHB451MhtU2o2oADAPq7oV89YWzA │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 86 │ +│ │ Digest: 7pwxBPQUBV1PvHeqUph48gifWP4BoUzfF2Q2PrSTr549 │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 86 │ +│ │ Digest: 7pwxBPQUBV1PvHeqUph48gifWP4BoUzfF2Q2PrSTr549 │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3024800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 3f9t4LyByvMf9PtufDNHb9Q16bNQk9EfbmPrKu5rdJUc │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 33eno8wurS5CFYFwNFUoA6YJV2KAPGFBP7Hmy6M3T8K6:0 │ +│ │ PackageID: 0x9a1b725175fdabd8f98febd957c9be9706cd4562c33b11a985cfb2b9dcdd9391 │ +│ │ Transaction Module: move_nft │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ EventType: 0x9a1b725175fdabd8f98febd957c9be9706cd4562c33b11a985cfb2b9dcdd9391::move_nft::MoveNFTTransferEvent │ +│ │ ParsedJSON: │ +│ │ ┌───────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ creator │ 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ name │ RustBetaNFT │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ object_id │ 0x0960adc5b398f3fbbceee4a00561a31a418636fa64e95047bff3813d79a3d467 │ │ +│ │ └───────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0960adc5b398f3fbbceee4a00561a31a418636fa64e95047bff3813d79a3d467 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x9a1b725175fdabd8f98febd957c9be9706cd4562c33b11a985cfb2b9dcdd9391::move_nft::MoveNFT │ +│ │ Version: 86 │ +│ │ Digest: 8VM7NAzLC3zBA1HnTHB451MhtU2o2oADAPq7oV89YWzA │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 86 │ +│ │ Digest: 7pwxBPQUBV1PvHeqUph48gifWP4BoUzfF2Q2PrSTr549 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -3046680 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` + + +```bash +sui client call --function transfer --module move_nft --package 0x9a1b725175fdabd8f98febd957c9be9706cd4562c33b11a985cfb2b9dcdd9391 --gas-budget 2000000 --args 0x0960adc5b398f3fbbceee4a00561a31a418636fa64e95047bff3813d79a3d467 0xb2886490b40668a555515fa7faa9de0b590464a0868ef2876202b494ac9ccdb9 + +[warn] Client/Server api version mismatch, client api version : 1.28.0, server api version : 1.29.0 +Transaction Digest: 45w1YqnmYC7meR6iya4ehQKEH8k6bYouGFzKZ5Fn34WD +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ Gas Owner: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ Gas Budget: 2000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Version: 86 │ +│ │ Digest: 7pwxBPQUBV1PvHeqUph48gifWP4BoUzfF2Q2PrSTr549 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x0960adc5b398f3fbbceee4a00561a31a418636fa64e95047bff3813d79a3d467 │ │ +│ │ 1 Pure Arg: Type: address, Value: "0xb2886490b40668a555515fa7faa9de0b590464a0868ef2876202b494ac9ccdb9" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: transfer │ │ +│ │ │ Module: move_nft │ │ +│ │ │ Package: 0x9a1b725175fdabd8f98febd957c9be9706cd4562c33b11a985cfb2b9dcdd9391 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ 9d6s4n8cHp0bxvW/JDC/tMtGXvIYsVafepr0VlRQeANCN0wTdkTEhBmDzKuud/md0jGHlphCefvi2a0BhmhbBg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 45w1YqnmYC7meR6iya4ehQKEH8k6bYouGFzKZ5Fn34WD │ +│ Status: Success │ +│ Executed Epoch: 129 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0960adc5b398f3fbbceee4a00561a31a418636fa64e95047bff3813d79a3d467 │ +│ │ Owner: Account Address ( 0xb2886490b40668a555515fa7faa9de0b590464a0868ef2876202b494ac9ccdb9 ) │ +│ │ Version: 87 │ +│ │ Digest: 7osENyNDCeheWxrpqEA3Xypyqm5Tp5Ee5KVKsEaFXZbu │ +│ └── │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 87 │ +│ │ Digest: GEWbwekzTuiqZvYcUAa3xpXxVSUAy2KnqgBPNM5i3DgD │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ Version: 87 │ +│ │ Digest: GEWbwekzTuiqZvYcUAa3xpXxVSUAy2KnqgBPNM5i3DgD │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 3024800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2994552 MIST │ +│ Non-refundable Storage Fee: 30248 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 33eno8wurS5CFYFwNFUoA6YJV2KAPGFBP7Hmy6M3T8K6 │ +│ 3f9t4LyByvMf9PtufDNHb9Q16bNQk9EfbmPrKu5rdJUc │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭───────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0960adc5b398f3fbbceee4a00561a31a418636fa64e95047bff3813d79a3d467 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xb2886490b40668a555515fa7faa9de0b590464a0868ef2876202b494ac9ccdb9 ) │ +│ │ ObjectType: 0x9a1b725175fdabd8f98febd957c9be9706cd4562c33b11a985cfb2b9dcdd9391::move_nft::MoveNFT │ +│ │ Version: 87 │ +│ │ Digest: 7osENyNDCeheWxrpqEA3Xypyqm5Tp5Ee5KVKsEaFXZbu │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x60a9c68568b8cb395b5a5c0308ab6599f1fa12f121e8c40f6bf04b5a828a9967 │ +│ │ Sender: 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 87 │ +│ │ Digest: GEWbwekzTuiqZvYcUAa3xpXxVSUAy2KnqgBPNM5i3DgD │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xdb5265b6807b97c15a80059c8df5f8e9287c2c3ec7354cac2a95d3968b4f85cc ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1030248 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` \ No newline at end of file diff --git a/mover/rustbeta/readme.md b/mover/rustbeta/readme.md new file mode 100644 index 000000000..61e1392f6 --- /dev/null +++ b/mover/rustbeta/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xb2886490b40668a555515fa7faa9de0b590464a0868ef2876202b494ac9ccdb9` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `rustbeta` + +## 个人简介 +- 工作经验: 10+年 +- 技术栈: `Rust` +> 重要提示 请认真写自己的简介 +- 10+年 web2 开发老鸟,失业一年,因为超喜欢 Rust,于是对 Move 特别感兴趣,想通过 Move 入门区块链 +- 联系方式: tg: `rustbeta` + +## 任务 + +## 01 hello move +- [*] Sui cli version: sui 1.28.0-6a179c58a848 +- [*] Sui钱包截图: ![Sui钱包截图](./images/sui-wallet.png) +- [*] package id: 0xfb34b63281b2e5b2df62e7a199419462f1e75cbf4c2f547909a162aec78a30cd +- [*] package id 在 scan上的查看截图:![Scan截图](./images/task1.png) + +## 02 move coin +- [*] My Coin package id : 0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267 +- [*] Faucet package id : 0xad41c4fd85b1b8122a32be738ec0c1adff0ef65493a50f0047f6f33ce39a8267 +- [*] 转账 `My Coin` hash: 4SW7smWcZp4sKS5o9vaSAUEjMojpsbkWQmxNrBbfnbUp +- [*] `Faucet Coin` address1 mint hash: H8tab1Wx7SazaPxQSzS4WCfDP58R2oWMqSPWwDnBYHWV +- [*] `Faucet Coin` address2 mint hash: BQPAyxHXXkxv61AF1KZxoV1dYb4JSbfFVfPyFHuVqHrR + +## 03 move NFT +- [*] nft package id : 0x9a1b725175fdabd8f98febd957c9be9706cd4562c33b11a985cfb2b9dcdd9391 +- [*] nft object id : 0x0960adc5b398f3fbbceee4a00561a31a418636fa64e95047bff3813d79a3d467 +- [*] 转账 nft hash: 45w1YqnmYC7meR6iya4ehQKEH8k6bYouGFzKZ5Fn34WD +- [*] scan上的NFT截图:![Scan截图](./images/task3.png) + +## 04 Move Game +- [*] game package id : 0x095ac56b94bb6e364809eb8e4f9e850b880899eb55f5de7da2ca3115c05eab48 +- [*] deposit Coin hash: +- [*] withdraw `Coin` hash: +- [*] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/s-chance/code/task1/Move.lock b/mover/s-chance/code/task1/Move.lock new file mode 100644 index 000000000..08c8d1bee --- /dev/null +++ b/mover/s-chance/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E03D8CCB139FD5AAA6C3DF53281A5C2A7267CEEDE876153DF254B492715959CB" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x3ca9e5abea94dbe1fa21f3766a09276303b11f954c9b5c41ac6667075023bf37" +latest-published-id = "0x3ca9e5abea94dbe1fa21f3766a09276303b11f954c9b5c41ac6667075023bf37" +published-version = "1" diff --git a/mover/s-chance/code/task1/Move.toml b/mover/s-chance/code/task1/Move.toml new file mode 100644 index 000000000..ade8a6442 --- /dev/null +++ b/mover/s-chance/code/task1/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "hello_move" +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/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] +hello_move = "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/s-chance/code/task1/sources/hello_move.move b/mover/s-chance/code/task1/sources/hello_move.move new file mode 100644 index 000000000..5beb6e1e0 --- /dev/null +++ b/mover/s-chance/code/task1/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"s-chance"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/s-chance/code/task1/tests/hello_move_tests.move b/mover/s-chance/code/task1/tests/hello_move_tests.move new file mode 100644 index 000000000..07ea8bb3f --- /dev/null +++ b/mover/s-chance/code/task1/tests/hello_move_tests.move @@ -0,0 +1,17 @@ +// #[test_only] +// module hello_move::hello_move_tests { +// // uncomment this line to import the module +// // use hello_move::hello_move; +// +// const ENotImplemented: u64 = 0; +// +// #[test] +// fun test_hello_move() { +// hello_move::hello_move::hello_move(); +// } +// +// #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] +// fun test_hello_move_fail() { +// abort ENotImplemented +// } +// } diff --git a/mover/s-chance/images/package_id.png b/mover/s-chance/images/package_id.png new file mode 100644 index 000000000..5cba077a7 Binary files /dev/null and b/mover/s-chance/images/package_id.png differ diff --git a/mover/s-chance/images/sui-wallet.png b/mover/s-chance/images/sui-wallet.png new file mode 100644 index 000000000..45b488155 Binary files /dev/null and b/mover/s-chance/images/sui-wallet.png differ diff --git a/mover/s-chance/images/task7.png b/mover/s-chance/images/task7.png new file mode 100644 index 000000000..02020275c Binary files /dev/null and b/mover/s-chance/images/task7.png differ diff --git a/mover/s-chance/readme.md b/mover/s-chance/readme.md new file mode 100644 index 000000000..a6a247c7a --- /dev/null +++ b/mover/s-chance/readme.md @@ -0,0 +1,63 @@ +## 基本信息 + +- Sui钱包地址: `0xbb93bd93223d50f47400a926175467e1f72e329338b8eefa28b248fc595d8527` + > 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `s-chance` + +## 个人简介 + +- 工作经验: 1年 +- 技术栈: `Java` `Vue` +- 对区块链、智能合约感兴趣,想通过Move进一步学习 +- 联系方式: tg: `zero trust` + +## 任务 + +## 01 hello move + +- [x] Sui cli version: sui 1.27.1-f4512b72bc77 +- [x] Sui钱包截图: ![Sui钱包截图](./images/sui-wallet.png) +- [x] package id: `0x250c5458cee8d14c06dc7f3a38f6e7c2d7187a402887fbad35093228bcffcb8d` +- [x] package id 在 scan上的查看截图:![Scan截图](./images/package_id.png) + +## 02 move coin + +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT + +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game + +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap + +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB + +- [] save hash : + +## 07 Move CTF Check In + +- [x] CLI call 截图 : ![截图](./images/task7.png) +- [x] flag hash : `23hxe54fzkPaJLZLhAtvuj8zjTjD9AiFtYHNrKwoKHoy` + +## 08 Move CTF Lets Move + +- [] proof : +- [] flag hash : diff --git a/mover/shuhaoLIN/code/task1/hello_move/Move.lock b/mover/shuhaoLIN/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..1c37ee90f --- /dev/null +++ b/mover/shuhaoLIN/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xfc2b508e402d8930ddf55073d353f3f06bea4c3013adf532bb1ae3b0cdbdc704" +latest-published-id = "0xfc2b508e402d8930ddf55073d353f3f06bea4c3013adf532bb1ae3b0cdbdc704" +published-version = "1" diff --git a/mover/shuhaoLIN/code/task1/hello_move/Move.toml b/mover/shuhaoLIN/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/shuhaoLIN/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/shuhaoLIN/code/task1/hello_move/sources/hello_move.move b/mover/shuhaoLIN/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..408d60a01 --- /dev/null +++ b/mover/shuhaoLIN/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,26 @@ +/* +/// Module: hello_move +module hello_move::hello_move { + +} +*/ + +module hello_move::hello_move { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"shuhaoLIN"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/shuhaoLIN/code/task1/hello_move/tests/hello_move_tests.move b/mover/shuhaoLIN/code/task1/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/shuhaoLIN/code/task1/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/shuhaoLIN/code/task2/shuhaoLIN_coin/Move.lock b/mover/shuhaoLIN/code/task2/shuhaoLIN_coin/Move.lock new file mode 100644 index 000000000..26db3e74b --- /dev/null +++ b/mover/shuhaoLIN/code/task2/shuhaoLIN_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "B9F9C70B162227CEE7052765F8FCBCD322AE35D90D1BC6C55810D44030AC19F0" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xe25e1f8480617d0d7919e1487ce60f8b53a87bb6861551bcc1ab92a36ec0c6b7" +latest-published-id = "0xe25e1f8480617d0d7919e1487ce60f8b53a87bb6861551bcc1ab92a36ec0c6b7" +published-version = "1" diff --git a/mover/shuhaoLIN/code/task2/shuhaoLIN_coin/Move.toml b/mover/shuhaoLIN/code/task2/shuhaoLIN_coin/Move.toml new file mode 100644 index 000000000..1f2790114 --- /dev/null +++ b/mover/shuhaoLIN/code/task2/shuhaoLIN_coin/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "shuhaoLIN_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://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] +shuhaolin_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/shuhaoLIN/code/task2/shuhaoLIN_coin/sources/shuhaolin_coin.move b/mover/shuhaoLIN/code/task2/shuhaoLIN_coin/sources/shuhaolin_coin.move new file mode 100644 index 000000000..0c3c22d0b --- /dev/null +++ b/mover/shuhaoLIN/code/task2/shuhaoLIN_coin/sources/shuhaolin_coin.move @@ -0,0 +1,35 @@ +/* +/// Module: shuhaolin_coin +module shuhaolin_coin::shuhaolin_coin { + +} +*/ +module shuhaolin_coin::shuhaolin_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + public struct SHUHAOLIN_COIN has drop {} + fun init(witness: SHUHAOLIN_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 6, // decimals + b"shuhaolin COIN", // symbol + b"shuhaolin COIN", // name + b"Amazing Coin", // description + option:: none(), // icon url + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public entry fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/shuhaoLIN/code/task2/shuhaoLIN_coin/tests/shuhaolin_coin_tests.move b/mover/shuhaoLIN/code/task2/shuhaoLIN_coin/tests/shuhaolin_coin_tests.move new file mode 100644 index 000000000..dab276e74 --- /dev/null +++ b/mover/shuhaoLIN/code/task2/shuhaoLIN_coin/tests/shuhaolin_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module shuhaolin_coin::shuhaolin_coin_tests { + // uncomment this line to import the module + // use shuhaolin_coin::shuhaolin_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_shuhaolin_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::shuhaolin_coin::shuhaolin_coin_tests::ENotImplemented)] + fun test_shuhaolin_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/shuhaoLIN/code/task2/shuhaoLIN_faucet/Move.lock b/mover/shuhaoLIN/code/task2/shuhaoLIN_faucet/Move.lock new file mode 100644 index 000000000..4ba1b9b2e --- /dev/null +++ b/mover/shuhaoLIN/code/task2/shuhaoLIN_faucet/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E8D2806E9B08323825CF622ABFE4601AF93BED6A92B2C30F95648E210D5DBD84" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xfc99fcf6b305b2d8ace7166a7894980d3ebd5d04fe4827884d4983cb0cf2c0f4" +latest-published-id = "0xfc99fcf6b305b2d8ace7166a7894980d3ebd5d04fe4827884d4983cb0cf2c0f4" +published-version = "1" diff --git a/mover/shuhaoLIN/code/task2/shuhaoLIN_faucet/Move.toml b/mover/shuhaoLIN/code/task2/shuhaoLIN_faucet/Move.toml new file mode 100644 index 000000000..d283746ea --- /dev/null +++ b/mover/shuhaoLIN/code/task2/shuhaoLIN_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "shuhaoLIN_faucet" +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] +shuhaolin_faucet = "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/shuhaoLIN/code/task2/shuhaoLIN_faucet/sources/shuhaolin_faucet.move b/mover/shuhaoLIN/code/task2/shuhaoLIN_faucet/sources/shuhaolin_faucet.move new file mode 100644 index 000000000..4f71a447d --- /dev/null +++ b/mover/shuhaoLIN/code/task2/shuhaoLIN_faucet/sources/shuhaolin_faucet.move @@ -0,0 +1,53 @@ +/* +/// Module: shuhaolin_faucet +module shuhaolin_faucet::shuhaolin_faucet { + +} +*/ +module shuhaolin_faucet::shuhaolin_faucet { + use sui::balance::{Balance}; + use sui::balance; + use sui::coin::{Self, TreasuryCap}; + public struct SHUHAOLIN_FAUCET has drop {} + public struct PublicWallet has key { + id: UID, + coin: Balance, + faucet_amount: u64, + } + const AMOUNT: u64 = 10^12; + const EFaucetDry: u64 = 1; + #[allow(lint(share_owned))] + fun init(witness: SHUHAOLIN_FAUCET, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 10, + b"Shuhaolin Faucet", + b"Shuhaolin Faucet", + b"Get some free coin", + option::none(), + ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + let wallet = PublicWallet { + id: object::new(ctx), + coin: balance::zero(), + faucet_amount: AMOUNT, + }; + transfer::share_object(wallet); + } + public entry fun mint_faucet( + treasury_cap: &mut TreasuryCap, + amount: u64, + wallet: &mut PublicWallet, + ctx: &mut TxContext) { + let coins = coin::mint(treasury_cap, amount, ctx); + balance::join(&mut wallet.coin, coin::into_balance(coins)); + } + public entry fun get_faucet(wallet: &mut PublicWallet, ctx: &mut TxContext) { + let balance_amount = balance::value(&wallet.coin); + assert!(balance_amount >= wallet.faucet_amount, EFaucetDry); + let mint_balance = balance::split(&mut wallet.coin, wallet.faucet_amount); + let faucet_coin = coin::from_balance(mint_balance, ctx); + transfer::public_transfer(faucet_coin, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/shuhaoLIN/code/task2/shuhaoLIN_faucet/tests/shuhaolin_faucet_tests.move b/mover/shuhaoLIN/code/task2/shuhaoLIN_faucet/tests/shuhaolin_faucet_tests.move new file mode 100644 index 000000000..b3120a59e --- /dev/null +++ b/mover/shuhaoLIN/code/task2/shuhaoLIN_faucet/tests/shuhaolin_faucet_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module shuhaolin_faucet::shuhaolin_faucet_tests { + // uncomment this line to import the module + // use shuhaolin_faucet::shuhaolin_faucet; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_shuhaolin_faucet() { + // pass + } + + #[test, expected_failure(abort_code = ::shuhaolin_faucet::shuhaolin_faucet_tests::ENotImplemented)] + fun test_shuhaolin_faucet_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/shuhaoLIN/code/task3/nft/Move.lock b/mover/shuhaoLIN/code/task3/nft/Move.lock new file mode 100644 index 000000000..81252d275 --- /dev/null +++ b/mover/shuhaoLIN/code/task3/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9D4FCF5807A34E3110DFBA44AD92FEFEC55EE3DE8CF58F3D302F55D3004E70D1" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x70cdad7f38b09648a9d9ffbc6872af7c2be6931f84e63363568517d83d06a03e" +latest-published-id = "0x70cdad7f38b09648a9d9ffbc6872af7c2be6931f84e63363568517d83d06a03e" +published-version = "1" diff --git a/mover/shuhaoLIN/code/task3/nft/Move.toml b/mover/shuhaoLIN/code/task3/nft/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/shuhaoLIN/code/task3/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/shuhaoLIN/code/task3/nft/sources/nft.move b/mover/shuhaoLIN/code/task3/nft/sources/nft.move new file mode 100644 index 000000000..5eb3cdcfe --- /dev/null +++ b/mover/shuhaoLIN/code/task3/nft/sources/nft.move @@ -0,0 +1,67 @@ +/* +/// Module: nft +module nft::nft { + +} +*/ + +module nft::nft { + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"shuhaoLIN"), + description: string::utf8(b"shuhaoLIN NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/33955704?s=400&u=6630f5a23c0821a6cbcde9cdf270dce917ea80b2&v=4" + ) + }; + transfer::public_transfer(nft, recipient); + } +} diff --git a/mover/shuhaoLIN/code/task3/nft/tests/nft_tests.move b/mover/shuhaoLIN/code/task3/nft/tests/nft_tests.move new file mode 100644 index 000000000..1e3625fad --- /dev/null +++ b/mover/shuhaoLIN/code/task3/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/shuhaoLIN/code/task7/task7.png b/mover/shuhaoLIN/code/task7/task7.png new file mode 100644 index 000000000..35a7daada Binary files /dev/null and b/mover/shuhaoLIN/code/task7/task7.png differ diff --git a/mover/shuhaoLIN/images/publish_hello_move.png b/mover/shuhaoLIN/images/publish_hello_move.png new file mode 100644 index 000000000..078f57472 Binary files /dev/null and b/mover/shuhaoLIN/images/publish_hello_move.png differ diff --git a/mover/shuhaoLIN/images/task3_nft_self.png b/mover/shuhaoLIN/images/task3_nft_self.png new file mode 100644 index 000000000..f1ba5c295 Binary files /dev/null and b/mover/shuhaoLIN/images/task3_nft_self.png differ diff --git a/mover/shuhaoLIN/images/wallet.png b/mover/shuhaoLIN/images/wallet.png new file mode 100644 index 000000000..b00f56944 Binary files /dev/null and b/mover/shuhaoLIN/images/wallet.png differ diff --git a/mover/shuhaoLIN/readme.md b/mover/shuhaoLIN/readme.md new file mode 100644 index 000000000..537aa3fb1 --- /dev/null +++ b/mover/shuhaoLIN/readme.md @@ -0,0 +1,45 @@ +## 基本信息 + +- Sui钱包地址: 0x88c3eed4568a58eae5d3626a06d43d8ce970dec5c05f91dd5ec10f5f81267302 + + > 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: shuhaoLIN + +## 个人简介 + +- 工作经验: 3年 +- 技术栈: Java\Kotlin +- 希望通过move学习Sui +- 联系方式: linshuhao1017@gmail.com + +## 任务 + +## 01 hello move + +- [x] Sui cli version: 1.27.0 +- [x] package id: 0xfc2b508e402d8930ddf55073d353f3f06bea4c3013adf532bb1ae3b0cdbdc704 +- [x] Sui钱包截图: ![Sui钱包截图](./images/wallet.png) +- [x] package id 在 scan上的查看截图:![Scan截图](./images/publish_hello_move.png) + + +## 02 move coin +- [x] My Coin package id : 0xe25e1f8480617d0d7919e1487ce60f8b53a87bb6861551bcc1ab92a36ec0c6b7 +- [x] Faucet package id : 0xfc99fcf6b305b2d8ace7166a7894980d3ebd5d04fe4827884d4983cb0cf2c0f4 +- [x] 转账 `My Coin` hash: 2NqydmWF5r2YZhbonoQPFGBctcKpCpgu9zbo9b8YLoB3 +- [x] `Faucet Coin` address1 mint hash: 4qnQXWMQuMBY1EEfqtqSxaRY85eakxpV6mdGVDKFeKz4 +- [x] `Faucet Coin` address2 mint hash: 4yHWhs3M5w3QTBtXyCQqSaDBRcttaEV9QUkUmPoGSazC + + +## 03 move NFT +- [x] nft package id : 0x70cdad7f38b09648a9d9ffbc6872af7c2be6931f84e63363568517d83d06a03e +- [x] nft object id : 0xb3dc2eb170bf63577b4bef49977a2501462ab40f8f09b7bc48c95564ca3cd2bf +- [x] 转账 nft hash: 7dBeeQ2k6JzZ2UV17iiBd9RLwFBdyxRUXGgRfCwq9CE8 +- [x] mint 到自己地址的截图 hash:Bv94n3uVZ5ikfYC11jxGcPpZDvJHRfd9uMKY5LwUqdku 以及截图:![截图](./images/task3_nft_self.png) + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./code/task7/task7.png) +- [x] flag hash : AzT1J6jeMqzXwh4tdF25PVChVvGNpzR3S1nP3x4FzQpM + +## 08 Move CTF Lets Move +- [x] proof : 90510229 +- [x] flag hash :8VRjuvCH5pCJepzeYujLCwmxN3TxLcW1F8i4kiCs7Lij diff --git a/mover/siphonelee/code/task7/README.md b/mover/siphonelee/code/task7/README.md new file mode 100644 index 000000000..1da925c10 --- /dev/null +++ b/mover/siphonelee/code/task7/README.md @@ -0,0 +1,140 @@ +% sui client call --package 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd --module check_in --function get_flag --gas-budget 10000000 --args "j4kF<9wT^ZqGh;i^gmmmX6j_z?To" 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 0x8 + +[warn] Client/Server api version mismatch, client api version : 1.26.0, server api version : 1.26.1 +Transaction Digest: 3vheaNaQv4kYsLJ4vesuqzkb31aZ8zw7Ji8ryBQNFPXb +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 │ +│ Gas Owner: 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0d88c19652e28037726369d17aef70b9037e4ca4a0424d98173d336a90238ba5 │ +│ │ Version: 48002538 │ +│ │ Digest: CM2z19DcJqNpEss1gymDyC171bsgqsjaXN2PYRyyTM8F │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: "j4kF<9wT^ZqGh;i^gmmmX6j_z?To" │ │ +│ │ 1 Shared Object ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ │ +│ │ 2 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: get_flag │ │ +│ │ │ Module: check_in │ │ +│ │ │ Package: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ A6H/pzzfYW3dkV4b0srqsr1FkdMTh1izpmlrLInMfOLuft6JI54PJH95Ms/tGW9xstvrOXGoeuXt/QvZWG2YDA== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 3vheaNaQv4kYsLJ4vesuqzkb31aZ8zw7Ji8ryBQNFPXb │ +│ Status: Success │ +│ Executed Epoch: 395 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0d88c19652e28037726369d17aef70b9037e4ca4a0424d98173d336a90238ba5 │ +│ │ Owner: Account Address ( 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 ) │ +│ │ Version: 48002539 │ +│ │ Digest: 5A7Je7fqWd2miZdMHJDuqezFdtHm1hgXyL4tk871UYQM │ +│ └── │ +│ ┌── │ +│ │ ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Owner: Shared( 12674957 ) │ +│ │ Version: 48002539 │ +│ │ Digest: 2sJcWjbVdqFyuy5f5jjRGbhrSdm35oCKuhxBTtjejfrd │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Version: 48002538 │ +│ │ Digest: 2WWaJgtheDxHbQvqJvVJSRg8by3Yp9EWR3crBmjwCtNr │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ +│ │ Version: 45218622 │ +│ │ Digest: 214qYWfbRxcudzsL2z7JKkPWKX7fN9PNbLbUWTFvP4dt │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0d88c19652e28037726369d17aef70b9037e4ca4a0424d98173d336a90238ba5 │ +│ │ Owner: Account Address ( 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 ) │ +│ │ Version: 48002539 │ +│ │ Digest: 5A7Je7fqWd2miZdMHJDuqezFdtHm1hgXyL4tk871UYQM │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2500400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2573208 MIST │ +│ Non-refundable Storage Fee: 25992 MIST │ +│ │ +│ Transaction Dependencies: │ +│ DgKTWVMgjdabXqzKFJsu4PuyYELLRx9xPpw7fUia4efL │ +│ FP182EWYALKzusAcoKRpBVY96FTV2VB9EyPogAZNEAY7 │ +│ GvtDcAEMFwzCSEPUqkaPGxD4CpKyD7DDfhLrnU8KuMBR │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 3vheaNaQv4kYsLJ4vesuqzkb31aZ8zw7Ji8ryBQNFPXb:0 │ +│ │ PackageID: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd │ +│ │ Transaction Module: check_in │ +│ │ Sender: 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 │ +│ │ EventType: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd::check_in::Flag │ +│ │ ParsedJSON: │ +│ │ ┌────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ flag │ true │ │ +│ │ ├────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ sender │ 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 │ │ +│ │ └────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0d88c19652e28037726369d17aef70b9037e4ca4a0424d98173d336a90238ba5 │ +│ │ Sender: 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 │ +│ │ Owner: Account Address ( 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 48002539 │ +│ │ Digest: 5A7Je7fqWd2miZdMHJDuqezFdtHm1hgXyL4tk871UYQM │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Sender: 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 │ +│ │ Owner: Shared( 12674957 ) │ +│ │ ObjectType: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd::check_in::FlagString │ +│ │ Version: 48002539 │ +│ │ Digest: 2sJcWjbVdqFyuy5f5jjRGbhrSdm35oCKuhxBTtjejfrd │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -927192 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/siphonelee/code/task8/README.md b/mover/siphonelee/code/task8/README.md new file mode 100644 index 000000000..a61c2acab --- /dev/null +++ b/mover/siphonelee/code/task8/README.md @@ -0,0 +1,141 @@ +% sui client call --package 0xd5c6f9f40969f7af6f97c17d86ade578899f81b519f13e01dd551b12c3d99abf --module lets_move --function get_flag --gas-budget 10000000 --args 43370155 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff 0x8 + +[warn] Client/Server api version mismatch, client api version : 1.26.0, server api version : 1.26.1 +Transaction Digest: 75HirpDVMgx6aZmJf3AsrxdrSAfdRoKaNSxS4xTiTpL7 +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 │ +│ Gas Owner: 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0d88c19652e28037726369d17aef70b9037e4ca4a0424d98173d336a90238ba5 │ +│ │ Version: 48027164 │ +│ │ Digest: 4xRnTTDzS7pq8rijBnr911D7qUAcHQHUqVK5k4j2jCYC │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: "43370155" │ │ +│ │ 1 Shared Object ID: 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff │ │ +│ │ 2 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: get_flag │ │ +│ │ │ Module: lets_move │ │ +│ │ │ Package: 0xd5c6f9f40969f7af6f97c17d86ade578899f81b519f13e01dd551b12c3d99abf │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ wP7ENsmwuqBBlbcaS0yX4rmr2W43RZa5CEfSScGOjRmjdPI8vlX5lAUx1xB3M6s+MX5jkVLn7rG3AXKbK09tDg== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 75HirpDVMgx6aZmJf3AsrxdrSAfdRoKaNSxS4xTiTpL7 │ +│ Status: Success │ +│ Executed Epoch: 395 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0d88c19652e28037726369d17aef70b9037e4ca4a0424d98173d336a90238ba5 │ +│ │ Owner: Account Address ( 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 ) │ +│ │ Version: 48027326 │ +│ │ Digest: 5ub1hAoKZsmHLfzjmh5oYFj9XgJms2ndascyDSJfKXdk │ +│ └── │ +│ ┌── │ +│ │ ID: 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff │ +│ │ Owner: Shared( 48002537 ) │ +│ │ Version: 48027326 │ +│ │ Digest: 7gXuotrga38JmdvbG8QtUuaBAuQGwr3ctUdz2jff16Uo │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff │ +│ │ Version: 48027325 │ +│ │ Digest: 8373swQ5XtYg66pgC86Wj4QrUBdndqGmdSkkMdW2jJmo │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ +│ │ Version: 45422107 │ +│ │ Digest: 5kfE7wQjkcMxoumtnNksQavNpxUBmvWXd2PPdWJLM33j │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0d88c19652e28037726369d17aef70b9037e4ca4a0424d98173d336a90238ba5 │ +│ │ Owner: Account Address ( 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 ) │ +│ │ Version: 48027326 │ +│ │ Digest: 5ub1hAoKZsmHLfzjmh5oYFj9XgJms2ndascyDSJfKXdk │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2599200 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2490444 MIST │ +│ Non-refundable Storage Fee: 25156 MIST │ +│ │ +│ Transaction Dependencies: │ +│ Xh741dPy22C9S63hREhCbWFe6JmtCdU1xpH8QRu5SHd │ +│ 8oCdTqoYcsUGA1pxQ1UJStv2bqCNyAyAoJQ37vzQHxCa │ +│ CFx6DSW2dCk4VejTCZZrFu11KfxmhdZetrRM3Rrx4caP │ +│ E84Do7wyH65fKjBRZBZyvfP5z6QRjWAYfGCRnoBpEAdM │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 75HirpDVMgx6aZmJf3AsrxdrSAfdRoKaNSxS4xTiTpL7:0 │ +│ │ PackageID: 0xd5c6f9f40969f7af6f97c17d86ade578899f81b519f13e01dd551b12c3d99abf │ +│ │ Transaction Module: lets_move │ +│ │ Sender: 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 │ +│ │ EventType: 0xd5c6f9f40969f7af6f97c17d86ade578899f81b519f13e01dd551b12c3d99abf::lets_move::Flag │ +│ │ ParsedJSON: │ +│ │ ┌────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ flag │ true │ │ +│ │ ├────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ sender │ 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 │ │ +│ │ └────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0d88c19652e28037726369d17aef70b9037e4ca4a0424d98173d336a90238ba5 │ +│ │ Sender: 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 │ +│ │ Owner: Account Address ( 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 48027326 │ +│ │ Digest: 5ub1hAoKZsmHLfzjmh5oYFj9XgJms2ndascyDSJfKXdk │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff │ +│ │ Sender: 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 │ +│ │ Owner: Shared( 48002537 ) │ +│ │ ObjectType: 0xd5c6f9f40969f7af6f97c17d86ade578899f81b519f13e01dd551b12c3d99abf::lets_move::Challenge │ +│ │ Version: 48027326 │ +│ │ Digest: 7gXuotrga38JmdvbG8QtUuaBAuQGwr3ctUdz2jff16Uo │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x70665717fc8d06f2c0526ae6c0493dd95c1a02cc6c95c56d0531f44a202a1694 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -1108756 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/siphonelee/readme.md b/mover/siphonelee/readme.md index 273c80717..39357de14 100644 --- a/mover/siphonelee/readme.md +++ b/mover/siphonelee/readme.md @@ -34,3 +34,10 @@ ## 06 SDK PTB - [] save hash : 5i58RjyYbAJYvZBi4sQAa7rpkAahCyDQHQmeRdBBVktx + +## 07 Move CTF Check In +- [] CTF hash : 3vheaNaQv4kYsLJ4vesuqzkb31aZ8zw7Ji8ryBQNFPXb + +## 08 Move CTF +- [] CTF hash : 75HirpDVMgx6aZmJf3AsrxdrSAfdRoKaNSxS4xTiTpL7 + diff --git a/mover/smithclkpayphone123456789010/Images/PackageId.png b/mover/smithclkpayphone123456789010/Images/PackageId.png new file mode 100644 index 000000000..a34cd08bf Binary files /dev/null and b/mover/smithclkpayphone123456789010/Images/PackageId.png differ diff --git a/mover/smithclkpayphone123456789010/Images/SuiWallet.png b/mover/smithclkpayphone123456789010/Images/SuiWallet.png new file mode 100644 index 000000000..c48912372 Binary files /dev/null and b/mover/smithclkpayphone123456789010/Images/SuiWallet.png differ diff --git a/mover/smithclkpayphone123456789010/Images/Transaction.png b/mover/smithclkpayphone123456789010/Images/Transaction.png new file mode 100644 index 000000000..21855319d Binary files /dev/null and b/mover/smithclkpayphone123456789010/Images/Transaction.png differ diff --git a/mover/smithclkpayphone123456789010/code/readme.md b/mover/smithclkpayphone123456789010/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/smithclkpayphone123456789010/code/task01/hello/Move.lock b/mover/smithclkpayphone123456789010/code/task01/hello/Move.lock new file mode 100644 index 000000000..dabde588e --- /dev/null +++ b/mover/smithclkpayphone123456789010/code/task01/hello/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "378AE43A3061361EB8BF0455D22D9E771CE7B9FAA008A92DF685BE2387CB29B8" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/WGB5445/sui.git", rev = "framework/testnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/WGB5445/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.24.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "ddb98719" +original-published-id = "0x6e792c90a74623e86f5962f6cb3811102ac8a235fa2a996e4c85b333aedc5869" +latest-published-id = "0x6e792c90a74623e86f5962f6cb3811102ac8a235fa2a996e4c85b333aedc5869" +published-version = "1" + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xce6897e193b3eec337017dbb9f6bd7185fcb8e5c7e203a73c07c061148d4af9d" +latest-published-id = "0xce6897e193b3eec337017dbb9f6bd7185fcb8e5c7e203a73c07c061148d4af9d" +published-version = "1" diff --git a/mover/smithclkpayphone123456789010/code/task01/hello/Move.toml b/mover/smithclkpayphone123456789010/code/task01/hello/Move.toml new file mode 100644 index 000000000..7946e6102 --- /dev/null +++ b/mover/smithclkpayphone123456789010/code/task01/hello/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello" +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/WGB5445/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] +hello_world = "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/smithclkpayphone123456789010/code/task01/hello/sources/hello.move b/mover/smithclkpayphone123456789010/code/task01/hello/sources/hello.move new file mode 100644 index 000000000..8909a049e --- /dev/null +++ b/mover/smithclkpayphone123456789010/code/task01/hello/sources/hello.move @@ -0,0 +1,21 @@ +module hello_world::hello { + use sui::object::{Self, UID}; + use sui::tx_context::{Self, TxContext}; + use std::string::{Self, String}; + use sui::transfer; + + public struct Hello has key { + id: UID, + str: String, + } + + public fun say_hello(ctx: &mut TxContext) { + let word = Hello { + id: object::new(ctx), + str: string::utf8(b"Hello smithclkpayphone123456789010"), + }; + transfer::transfer(word, tx_context::sender(ctx)); + } +} + + diff --git a/mover/smithclkpayphone123456789010/code/task01/hello/tests/hello_tests.move b/mover/smithclkpayphone123456789010/code/task01/hello/tests/hello_tests.move new file mode 100644 index 000000000..34dfcfb57 --- /dev/null +++ b/mover/smithclkpayphone123456789010/code/task01/hello/tests/hello_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello::hello_tests { + // uncomment this line to import the module + // use hello::hello; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello() { + // pass + } + + #[test, expected_failure(abort_code = ::hello::hello_tests::ENotImplemented)] + fun test_hello_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/smithclkpayphone123456789010/notes/readme.md b/mover/smithclkpayphone123456789010/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/smithclkpayphone123456789010/readme.md b/mover/smithclkpayphone123456789010/readme.md new file mode 100644 index 000000000..8a48d8e91 --- /dev/null +++ b/mover/smithclkpayphone123456789010/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x2f47252cb1d0422a1e5953571bcb3e27c382d8043ae9b7865a33399cce716682` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `smithclkpayphone123456789010` + +## 个人简介 +- 工作经验: 10年 +- 技术栈: `Rust` `C++` `Java` `Go` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `xxx` + +## 任务 + +## 01 hello move +- [] Sui cli version:`sui 1.24.0-92ba3bc-dirty` +- [] Sui钱包截图: ![Sui钱包截图](Images\SuiWallet.png) +- [] package id (testnet): `0xce6897e193b3eec337017dbb9f6bd7185fcb8e5c7e203a73c07c061148d4af9d` +- [] package id 在 scan上的查看截图:`https://suiscan.xyz/testnet/object/0xce6897e193b3eec337017dbb9f6bd7185fcb8e5c7e203a73c07c061148d4af9d/txs` ![packageid截图](Images\PackageId.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/somewhere1/code/task1/Move.lock b/mover/somewhere1/code/task1/Move.lock new file mode 100644 index 000000000..073b2cfec --- /dev/null +++ b/mover/somewhere1/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "35E4C1ADADC84CBBBF24D29B84F3FD8F01DED4EF9745ABE204FD32EE9024C512" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { local = "D:\\Git_project\\sui\\crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { local = "D:\\Git_project\\sui\\crates\\sui-framework\\packages\\sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x87a6c8435228b1e8bf479cb40127e9b0174b580cb20b3511e4f417d5b725b5de" +latest-published-id = "0x87a6c8435228b1e8bf479cb40127e9b0174b580cb20b3511e4f417d5b725b5de" +published-version = "1" diff --git a/mover/somewhere1/code/task1/Move.toml b/mover/somewhere1/code/task1/Move.toml new file mode 100644 index 000000000..a316e3fe4 --- /dev/null +++ b/mover/somewhere1/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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] +#{ git = "https://gitee.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } +Sui = {local = "D:/Git_project/sui/crates/sui-framework/packages/sui-framework"} +# 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] +hello_world = "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/somewhere1/code/task1/get_token.sh b/mover/somewhere1/code/task1/get_token.sh new file mode 100644 index 000000000..9ed5a6866 --- /dev/null +++ b/mover/somewhere1/code/task1/get_token.sh @@ -0,0 +1,7 @@ +curl --location --request POST 'https://faucet.devnet.sui.io/gas' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "FixedAmountRequest": { + "recipient": "0x9a51b1d6ffc9c00e5e50461fb759eecc9493d072b2d522c9ba12b5fa5e2047e6" + } +}' \ No newline at end of file diff --git a/mover/somewhere1/code/task1/readme.md b/mover/somewhere1/code/task1/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/somewhere1/code/task1/sources/hello_world.move b/mover/somewhere1/code/task1/sources/hello_world.move new file mode 100644 index 000000000..aa7acb84c --- /dev/null +++ b/mover/somewhere1/code/task1/sources/hello_world.move @@ -0,0 +1,20 @@ +module hello_world::hello_world { + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct HelloWorldObject has key, store { + id: UID, + text: std::string::String + } + + #[lint_allow(self_transfer)] + public fun mint(ctx: &mut TxContext) { + let object = HelloWorldObject { + id: object::new(ctx), + text: std::string::utf8(b"Hello somewhere1") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } +} + diff --git a/mover/somewhere1/code/task1/tests/hello_world_tests.move b/mover/somewhere1/code/task1/tests/hello_world_tests.move new file mode 100644 index 000000000..8fdf06eec --- /dev/null +++ b/mover/somewhere1/code/task1/tests/hello_world_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_world::hello_world_tests { + // uncomment this line to import the module + // use hello_world::hello_world; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_world() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_world::hello_world_tests::ENotImplemented)] + fun test_hello_world_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/somewhere1/code/task2/my_coin/Move.lock b/mover/somewhere1/code/task2/my_coin/Move.lock new file mode 100644 index 000000000..e47494961 --- /dev/null +++ b/mover/somewhere1/code/task2/my_coin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "38085F3A60ADAC96C8852963D062322907F8DBFCB7E60B40DE6DE8C021EDB0AB" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { local = "D:\\Git_project\\sui\\crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { local = "D:\\Git_project\\sui\\crates\\sui-framework\\packages\\sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x99f61c22fcea7af5a9b1fad07b6f47dc285b68990ad4bd3c28f71b5d56a727f1" +latest-published-id = "0x99f61c22fcea7af5a9b1fad07b6f47dc285b68990ad4bd3c28f71b5d56a727f1" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x601c4afc2c276d68a8c51582d8d3140b208fb0da34d61fc61dc10b84bb8b84f0" +latest-published-id = "0x601c4afc2c276d68a8c51582d8d3140b208fb0da34d61fc61dc10b84bb8b84f0" +published-version = "1" diff --git a/mover/somewhere1/code/task2/my_coin/Move.toml b/mover/somewhere1/code/task2/my_coin/Move.toml new file mode 100644 index 000000000..4d9406fdc --- /dev/null +++ b/mover/somewhere1/code/task2/my_coin/Move.toml @@ -0,0 +1,38 @@ +[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://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } +Sui = {local = "D:/Git_project/sui/crates/sui-framework/packages/sui-framework"} + +# 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/somewhere1/code/task2/my_coin/sources/my_coin.move b/mover/somewhere1/code/task2/my_coin/sources/my_coin.move new file mode 100644 index 000000000..38a1267eb --- /dev/null +++ b/mover/somewhere1/code/task2/my_coin/sources/my_coin.move @@ -0,0 +1,26 @@ + +/// Module: my_coin +module my_coin::my_coin { + use sui::coin; + use sui::transfer::{share_object,freeze_object,public_transfer,public_freeze_object}; + use sui::tx_context::sender; + use sui::url::Url; + + public struct MY_COIN has drop{} + + //one-time-witness 的用法 + fun init(wintness:MY_COIN,ctx:&mut TxContext){ + let icon_url = option::none(); + //move 没有小数 + let (treasury_cap,coin_metadata) = + coin::create_currency(wintness,6,b"somewher1",b"somewher1",b"this is produced bysomewhere1",icon_url,ctx); + + //所有权共享 不可变共享 + public_freeze_object(coin_metadata); + //把国库的管理权限移交给 ctx 独享所有权 + public_transfer(treasury_cap,sender(ctx)); + } + //命令行方法调用 sui client --package 0x2 --module coin --function mint --args + +} + diff --git a/mover/somewhere1/code/task2/my_coin/sources/share_coin.move b/mover/somewhere1/code/task2/my_coin/sources/share_coin.move new file mode 100644 index 000000000..652338919 --- /dev/null +++ b/mover/somewhere1/code/task2/my_coin/sources/share_coin.move @@ -0,0 +1,26 @@ + +/// Module: my_coin +module my_coin::share_coin { + use sui::coin; + use sui::transfer::{public_share_object,freeze_object,public_transfer,public_freeze_object}; + use sui::tx_context::sender; + use sui::url::Url; + + public struct SHARE_COIN has drop{} + + //one-time-witness 的用法 + fun init(wintness:SHARE_COIN,ctx:&mut TxContext){ + let icon_url = option::none(); + //move 没有小数 + let (treasury_cap,coin_metadata) = + coin::create_currency(wintness,6,b"somewhere1 Faucet ",b"somewhere1 Fauet ",b"this is faucet coin",icon_url,ctx); + + //所有权共享 不可变共享 + public_freeze_object(coin_metadata); + //把国库的管理权限移交给 ctx 独享所有权 + public_share_object(treasury_cap); + } + //命令行方法调用 sui client --package 0x2 --module coin --function mint --args + +} + diff --git a/mover/somewhere1/code/task2/my_coin/sources/supply_coin.move b/mover/somewhere1/code/task2/my_coin/sources/supply_coin.move new file mode 100644 index 000000000..20adb12da --- /dev/null +++ b/mover/somewhere1/code/task2/my_coin/sources/supply_coin.move @@ -0,0 +1,54 @@ + +/// Module: my_coin +module my_coin::supply_coin { + use sui::coin::Coin; + use sui::coin; + use sui::transfer::{share_object,freeze_object,public_transfer,public_freeze_object}; + use sui::tx_context::sender; + use sui::url::Url; + use sui::balance::Supply; + use sui::balance; + public struct SUPPLY_COIN has drop{} + + public struct SupplyHold has key{ + id:UID, + supply:Supply + } + //one-time-witness 的用法 + fun init(wintness:SUPPLY_COIN,ctx:&mut TxContext){ + let icon_url = option::none(); + //move 没有小数 + let (treasury_cap,coin_metadata) = + coin::create_currency(wintness,6,b"stan",b"meme",b"this is stan meme",icon_url,ctx); + + //所有权共享 不可变共享 + public_freeze_object(coin_metadata); + + + + //设置白名单 + let supply = coin::treasury_into_supply(treasury_cap); + + let supply_hold = SupplyHold{ + id: object::new(ctx), + supply:supply + }; + + //share了所有权 + share_object(supply_hold); + } + + //命令行方法调用 sui client --package 0x2 --module coin --function mint --args + public fun mint(supply_hold:&mut SupplyHold,amt:u64,ctx:&mut TxContext):Coin{ + + let _call_addres = sender(ctx); + if (amt < 10000){ + abort 0 + }; + let supply_balance = balance::increase_supply(&mut supply_hold.supply, amt); + let supply_coin = coin::from_balance(supply_balance,ctx); + + supply_coin + } +} + diff --git a/mover/somewhere1/code/task2/my_coin/tests/my_coin_tests.move b/mover/somewhere1/code/task2/my_coin/tests/my_coin_tests.move new file mode 100644 index 000000000..4be556acf --- /dev/null +++ b/mover/somewhere1/code/task2/my_coin/tests/my_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[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/somewhere1/code/task2/my_coin/tests/test.sh b/mover/somewhere1/code/task2/my_coin/tests/test.sh new file mode 100644 index 000000000..940b2ac0c --- /dev/null +++ b/mover/somewhere1/code/task2/my_coin/tests/test.sh @@ -0,0 +1,4 @@ +sui client call --package 0x2 --module coin --function mint_and_transfer + --args 0x4aa033a4934c96ab6602d8174ce080a4f543ad3d16768c0455cfa4d3e5e4631e + 100000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + --type-args "0x601c4afc2c276d68a8c51582d8d3140b208fb0da34d61fc61dc10b84bb8b84f0::my_coin::MY_COIN" \ No newline at end of file diff --git a/mover/somewhere1/notes/package.png b/mover/somewhere1/notes/package.png new file mode 100644 index 000000000..4d662d330 Binary files /dev/null and b/mover/somewhere1/notes/package.png differ diff --git a/mover/somewhere1/notes/readme.md b/mover/somewhere1/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/somewhere1/notes/wallet-plugin.png b/mover/somewhere1/notes/wallet-plugin.png new file mode 100644 index 000000000..4bcd0d605 Binary files /dev/null and b/mover/somewhere1/notes/wallet-plugin.png differ diff --git a/mover/somewhere1/readme.md b/mover/somewhere1/readme.md new file mode 100644 index 000000000..04078ac71 --- /dev/null +++ b/mover/somewhere1/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: '0x9a51b1d6ffc9c00e5e50461fb759eecc9493d072b2d522c9ba12b5fa5e2047e6' +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: 'somewehere1' + +## 个人简介 +- 工作经验: 0年 +- 技术栈: `Rust` `C++` +> 重要提示 请认真写自己的简介 +- 首都师范研一在读,LLM方向,对区块链感兴趣,了解Rust +- 联系方式: 微信 19802842044 + +## 任务 + +## 01 hello move +- [x] Sui cli version: +- [x] Sui钱包截图: mover/somewhere1/notes/wallet-plugin.png +- [x] package id: 0x87a6c8435228b1e8bf479cb40127e9b0174b580cb20b3511e4f417d5b725b5de +- [x] package id 在 scan上的查看截图:mover/somewhere1/notes/package.png + +## 02 move coin +- [x] My Coin package id :0x601c4afc2c276d68a8c51582d8d3140b208fb0da34d61fc61dc10b84bb8b84f0 +- [x] Faucet package id : 0x601c4afc2c276d68a8c51582d8d3140b208fb0da34d61fc61dc10b84bb8b84f0 +- [x] 转账 `My Coin` hash:5GbPMaJHmNGqLZdMD5j8KDf85rpXvzKyoSphYmdWAxsU +- [x] `Faucet Coin` address1 mint hash:BTqcSjmbsZXbLat5ELgaenN8pkER8tyynLThkoeC5U6m +- [x] `Faucet Coin` address2 mint hash:2v6ZacHLewU9GLnPTeKRV8N8Thxik3FQe9ChwKG9L4AA + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/sony9997/code/task05/swap/sources/sony9997_swap.move b/mover/sony9997/code/task05/swap/sources/sony9997_swap.move index ca7960b7b..d244deff8 100644 --- a/mover/sony9997/code/task05/swap/sources/sony9997_swap.move +++ b/mover/sony9997/code/task05/swap/sources/sony9997_swap.move @@ -6,7 +6,7 @@ module sony9997_swap::sony9997_swap { use sui::transfer; - // const EInsufficientBalance: u64 = 11; + const EInsufficientBalance: u64 = 11; public struct AdminCap has key { id: UID diff --git a/mover/sony9997/code/task07/check_in/Move.lock b/mover/sony9997/code/task07/check_in/Move.lock new file mode 100644 index 000000000..dbfe40f7d --- /dev/null +++ b/mover/sony9997/code/task07/check_in/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "53FBF8EF17F2B20EC9FA928E0B845D6B7D8C54C33FB94AAB2F1809AA439C1681" +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.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xe91477456c83b096c27f49b8881d2c442d87e0b95a145eb58b38a596826ae999" +latest-published-id = "0xe91477456c83b096c27f49b8881d2c442d87e0b95a145eb58b38a596826ae999" +published-version = "1" diff --git a/mover/sony9997/code/task07/check_in/Move.toml b/mover/sony9997/code/task07/check_in/Move.toml new file mode 100644 index 000000000..d3b50bfd9 --- /dev/null +++ b/mover/sony9997/code/task07/check_in/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "check_in" +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] +check_in = "0x0" +random = "0x8" + +# 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/sony9997/code/task07/check_in/sources/check_in.move b/mover/sony9997/code/task07/check_in/sources/check_in.move new file mode 100644 index 000000000..0c74c313c --- /dev/null +++ b/mover/sony9997/code/task07/check_in/sources/check_in.move @@ -0,0 +1,69 @@ +module check_in::check_in { + use std::ascii::{String, string}; + use sui::event; + use sui::random; + use sui::random::Random; + use sui::transfer::share_object; + + const ESTRING: u64 = 0; + + public struct Flag has copy, drop { + sender: address, + flag: bool, + ture_num: u64, + github_id: String + } + + public struct FlagString has key { + id: UID, + str: String, + ture_num: u64 + } + + fun init(ctx: &mut TxContext) { + let flag_str = FlagString { + id: object::new(ctx), + str: string(b"LetsMoveCTF"), + ture_num: 0 + }; + share_object(flag_str); + } + + + entry fun get_flag( + string: String, + github_id: String, + flag_str: &mut FlagString, + rand: &Random, + ctx: &mut TxContext + ) { + assert!(string == flag_str.str, ESTRING); + + flag_str.str = getRandomString(rand, ctx); + + flag_str.ture_num = flag_str.ture_num + 1; + + event::emit(Flag { + sender: tx_context::sender(ctx), + flag: true, + ture_num: flag_str.ture_num, + github_id + }); + } + + + fun getRandomString(rand: &Random, ctx: &mut TxContext): String { + let mut gen = random::new_generator(rand, ctx); + + let mut str_len = random::generate_u8_in_range(&mut gen, 4, 30); + + let mut rand: vector = b""; + while (str_len != 0) { + let rand_num = random::generate_u8_in_range(&mut gen, 34, 126); + vector::push_back(&mut rand, rand_num); + str_len = str_len - 1; + }; + + string(rand) + } +} \ No newline at end of file diff --git a/mover/sony9997/code/task07/check_in/tests/check_in_tests.move b/mover/sony9997/code/task07/check_in/tests/check_in_tests.move new file mode 100644 index 000000000..acc72e7a2 --- /dev/null +++ b/mover/sony9997/code/task07/check_in/tests/check_in_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module check_in::check_in_tests { + // uncomment this line to import the module + // use check_in::check_in; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_check_in() { + // pass + } + + #[test, expected_failure(abort_code = ::check_in::check_in_tests::ENotImplemented)] + fun test_check_in_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/sony9997/code/task08/lets_move/Move.lock b/mover/sony9997/code/task08/lets_move/Move.lock new file mode 100644 index 000000000..0ab2bc73d --- /dev/null +++ b/mover/sony9997/code/task08/lets_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "CA7DCED3A870CB3C1BF8CDF9D4F5AE71F32B43A2A00C37C94F96189783C48A07" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { local = "/Users/hedong/.move/https___github_com_MystenLabs_sui_git_framework__testnet/crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { local = "/Users/hedong/.move/https___github_com_MystenLabs_sui_git_framework__testnet/crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xbf71d3359b5e9f1538a77edc5b8c32791b449554f4a937de1d46dcc659c3ba3b" +latest-published-id = "0xbf71d3359b5e9f1538a77edc5b8c32791b449554f4a937de1d46dcc659c3ba3b" +published-version = "1" diff --git a/mover/sony9997/code/task08/lets_move/Move.toml b/mover/sony9997/code/task08/lets_move/Move.toml new file mode 100644 index 000000000..ae2b29941 --- /dev/null +++ b/mover/sony9997/code/task08/lets_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "lets_move" +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] +lets_move = "0x0" +random = "0x8" + +# 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/sony9997/code/task08/lets_move/sources/lets_move.move b/mover/sony9997/code/task08/lets_move/sources/lets_move.move new file mode 100644 index 000000000..53f609b9a --- /dev/null +++ b/mover/sony9997/code/task08/lets_move/sources/lets_move.move @@ -0,0 +1,86 @@ +module lets_move::lets_move { + use std::ascii::{String, string}; + use std::hash; + use sui::event; + use sui::bcs; + use sui::random; + use sui::random::Random; + use sui::transfer::share_object; + + const EPROOF: u64 = 0; + + public struct Flag has copy, drop { + sender: address, + flag: bool, + ture_num: u64, + github_id: String + } + + public struct Challenge has key { + id: UID, + str: String, + difficulity: u64, + ture_num: u64 + } + + fun init(ctx: &mut TxContext) { + let flag_str = Challenge { + id: object::new(ctx), + str: string(b"LetsMoveCTF"), + difficulity: 3, + ture_num: 0, + }; + share_object(flag_str); + } + + + entry fun get_flag( + proof: vector, + github_id: String, + challenge: &mut Challenge, + rand: &Random, + ctx: &mut TxContext + ) { + let mut full_proof: vector = vector::empty(); + vector::append(&mut full_proof, proof); + vector::append(&mut full_proof, tx_context::sender(ctx).to_bytes()); + vector::append(&mut full_proof, bcs::to_bytes(challenge)); + + let hash: vector = hash::sha3_256(full_proof); + + let mut prefix_sum: u32 = 0; + let mut i: u64 = 0; + while (i < challenge.difficulity) { + prefix_sum = prefix_sum + (*vector::borrow(&hash, i) as u32); + i = i + 1; + }; + + assert!(prefix_sum == 0, EPROOF); + + challenge.str = getRandomString(rand, ctx); + challenge.ture_num = challenge.ture_num + 1; + + event::emit(Flag { + sender: tx_context::sender(ctx), + flag: true, + ture_num: challenge.ture_num, + github_id + }); + } + + + fun getRandomString(rand: &Random, ctx: &mut TxContext): String { + let mut gen = random::new_generator(rand, ctx); + + let mut str_len = random::generate_u8_in_range(&mut gen, 4, 30); + + let mut rand: vector = b""; + while (str_len != 0) { + let rand_num = random::generate_u8_in_range(&mut gen, 34, 126); + vector::push_back(&mut rand, rand_num); + str_len = str_len - 1; + }; + + string(rand) + } +} \ No newline at end of file diff --git a/mover/sony9997/code/task08/lets_move/tests/lets_move_tests.move b/mover/sony9997/code/task08/lets_move/tests/lets_move_tests.move new file mode 100644 index 000000000..8c681d8c9 --- /dev/null +++ b/mover/sony9997/code/task08/lets_move/tests/lets_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module lets_move::lets_move_tests { + // uncomment this line to import the module + // use check_in::check_in; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_check_in() { + // pass + } + + #[test, expected_failure(abort_code = ::check_in::check_in_tests::ENotImplemented)] + fun test_check_in_fail() { + abort ENotImplemented + } +} +*/ \ No newline at end of file diff --git a/mover/sony9997/notes/check_in_cli.jpg b/mover/sony9997/notes/check_in_cli.jpg new file mode 100644 index 000000000..12707de07 Binary files /dev/null and b/mover/sony9997/notes/check_in_cli.jpg differ diff --git a/mover/sony9997/readme.md b/mover/sony9997/readme.md index 046e1e5ba..e1aed8987 100644 --- a/mover/sony9997/readme.md +++ b/mover/sony9997/readme.md @@ -1,9 +1,13 @@ ## 基本信息 + - Sui钱包地址: `0x6c9a59dad0019e848593c43ba9080a3dfcaf9b2f23c2964a778420cb47067a9f` + > 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 + - github: `sony9997` ## 个人简介 + - 工作经验: 20年 - 技术栈: `Java` `JavaScript` `Python` `Shell` `Android` `Vue` `Big Data` - 多年Web2开发经验,喜欢研究技术,一直对区块链感兴趣,希望从Sui Move开始切入区块链这个行业。 @@ -11,32 +15,57 @@ ## 任务 -## 01 hello move -- [x] package id: (testnet) `0x9162eddf7265f050491f1f983840eac894acf43ef6011b312501ca33c7e371c4` -https://suiscan.xyz/testnet/tx/GfyZhPrw62qEsBYG9djSGiGuujpCuCudZpknH99Le6Xb - -## 02 move coin -- [x] My Coin package id : [0x5b9f8eda9662027d7ec113f55d500ac8f1a1861547a3acb62f0fe6c28ec5bae2](https://suiscan.xyz/mainnet/object/0x5b9f8eda9662027d7ec113f55d500ac8f1a1861547a3acb62f0fe6c28ec5bae2/txs) -- [x] Faucet package id : [0x00192acee9f7ea45cc08f5eaf84dad1f3d79287f7b5cfb10b41ec241de8c8505](https://suiscan.xyz/mainnet/object/0x00192acee9f7ea45cc08f5eaf84dad1f3d79287f7b5cfb10b41ec241de8c8505/txs) -- [x] 转账 `My Coin` hash: [2pKuiqMf6XMxWu4xefzVuiKkFzbTUEgdHxuSF6cjRiDt](https://suiscan.xyz/mainnet/tx/2pKuiqMf6XMxWu4xefzVuiKkFzbTUEgdHxuSF6cjRiDt) -- [x] 转账 `Faucet Coin` hash1: [ivQLc9cRUJvhvXSfzn5A3Fes6V81wzojZLZQSPnVSRH](https://suiscan.xyz/mainnet/tx/ivQLc9cRUJvhvXSfzn5A3Fes6V81wzojZLZQSPnVSRH) -- [x] 转账 `Faucet Coin` hash2: [9b32ZJuDysR8qayqogZqzNvrGkX7LUHDtFzN9KdnS1Q](https://suiscan.xyz/mainnet/tx/9b32ZJuDysR8qayqogZqzNvrGkX7LUHDtFzN9KdnS1Q) - -## 03 move NFT -- [x] nft package id : [0x3d064f27631e27464003ce4f25ccddaf9a5bcd4d37c409039dcce3f9d3c64fcc](https://suiscan.xyz/mainnet/object/0x3d064f27631e27464003ce4f25ccddaf9a5bcd4d37c409039dcce3f9d3c64fcc/txs) -- [x] nft object id : [0x86f35fbaefc1a059d0fecc6906ceb553f9886c6de546ad9716aeaa267815a57c](https://suiscan.xyz/mainnet/object/0x86f35fbaefc1a059d0fecc6906ceb553f9886c6de546ad9716aeaa267815a57c) -- [x] 转账 nft hash: [81C2npmjUzMxdTz4M9PMVNL6NRaEVib7gTxPBBaukfKH](https://suiscan.xyz/mainnet/tx/81C2npmjUzMxdTz4M9PMVNL6NRaEVib7gTxPBBaukfKH) -- [x] mint nft hash: [E6F1KMWAoYjKGJ9tbA5jBLtQXjuKdkejug6MBUvqJC88](https://suiscan.xyz/mainnet/tx/E6F1KMWAoYjKGJ9tbA5jBLtQXjuKdkejug6MBUvqJC88) -- [x] mint 浏览器截图:![mint 浏览器截图t](notes/nft_mint.jpg) - -## 04 Move Game -- [x] game package id : [0x16da5f3b60b187eefe9bd10e739ed4654a1d5c7e9230cf2a7a61b49f01754477](https://suiscan.xyz/mainnet/object/0x16da5f3b60b187eefe9bd10e739ed4654a1d5c7e9230cf2a7a61b49f01754477/txs) -- [x] call game hash: [5gCLYms5GwSm78AMa91ZVp1dDhVr5YkZN7kxrwzM1Y8m](https://suiscan.xyz/mainnet/tx/5gCLYms5GwSm78AMa91ZVp1dDhVr5YkZN7kxrwzM1Y8m) - -## 05 Move Swap -- [x] swap package id : [0x7b9f30cdf2c48755fc339af2c1e0701a47af1b8e42a3af991c0124edf8c70ffa](https://suiscan.xyz/mainnet/object/0x7b9f30cdf2c48755fc339af2c1e0701a47af1b8e42a3af991c0124edf8c70ffa/txs) -- [x] call swap hash(a to b): [J8EtReZJ6WFkAEJa8CeyrFGP2qsSMqbLCUzfvpADVWeb](https://suiscan.xyz/mainnet/tx/J8EtReZJ6WFkAEJa8CeyrFGP2qsSMqbLCUzfvpADVWeb) -- [x] call swap hash(b to a): [FxnE3wH7yaYxdB9BeUAt8kwfAtPNhXRwNUcPkSiBSoUK](https://suiscan.xyz/mainnet/tx/FxnE3wH7yaYxdB9BeUAt8kwfAtPNhXRwNUcPkSiBSoUK) - -## 06 SDK PTB -- [x] save hash : [EZrUBehd493gVopozs4Qf5vHYricQyLkqWPcYhbC6QWt](https://suiscan.xyz/mainnet/tx/EZrUBehd493gVopozs4Qf5vHYricQyLkqWPcYhbC6QWt) +## 01 hello move + +- [X] package id: (testnet) `0x9162eddf7265f050491f1f983840eac894acf43ef6011b312501ca33c7e371c4` + https://suiscan.xyz/testnet/tx/GfyZhPrw62qEsBYG9djSGiGuujpCuCudZpknH99Le6Xb + +## 02 move coin + +- [X] My Coin package id : [0x5b9f8eda9662027d7ec113f55d500ac8f1a1861547a3acb62f0fe6c28ec5bae2](https://suiscan.xyz/mainnet/object/0x5b9f8eda9662027d7ec113f55d500ac8f1a1861547a3acb62f0fe6c28ec5bae2/txs) +- [X] Faucet package id : [0x00192acee9f7ea45cc08f5eaf84dad1f3d79287f7b5cfb10b41ec241de8c8505](https://suiscan.xyz/mainnet/object/0x00192acee9f7ea45cc08f5eaf84dad1f3d79287f7b5cfb10b41ec241de8c8505/txs) +- [X] 转账 `My Coin` hash: [2pKuiqMf6XMxWu4xefzVuiKkFzbTUEgdHxuSF6cjRiDt](https://suiscan.xyz/mainnet/tx/2pKuiqMf6XMxWu4xefzVuiKkFzbTUEgdHxuSF6cjRiDt) +- [X] 转账 `Faucet Coin` hash1: [ivQLc9cRUJvhvXSfzn5A3Fes6V81wzojZLZQSPnVSRH](https://suiscan.xyz/mainnet/tx/ivQLc9cRUJvhvXSfzn5A3Fes6V81wzojZLZQSPnVSRH) +- [X] 转账 `Faucet Coin` hash2: [9b32ZJuDysR8qayqogZqzNvrGkX7LUHDtFzN9KdnS1Q](https://suiscan.xyz/mainnet/tx/9b32ZJuDysR8qayqogZqzNvrGkX7LUHDtFzN9KdnS1Q) + +## 03 move NFT + +- [X] nft package id : [0x3d064f27631e27464003ce4f25ccddaf9a5bcd4d37c409039dcce3f9d3c64fcc](https://suiscan.xyz/mainnet/object/0x3d064f27631e27464003ce4f25ccddaf9a5bcd4d37c409039dcce3f9d3c64fcc/txs) +- [X] nft object id : [0x86f35fbaefc1a059d0fecc6906ceb553f9886c6de546ad9716aeaa267815a57c](https://suiscan.xyz/mainnet/object/0x86f35fbaefc1a059d0fecc6906ceb553f9886c6de546ad9716aeaa267815a57c) +- [X] 转账 nft hash: [81C2npmjUzMxdTz4M9PMVNL6NRaEVib7gTxPBBaukfKH](https://suiscan.xyz/mainnet/tx/81C2npmjUzMxdTz4M9PMVNL6NRaEVib7gTxPBBaukfKH) +- [X] mint nft hash: [E6F1KMWAoYjKGJ9tbA5jBLtQXjuKdkejug6MBUvqJC88](https://suiscan.xyz/mainnet/tx/E6F1KMWAoYjKGJ9tbA5jBLtQXjuKdkejug6MBUvqJC88) +- [X] mint 浏览器截图:![mint 浏览器截图t](notes/nft_mint.jpg) + +## 04 Move Game + +- [X] game package id : [0x16da5f3b60b187eefe9bd10e739ed4654a1d5c7e9230cf2a7a61b49f01754477](https://suiscan.xyz/mainnet/object/0x16da5f3b60b187eefe9bd10e739ed4654a1d5c7e9230cf2a7a61b49f01754477/txs) +- [X] call game hash: [5gCLYms5GwSm78AMa91ZVp1dDhVr5YkZN7kxrwzM1Y8m](https://suiscan.xyz/mainnet/tx/5gCLYms5GwSm78AMa91ZVp1dDhVr5YkZN7kxrwzM1Y8m) + +## 05 Move Swap + +- [X] swap package id : [0x7b9f30cdf2c48755fc339af2c1e0701a47af1b8e42a3af991c0124edf8c70ffa](https://suiscan.xyz/mainnet/object/0x7b9f30cdf2c48755fc339af2c1e0701a47af1b8e42a3af991c0124edf8c70ffa/txs) +- [X] call swap hash(a to b): [J8EtReZJ6WFkAEJa8CeyrFGP2qsSMqbLCUzfvpADVWeb](https://suiscan.xyz/mainnet/tx/J8EtReZJ6WFkAEJa8CeyrFGP2qsSMqbLCUzfvpADVWeb) +- [X] call swap hash(b to a): [FxnE3wH7yaYxdB9BeUAt8kwfAtPNhXRwNUcPkSiBSoUK](https://suiscan.xyz/mainnet/tx/FxnE3wH7yaYxdB9BeUAt8kwfAtPNhXRwNUcPkSiBSoUK) + +## 06 SDK PTB + +- [X] save hash : [EZrUBehd493gVopozs4Qf5vHYricQyLkqWPcYhbC6QWt](https://suiscan.xyz/mainnet/tx/EZrUBehd493gVopozs4Qf5vHYricQyLkqWPcYhbC6QWt) + +## 07 Move CTF Check In + +export PackageID=0x60695ee31f93add1f79909c884a55dff7e5f140bbd2e495819966bd2f7971d42 +export FlagStringID=0x011f9404e6f167e549b617a53eea058029167a2beac26c624cbc3550e04b5ad2 +sui client call --function get_flag --package $PackageID --module check_in --args ':IDo`' 'sony9997' $FlagStringID 0x8 --gas-budget 10000000 + +- [X] CLI call 截图 : +![CLI call 截图](notes/check_in_cli.jpg) +- [X] flag hash : [5AZyYLUuR16N6uCaKsQachQfPyTsYefUuSZtan2YVros](https://suiscan.xyz/testnet/tx/5AZyYLUuR16N6uCaKsQachQfPyTsYefUuSZtan2YVros) + +## 08 Move CTF Lets Move + +- [X] Proof : 0x026ee72d +- [X] Transaction block : [8oJk3uG9kaaDpchoetiWKLSx859mPsYU7yjNqPhn3yeT](https://suiscan.xyz/testnet/tx/8oJk3uG9kaaDpchoetiWKLSx859mPsYU7yjNqPhn3yeT) + + + + diff --git a/mover/sugarcanecat/code/readme.md b/mover/sugarcanecat/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/sugarcanecat/notes/readme.md b/mover/sugarcanecat/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/sugarcanecat/readme.md b/mover/sugarcanecat/readme.md new file mode 100644 index 000000000..44ec3cd57 --- /dev/null +++ b/mover/sugarcanecat/readme.md @@ -0,0 +1,46 @@ +## 基本信息 +- Sui钱包地址: `0x67f369488052e732552f2ed37ecb77c890772cd7186ed11587def8a57d8f0091` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `sugarcanecat` + +## 个人简介 +- 工作经验: 0年(目前是学生) +- 技术栈: `Python` +> 重要提示 请认真写自己的简介 +- 对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: 2220961868@qq.com + +## 任务 + +## 01 hello move +- [] Sui cli version: sui 1.28.3-3781a7e6b56c-dirty +- [] Sui钱包截图: https://i.postimg.cc/9Xtvcp9M/Sui02.png +- [] package id: 0x6c4e48b4efe1d4d113819173bd137e00910fdac8ccb80bd031e97a69443673ad +- [] package id 在 scan上的查看截图:https://i.postimg.cc/WbNxzkm7/Sui01.png + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : diff --git a/mover/super-lhdta/notes/task1.md b/mover/super-lhdta/notes/task1.md index a460282c6..c12767a8e 100644 --- a/mover/super-lhdta/notes/task1.md +++ b/mover/super-lhdta/notes/task1.md @@ -53,7 +53,7 @@ module hello_move::hello_move { ##### 一定要用powershell ``` -D:\Sui-Cli\sui-testnet-v1.22.0-windows-x86_64\target\release\sui.exe client publish --gas-budget 100000000 +D:\Sui-Cli\sui-testnet-v1.22.0-windows-x86_64\target\release\sui.exe client publish ``` 提示gasfee不足 diff --git a/mover/systemX10/readme.md b/mover/systemX10/readme.md index efbccefc6..4ce75e2b7 100644 --- a/mover/systemX10/readme.md +++ b/mover/systemX10/readme.md @@ -37,3 +37,11 @@ ## 06 SDK PTB - [x] save hash : 5zL8cwKYnCUam99VB3oP3L3HpbZ97XmpnoQSXh4wkmUg + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./con.png) +- [x] flag hash : 2dqaRo3nSAFTcbngJ6QcqZd24KeUS4fCC8yiPQMr1hBU + +## 08 Move CTF Lets Move +- [x] proof : 2d857a0dbc729596e00f +- [x] flag hash : AcQ1yY1g7Rg2ShBNmDX9UatPwk17a9QDfbEQGPegMP8G \ No newline at end of file diff --git a/mover/taenggu308/code/readme.md b/mover/taenggu308/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/taenggu308/code/task1/Move.toml b/mover/taenggu308/code/task1/Move.toml new file mode 100644 index 000000000..e75e497eb --- /dev/null +++ b/mover/taenggu308/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1" +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] +task1 = "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/taenggu308/code/task1/sources/task1.move b/mover/taenggu308/code/task1/sources/task1.move new file mode 100644 index 000000000..5c4567e30 --- /dev/null +++ b/mover/taenggu308/code/task1/sources/task1.move @@ -0,0 +1,22 @@ +module task1::hello_taenggu308 { + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + /// An object that contains an arbitrary string + public struct HelloWorldObject has key, store { + id: UID, + /// A string contained in the object + text: string::String + } + + #[lint_allow(self_transfer)] + public fun mint(ctx: &mut TxContext) { + let object = HelloWorldObject { + id: object::new(ctx), + text: string::utf8(b"Hello taenggu308!") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } +} diff --git a/mover/taenggu308/code/task2/Move.toml b/mover/taenggu308/code/task2/Move.toml new file mode 100644 index 000000000..268ddf112 --- /dev/null +++ b/mover/taenggu308/code/task2/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "task2" +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)"] +published-at = "0x3854c8fde67d104699b6b6e1784e76058b890ef9b0d906bd91035409180b0ed4" + +[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] +task2 = "0x3854c8fde67d104699b6b6e1784e76058b890ef9b0d906bd91035409180b0ed4" + +# 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/taenggu308/code/task2/sources/coin.move b/mover/taenggu308/code/task2/sources/coin.move new file mode 100644 index 000000000..e72c2652f --- /dev/null +++ b/mover/taenggu308/code/task2/sources/coin.move @@ -0,0 +1,34 @@ +module task2::taenggu308_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct TAENGGU308_COIN has drop {} + + fun init(witness: TAENGGU308_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"TAENGGU308_COIN", + b"TAENGGU308_COIN", + b"coin create by mqh", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/169317937")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/taenggu308/code/task2/sources/faucet.move b/mover/taenggu308/code/task2/sources/faucet.move new file mode 100644 index 000000000..ca0b06685 --- /dev/null +++ b/mover/taenggu308/code/task2/sources/faucet.move @@ -0,0 +1,35 @@ +module task2::taenggu308_faucet_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct TAENGGU308_FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: TAENGGU308_FAUCET_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"TAENGGU308_FAUCET", + b"TAENGGU308_FAUCET", + b"faucet coin defined by mqh, everyone can access and mutate", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/169317937")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury_cap) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/taenggu308/code/task3/Move.toml b/mover/taenggu308/code/task3/Move.toml new file mode 100644 index 000000000..480be1592 --- /dev/null +++ b/mover/taenggu308/code/task3/Move.toml @@ -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" + diff --git a/mover/taenggu308/code/task3/sources/task3.move b/mover/taenggu308/code/task3/sources/task3.move new file mode 100644 index 000000000..175972d8a --- /dev/null +++ b/mover/taenggu308/code/task3/sources/task3.move @@ -0,0 +1,47 @@ +module task3::taenggu308_nft { + use std::ascii::String; + use std::string::utf8; + use sui::display; + use sui::object; + use sui::object::{UID}; + use sui::package; + use sui::transfer; + use sui::transfer::public_transfer; + use sui::tx_context; + use sui::tx_context::{TxContext}; + + public struct TAENGGU308_NFT has drop {} + + public struct NFT has key,store { + id: UID, + name: String, + } + + fun init(otw: TAENGGU308_NFT, ctx: &mut sui::tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://avatars.githubusercontent.com/u/169317937"), + ]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values,ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + public entry fun mint_to(name: String, recipient: address,ctx: &mut TxContext) { + let nft = NFT{ + id: object::new(ctx), + name, + }; + public_transfer(nft, recipient) + } +} \ No newline at end of file diff --git a/mover/taenggu308/code/task4/Move.toml b/mover/taenggu308/code/task4/Move.toml new file mode 100644 index 000000000..cd3416d18 --- /dev/null +++ b/mover/taenggu308/code/task4/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "task4" +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" } +task2 = { local = "../task2" } + +# 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] +task4 = "0x0" +task2 = "0x3854c8fde67d104699b6b6e1784e76058b890ef9b0d906bd91035409180b0ed4" + +# 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/taenggu308/code/task4/sources/task4.move b/mover/taenggu308/code/task4/sources/task4.move new file mode 100644 index 000000000..e1bfc6091 --- /dev/null +++ b/mover/taenggu308/code/task4/sources/task4.move @@ -0,0 +1,137 @@ +module task4::game { + use sui::random::{Self, Random, new_generator}; + use std::string::{Self, String}; + use sui::clock::{Self, Clock}; + use sui::event; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::tx_context::sender; + use task2::taenggu308_faucet_coin::{Self, TAENGGU308_FAUCET_COIN}; + + const EInvalidNumber: u64 = 0; + const EPoolNotEnough: u64 = 1; + const EInputNotEnough: u64 = 2; + + public struct GameResult has copy, drop { + your_roll: u64, + npc_roll: u64, + result: String, + is_winner: bool, + } + + public struct Game has key { + id: UID, + pool: Balance, + ticket: u64, + reward: u64, + } + + public fun game_pool(game: &Game): u64 { + balance::value(&game.pool) + } + + public fun game_ticket(game: &Game): u64 { + game.ticket + } + + public fun game_reward(game: &Game): u64 { + game.reward + } + + public struct AdminCap has key { + id: UID, + } + + fun init(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + pool: balance::zero(), + ticket: 1_000, + reward: 2_000, + }; + transfer::share_object(game); + + let admin_cap = AdminCap { id: object::new(ctx) }; + transfer::transfer(admin_cap, sender(ctx)); + } + + fun get_random_roll(r: &Random, ctx: &mut TxContext) : u64 { + let mut generator = new_generator(r, ctx); + random::generate_u64_in_range(&mut generator, 0, 3) + } + + fun get_random_roll_2(r: &Random, ctx: &mut TxContext) : u64 { + let mut generator = new_generator(r, ctx); + random::generate_u64_in_range(&mut generator, 0, 3) + } + + public entry fun play(game: &mut Game, input: Coin, r: &Random, ctx: &mut TxContext) { + + assert!(balance::value(&game.pool) >= game.reward - game.ticket, EPoolNotEnough); + + let input_value = coin::value(&input); + assert!(input_value >= game.ticket, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > game.ticket) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, game.ticket) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + }; + + let player_roll = get_random_roll_2(r, ctx); + let npc_roll = get_random_roll(r, ctx); + let (result, is_winner) = if (player_roll > npc_roll) { + (string::utf8(b"Win"), true) + } else if (player_roll == npc_roll) { + (string::utf8(b"Draw"), false) + } else { + (string::utf8(b"Lose"), false) + }; + + if (is_winner) { + let reward_balance = balance::split(&mut game.pool, game.reward); + let reward = coin::from_balance(reward_balance, ctx); + transfer::public_transfer(reward, sender(ctx)); + }; + + event::emit(GameResult { + your_roll: player_roll, + npc_roll: npc_roll, + result, + is_winner, + }); + } + + public entry fun deposit(game: &mut Game, input: Coin, amount: u64, ctx: &mut TxContext) { + let input_value = coin::value(&input); + assert!(input_value >= amount, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > amount) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, amount) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + } + } + + public entry fun withdraw(_: &AdminCap, game: &mut Game, amount: u64, ctx: &mut TxContext) { + let output_balance = balance::split(&mut game.pool, amount); + let output = coin::from_balance(output_balance, ctx); + transfer::public_transfer(output, sender(ctx)); + } + + public entry fun get_faucet_coin(treasury_cap: &mut TreasuryCap, amount: u64, ctx: &mut TxContext) { + taenggu308_faucet_coin::mint(treasury_cap, amount, sender(ctx), ctx); + } +} diff --git a/mover/taenggu308/code/task5/Move.toml b/mover/taenggu308/code/task5/Move.toml new file mode 100644 index 000000000..856a08c66 --- /dev/null +++ b/mover/taenggu308/code/task5/Move.toml @@ -0,0 +1,37 @@ +[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 (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] +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" + diff --git a/mover/taenggu308/code/task5/sources/task5.move b/mover/taenggu308/code/task5/sources/task5.move new file mode 100644 index 000000000..8bd7f8f8c --- /dev/null +++ b/mover/taenggu308/code/task5/sources/task5.move @@ -0,0 +1,261 @@ +module task5::taenggu308_swap { + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply, Balance}; + use sui::math; + + const EZeroAmount: u64 = 0; + + const EReservesEmpty: u64 = 2; + + const EPoolFull: u64 = 4; + + const FEE_SCALING: u128 = 10000; + + const FEE_PERCENT: u128 = 30; + + const MAX_POOL_VALUE: u64 = { + 18446744073709551615 / 10000 + }; + + public struct LSP has drop {} + + public struct Pool has key { + id: UID, + token_a: Balance, + token_b: Balance, + lsp_supply: Supply>, + /// Fee Percent is denominated in basis points. + fee_percent: u64 + } + + fun init(_: &mut TxContext) { + } + + entry fun create_pool ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + create_pool_inner(token_a, token_b, ctx), + tx_context::sender(ctx) + ); + } + + fun create_pool_inner ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + let fee_percent = (FEE_PERCENT as u64); + + let token_a_amt = coin::value(&token_a); + let token_b_amt = coin::value(&token_b); + + assert!(token_a_amt > 0 && token_b_amt > 0, EZeroAmount); + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let share = math::sqrt(token_a_amt) * math::sqrt(token_b_amt); + let mut lsp_supply = balance::create_supply(LSP {}); + let lsp = balance::increase_supply(&mut lsp_supply, share); + + transfer::share_object(Pool { + id: object::new(ctx), + token_a: coin::into_balance(token_a), + token_b: coin::into_balance(token_b), + lsp_supply, + fee_percent, + }); + + coin::from_balance(lsp, ctx) + } + + entry fun add_liquidity ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + add_liquidity_inner(pool, token_a, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun add_liquidity_inner ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + assert!(coin::value(&token_a) > 0 && coin::value(&token_b) > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, lsp_supply) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_balance = coin::into_balance(token_a); + let token_b_balance = coin::into_balance(token_b); + + let token_a_added = balance::value(&token_a_balance); + let token_b_added = balance::value(&token_b_balance); + + let share_minted = math::min( + (token_a_added * lsp_supply) / token_a_amt, + (token_b_added * lsp_supply) / token_b_amt + ); + + let token_a_amt = balance::join(&mut pool.token_a, token_a_balance); + let token_b_amt = balance::join(&mut pool.token_b, token_b_balance); + + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let balance = balance::increase_supply(&mut pool.lsp_supply, share_minted); + + coin::from_balance(balance, ctx) + } + + entry fun remove_liquidity ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ) { + let (token_a, token_b) = remove_liquidity_inner(pool, lsp, ctx); + let sender = tx_context::sender(ctx); + + transfer::public_transfer(token_a, sender); + transfer::public_transfer(token_b, sender); + } + + fun remove_liquidity_inner ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ): (Coin, Coin) { + let lsp_amount = coin::value(&lsp); + assert!(lsp_amount > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, total_supply) = get_amounts(pool); + + let token_a = (token_a_amt * lsp_amount) / total_supply; + let token_b = (token_b_amt * lsp_amount) / total_supply; + + balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); + + ( + coin::take(&mut pool.token_a, token_a, ctx), + coin::take(&mut pool.token_b, token_b, ctx), + ) + } + + entry fun swap_a_to_b ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_a_to_b_inner(pool, token_a, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_a_to_b_inner ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ): Coin { + let token_a_amt = coin::value(&token_a); + assert!(token_a_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_b_amt = sell_token_a(pool, token_a_amt); + + balance::join(&mut pool.token_a, coin::into_balance(token_a)); + + coin::take(&mut pool.token_b, token_b_amt, ctx) + } + + entry fun swap_b_to_a ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_b_to_a_inner(pool, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_b_to_a_inner ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ): Coin { + let token_b_amt = coin::value(&token_b); + assert!(token_b_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_amt = sell_token_b(pool, token_b_amt); + + balance::join(&mut pool.token_b, coin::into_balance(token_b)); + + coin::take(&mut pool.token_a, token_a_amt, ctx) + } + + public fun sell_token_a(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_a_amt, + token_b_amt, + pool.fee_percent + ) + } + + public fun sell_token_b(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_b_amt, + token_a_amt, + pool.fee_percent + ) + } + + public fun get_amounts(pool: &Pool): (u64, u64, u64) { + ( + balance::value(&pool.token_a), + balance::value(&pool.token_b), + balance::supply_value(&pool.lsp_supply), + ) + } + + public fun calc_output_amount( + input_amount: u64, + input_reserve: u64, + output_reserve: u64, + fee_percent: u64 + ): u64 { + let ( + input_amount, + input_reserve, + output_reserve, + fee_percent + ) = ( + (input_amount as u128), + (input_reserve as u128), + (output_reserve as u128), + (fee_percent as u128), + ); + + let input_with_fee = input_amount * FEE_SCALING / (FEE_SCALING - fee_percent); + + let total = input_reserve * output_reserve; + let output_amount = output_reserve - total / (input_reserve + input_with_fee); + + (output_amount as u64) + } +} diff --git a/mover/taenggu308/code/task6/index.html b/mover/taenggu308/code/task6/index.html new file mode 100644 index 000000000..16c2511ae --- /dev/null +++ b/mover/taenggu308/code/task6/index.html @@ -0,0 +1,13 @@ + + + + + + + Suiet Kit + Vite + + +
+ + + diff --git a/mover/taenggu308/code/task6/package.json b/mover/taenggu308/code/task6/package.json new file mode 100644 index 000000000..818a99d89 --- /dev/null +++ b/mover/taenggu308/code/task6/package.json @@ -0,0 +1,26 @@ +{ + "name": "with-vite", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --port 3000", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@suiet/wallet-kit": "0.2.24", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tweetnacl": "^1.0.3", + "navi-sdk": "^1.1.21" + }, + "devDependencies": { + "@types/react": "^18.0.22", + "@types/react-dom": "^18.0.7", + "@vitejs/plugin-react": "^2.2.0", + "typescript": "^5.4.3", + "vite": "^3.2.7" + } +} diff --git a/mover/taenggu308/code/task6/public/vite.svg b/mover/taenggu308/code/task6/public/vite.svg new file mode 100644 index 000000000..e7b8dfb1b --- /dev/null +++ b/mover/taenggu308/code/task6/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mover/taenggu308/code/task6/src/App.css b/mover/taenggu308/code/task6/src/App.css new file mode 100644 index 000000000..ac87691e7 --- /dev/null +++ b/mover/taenggu308/code/task6/src/App.css @@ -0,0 +1,43 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +.card { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 2em; +} + +.read-the-docs { + color: #888; +} + +.btn-group button+button{ + margin-left: 12px; +} \ No newline at end of file diff --git a/mover/taenggu308/code/task6/src/App.tsx b/mover/taenggu308/code/task6/src/App.tsx new file mode 100644 index 000000000..a87a7726a --- /dev/null +++ b/mover/taenggu308/code/task6/src/App.tsx @@ -0,0 +1,166 @@ +import suietLogo from "./assets/suiet-logo.svg"; +import "./App.css"; +import { + ConnectButton, + useAccountBalance, + useWallet, + SuiChainId, + ErrorCode, + formatSUI, +} from "@suiet/wallet-kit"; +import "@suiet/wallet-kit/style.css"; +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import { useMemo } from "react"; +import { NAVISDKClient } from 'navi-sdk' +import {depositCoin, borrowCoin, SignAndSubmitTXB } from 'navi-sdk/dist/libs/PTB' +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from 'navi-sdk/dist/address' +import {Sui, USDC} from 'navi-sdk/dist/address'; + +const sampleNft = new Map([ + [ + "sui:devnet", + "0xe146dbd6d33d7227700328a9421c58ed34546f998acdc42a1d05b4818b49faa2::nft::mint", + ], + [ + "sui:testnet", + "0x5ea6aafe995ce6506f07335a40942024106a57f6311cb341239abf2c3ac7b82f::nft::mint", + ], + [ + "sui:mainnet", + "0x5b45da03d42b064f5e051741b6fed3b29eb817c7923b83b92f37a1d2abf4fbab::nft::mint", + ], +]); + +function App() { + const wallet = useWallet(); + const { balance } = useAccountBalance(); + const nftContractAddr = useMemo(() => { + if (!wallet.chain) return ""; + return sampleNft.get(wallet.chain.id) ?? ""; + }, [wallet]); + + function uint8arrayToHex(value: Uint8Array | undefined) { + if (!value) return ""; + // @ts-ignore + return value.toString("hex"); + } + + async function handleExecuteMoveCall(target: string | undefined) { + if (!target) return; + } + + async function handleSignMsg() { + if (!wallet.account) return; + const account = wallet.account; + const sender = account.address; + try { + let txb = new TransactionBlock(); + txb.setSender(sender); + + let getCoinInfo = balance; + if (!getCoinInfo) { + throw new Error("Insufficient balance"); + } + + let deposit_amount = 1e9; + let sui_symbol = Sui.symbol; + const pool_sui: PoolConfig = pool[sui_symbol as keyof Pool]; + const [to_deposit] = txb.splitCoins(txb.gas, [deposit_amount]); + await depositCoin(txb, pool_sui, to_deposit, deposit_amount); + + let borrow_amount = 0.070115 * 1e6; + let usdc_symbol = USDC.symbol; + const pool_usdc: PoolConfig = pool[usdc_symbol as keyof Pool]; + const [borrow_coin] = await borrowCoin(txb, pool_usdc, borrow_amount); + + await depositCoin(txb, pool_usdc, borrow_coin, borrow_amount); + + const resData = await wallet.signAndExecuteTransactionBlock({ + transactionBlock: txb, + }); + console.log("transaction digest: " + resData); + } catch (e) { + console.error("failed", e); + alert("failed (see response in the console)"); + } + } + + const chainName = (chainId: string | undefined) => { + switch (chainId) { + case SuiChainId.MAIN_NET: + return "Mainnet"; + case SuiChainId.TEST_NET: + return "Testnet"; + case SuiChainId.DEV_NET: + return "Devnet"; + default: + return "Unknown"; + } + }; + + return ( +
+ +

Vite + Suiet Kit

+
+ { + if (error.code === ErrorCode.WALLET__CONNECT_ERROR__USER_REJECTED) { + console.warn( + "user rejected the connection to " + error.details?.wallet + ); + } else { + console.warn("unknown connect error: ", error); + } + }} + /> + + {!wallet.connected ? ( +

Connect DApp with Suiet wallet from now!

+ ) : ( +
+
+

current wallet: {wallet.adapter?.name}

+

+ wallet status:{" "} + {wallet.connecting + ? "connecting" + : wallet.connected + ? "connected" + : "disconnected"} +

+

wallet address: {wallet.account?.address}

+

current network: {wallet.chain?.name}

+

+ wallet balance:{" "} + {formatSUI(balance ?? 0, { + withAbbr: false, + })}{" "} + SUI +

+

+ wallet publicKey: {uint8arrayToHex(wallet.account?.publicKey)} +

+
+
+ +
+
+ )} +
+

+ Click on the Vite and Suiet logos to learn more +

+
+ ); +} + +export default App; diff --git a/mover/taenggu308/code/task6/src/assets/react.svg b/mover/taenggu308/code/task6/src/assets/react.svg new file mode 100644 index 000000000..6c87de9bb --- /dev/null +++ b/mover/taenggu308/code/task6/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mover/taenggu308/code/task6/src/assets/suiet-logo.svg b/mover/taenggu308/code/task6/src/assets/suiet-logo.svg new file mode 100644 index 000000000..8e01dfcae --- /dev/null +++ b/mover/taenggu308/code/task6/src/assets/suiet-logo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/mover/taenggu308/code/task6/src/index.css b/mover/taenggu308/code/task6/src/index.css new file mode 100644 index 000000000..41bc8b138 --- /dev/null +++ b/mover/taenggu308/code/task6/src/index.css @@ -0,0 +1,64 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} + + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/mover/taenggu308/code/task6/src/main.tsx b/mover/taenggu308/code/task6/src/main.tsx new file mode 100644 index 000000000..9859ab514 --- /dev/null +++ b/mover/taenggu308/code/task6/src/main.tsx @@ -0,0 +1,19 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +import { + WalletProvider, +} from '@suiet/wallet-kit'; + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + {/* if you want to custiomize you wallet list, please check this doc + https://kit.suiet.app/docs/components/WalletProvider#customize-your-wallet-list-on-modal + */} + + + +) diff --git a/mover/taenggu308/code/task6/src/vite-env.d.ts b/mover/taenggu308/code/task6/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/mover/taenggu308/code/task6/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mover/taenggu308/code/task6/tsconfig.json b/mover/taenggu308/code/task6/tsconfig.json new file mode 100644 index 000000000..3d0a51a86 --- /dev/null +++ b/mover/taenggu308/code/task6/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/taenggu308/code/task6/tsconfig.node.json b/mover/taenggu308/code/task6/tsconfig.node.json new file mode 100644 index 000000000..9d31e2aed --- /dev/null +++ b/mover/taenggu308/code/task6/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/taenggu308/code/task6/vite.config.ts b/mover/taenggu308/code/task6/vite.config.ts new file mode 100644 index 000000000..55ef63119 --- /dev/null +++ b/mover/taenggu308/code/task6/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + build: { + target: 'es2020' + }, + optimizeDeps: { + esbuildOptions: { + target: 'es2020', + define: { + global: 'globalThis', + }, + }, + }, +}) diff --git a/mover/taenggu308/notes/hello.png b/mover/taenggu308/notes/hello.png new file mode 100644 index 000000000..b7274d48d Binary files /dev/null and b/mover/taenggu308/notes/hello.png differ diff --git a/mover/taenggu308/notes/nft.png b/mover/taenggu308/notes/nft.png new file mode 100644 index 000000000..1618524eb Binary files /dev/null and b/mover/taenggu308/notes/nft.png differ diff --git a/mover/taenggu308/notes/readme.md b/mover/taenggu308/notes/readme.md new file mode 100644 index 000000000..8b52987d5 --- /dev/null +++ b/mover/taenggu308/notes/readme.md @@ -0,0 +1,94 @@ +task2: + +ObjectID: 0x812c9110578cf42117311d37fb2b22346c463e30f736fc5ed7f1460866e0b021 +ObjectType: 0x2::coin::TreasuryCap<0x5d1e79142c2f6cb453f5c660e0760fdf069875bd5cafc50ac00593b6acdf8efb::taenggu308_faucet_coin::TAENGGU308_FAUCET_COIN> + +ObjectID: 0x60abf32244973dcc4ef90cd8b118167709fcfb0bf1caef15826bd7659adc8e6e +ObjectType: 0x2::coin::TreasuryCap<0x5d1e79142c2f6cb453f5c660e0760fdf069875bd5cafc50ac00593b6acdf8efb::taenggu308_coin::TAENGGU308_COIN> + +0x5d1e79142c2f6cb453f5c660e0760fdf069875bd5cafc50ac00593b6acdf8efb + +sui client call --package 0x5d1e79142c2f6cb453f5c660e0760fdf069875bd5cafc50ac00593b6acdf8efb --module taenggu308_coin --function mint --args 0x60abf32244973dcc4ef90cd8b118167709fcfb0bf1caef15826bd7659adc8e6e 1000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +Transaction Digest: 8Kcj9gRaZSHSgeBLPDcgRUtfdnRYyFEoZ6km8CLegUtg + +sui client call --package 0x5d1e79142c2f6cb453f5c660e0760fdf069875bd5cafc50ac00593b6acdf8efb --module taenggu308_faucet_coin --function mint --args 0x812c9110578cf42117311d37fb2b22346c463e30f736fc5ed7f1460866e0b021 1000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +Transaction Digest: Faf7gmKNZpDwCvfQDTNpXxrnYbdQufejiVjoDxFtn8RN + +sui client call --package 0x5d1e79142c2f6cb453f5c660e0760fdf069875bd5cafc50ac00593b6acdf8efb --module taenggu308_faucet_coin --function mint --args 0x812c9110578cf42117311d37fb2b22346c463e30f736fc5ed7f1460866e0b021 1000 0xbe3ed1c5cd63b24b4792476ae6650fb274f5cfe099651b011b7dae4a5d4ed215 + +Transaction Digest: H3yxTLRUAqGuXJZeThtgqvRxSApo4kaXbPW3iPt6hMNX + +task3: + +sui client publish + +PackageID: 0xeace002148dfefdd3ea8a01982b29a3db8f70c31d102ee58d86bdc62c14d71b3 + +sui client call --package 0xeace002148dfefdd3ea8a01982b29a3db8f70c31d102ee58d86bdc62c14d71b3 --module taenggu308_nft --function mint_to --args "taenggu308" 0xbe3ed1c5cd63b24b4792476ae6650fb274f5cfe099651b011b7dae4a5d4ed215 + +ObjectID: 0x4b93a6e65ed348467bfcea518c083ec9a0ea16010c5ee78038ffbe7c4fdf2aa5 + +Transaction Digest: 7RJa6i9JCDFmR4ZkjDRqZJTkhrcszn16LpscrWo2f5uT + +sui client call --package 0xeace002148dfefdd3ea8a01982b29a3db8f70c31d102ee58d86bdc62c14d71b3 --module taenggu308_nft --function mint_to --args "SEND BY taenggu308" 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +Transaction Digest: EG7Kwsgc52K9Ss2XGvxJaNSGN8GbMs1Pt3YnPQfqQApT + +task4: + +由于mainnet没有 Random 0x8 +首先需要将task2 在testnet上发布 + +task2 package : 0x3854c8fde67d104699b6b6e1784e76058b890ef9b0d906bd91035409180b0ed4 + +task4: 0x80e6a69966b921171b0911c6a7646b6cbd16b51b4fa256099dfa6d735554a295 + +export PackageID=0x80e6a69966b921171b0911c6a7646b6cbd16b51b4fa256099dfa6d735554a295 + +export FaucetId=0x3854c8fde67d104699b6b6e1784e76058b890ef9b0d906bd91035409180b0ed4::taenggu308_faucet_coin::TAENGGU308_FAUCET_COIN + +export GameId=0x002725802aadedea2c7613a2aff61da60f68db60ba15c3ce6ca74d9f8a63fca8 + +export AdminCap=0x98f7b95a84342cfb4b236f55d0448084bd91296d1bfdf6a797b8d66d97bb84a0 + +export MyAddress=0xbe3ed1c5cd63b24b4792476ae6650fb274f5cfe099651b011b7dae4a5d4ed215 + +export Task2Pack=0x3854c8fde67d104699b6b6e1784e76058b890ef9b0d906bd91035409180b0ed4 + +export TreasureId=0x393b54c72d7e1c04f75f2fc6d3ba67a6bab6b8b897c142ce8965901a836cf878 + +sui client call --package $Task2Pack --module taenggu308_faucet_coin --function mint --args $TreasureId 1000000 $MyAddress + +export FaucetCoin=0x1f81b13eee85820c69c767b646b0b6b37b2c11a7652f0e7e5ee4dcc7e91a45d1 + +deposit: +sui client call --package $PackageID --module game --function deposit --args $GameId $FaucetCoin 500000 + +Transaction Digest: iNbhTJJA9v8ZmPQfxQvqAQN4tr1TXvqJJx5UCF5Zzf7 + +export GameCoin=0x93f22c2c290ccdc02fccfeb933cd95a6be26ea6f130be847b8467c5835089bc4 + +sui client call --package $PackageID --module game --function play --args $GameId $GameCoin 0x8 +Transaction Digest: J1S3aL1k315EDDwVebUQHCNcSZifxAVcJntTdfDgkj8B + +sui client call --package $PackageID --module game --function withdraw --args $AdminCap $GameId 2000 + +Transaction Digest: B9suHP2Cb2JNEZ6hYkC871sa2bT32HVrrzpFL3TQKwve + +task7: + +task7需要拿到hash,发了个简单的package来获得flag hash + +sui client object 0xc8dcd54baa7724177593a9f70598a09ae6a4286f996542e058f248209db08147 + +调用函数: +sui client call --function get_flag --module check_hash --package $PACKAGE_ID --args taenggu308 "j8(V3=L&8I~v>%^u-'KU" + +根据交易hash找到输出flag hash的vector串 + +调用公共包的公共函数: +sui client call --function get_flag --module check_in --package 0x914099b4d1b4f5513acc8aaa4fdc1f67578522b81d818f61bae527d590c6d87d --args [147,93,67,193,252,155,212,58,148,115,205,98,186,171,197,159,173,15,76,118,61,160,77,82,199,244,145,166,239,217,226,30] taenggu308 0xc8dcd54baa7724177593a9f70598a09ae6a4286f996542e058f248209db08147 0x8 + +digest: EEzRzfVwxhzs1P7w8iHFXWsr4wMaZSuDQd8QvMxN8hHW diff --git a/mover/taenggu308/notes/task7.png b/mover/taenggu308/notes/task7.png new file mode 100644 index 000000000..14a0a5f82 Binary files /dev/null and b/mover/taenggu308/notes/task7.png differ diff --git a/mover/taenggu308/notes/task8.png b/mover/taenggu308/notes/task8.png new file mode 100644 index 000000000..4aeffda58 Binary files /dev/null and b/mover/taenggu308/notes/task8.png differ diff --git a/mover/taenggu308/notes/wallet.png b/mover/taenggu308/notes/wallet.png new file mode 100644 index 000000000..cd4d66694 Binary files /dev/null and b/mover/taenggu308/notes/wallet.png differ diff --git a/mover/taenggu308/readme.md b/mover/taenggu308/readme.md new file mode 100644 index 000000000..bc0456919 --- /dev/null +++ b/mover/taenggu308/readme.md @@ -0,0 +1,55 @@ +## 基本信息 +- Sui钱包地址: `0xbe3ed1c5cd63b24b4792476ae6650fb274f5cfe099651b011b7dae4a5d4ed215` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `taenggu308` + +## 个人简介 +- 工作经验: 0年 +- 技术栈: `C++` +> 重要提示 请认真写自己的简介 +- 对Move语言感兴趣,想通过Move入门区块链和Web3 +- 联系方式: tg: `tangue3` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui-client 1.27.2 +- [x] Sui钱包截图: ![Sui钱包截图](./notes/wallet.png) +- [x] package id: +- [x] package id 在 scan上的查看截图:![Scan截图](./notes/hello.png) + +## 02 move coin +- [x] My Coin package id : 0x5d1e79142c2f6cb453f5c660e0760fdf069875bd5cafc50ac00593b6acdf8efb +- [x] Faucet package id : 0x5d1e79142c2f6cb453f5c660e0760fdf069875bd5cafc50ac00593b6acdf8efb +- [x] 转账 `My Coin` hash: 8Kcj9gRaZSHSgeBLPDcgRUtfdnRYyFEoZ6km8CLegUtg +- [x] `Faucet Coin` address1 mint hash: Faf7gmKNZpDwCvfQDTNpXxrnYbdQufejiVjoDxFtn8RN +- [x] `Faucet Coin` address2 mint hash: H3yxTLRUAqGuXJZeThtgqvRxSApo4kaXbPW3iPt6hMNX + +## 03 move NFT +- [x] nft package id : 0xeace002148dfefdd3ea8a01982b29a3db8f70c31d102ee58d86bdc62c14d71b3 +- [x] nft object id : 0x4b93a6e65ed348467bfcea518c083ec9a0ea16010c5ee78038ffbe7c4fdf2aa5 +- [x] 转账 nft hash : EG7Kwsgc52K9Ss2XGvxJaNSGN8GbMs1Pt3YnPQfqQApT +- [x] scan上的NFT截图 :![Scan截图](./notes/nft.png) + +## 04 Move Game +**在testnet下完成,mainnet没有0x8的Random** +- [x] game package id : **`testnet`** 0x80e6a69966b921171b0911c6a7646b6cbd16b51b4fa256099dfa6d735554a295 +- [x] deposit Coin hash: **`testnet`** iNbhTJJA9v8ZmPQfxQvqAQN4tr1TXvqJJx5UCF5Zzf7 +- [x] withdraw `Coin` hash: **`testnet`** B9suHP2Cb2JNEZ6hYkC871sa2bT32HVrrzpFL3TQKwve +- [x] play game hash: **`testnet`** J1S3aL1k315EDDwVebUQHCNcSZifxAVcJntTdfDgkj8B + +## 05 Move Swap +- [x] swap package id : 0xed74bdf69591f6338307b57936a3b5c0bd515f75af3952aa9d8d2c3ce4568a72 +- [x] call swap CoinA-> CoinB hash : AZNGLroFfZNyzwZCJEhnZUndXr7gMiDKMD9u553X1vS2 +- [x] call swap CoinB-> CoinA hash : 29jtMhmzcxHMwCYXzKLXUWKFQGkYquiwYJjFe79cwCJK + +## 06 Dapp-kit SDK PTB +- [x] save hash : GbFhTZEfe9YFGdmke7a7zgHXpBscTaNPknYxyvy9kkLw + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./notes/task7.png) +- [x] flag hash : EEzRzfVwxhzs1P7w8iHFXWsr4wMaZSuDQd8QvMxN8hHW + +## 08 Move CTF Lets Move +- [x] proof : 4ee24de869425f42ea5e +- [x] flag hash : 8WmN7H1hq4vmyVcM7uUN8HmMJizU4CxUXjrHE2w4zK7k diff --git a/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/Move.lock b/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/Move.lock new file mode 100644 index 000000000..93bf1400f --- /dev/null +++ b/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "66ADCF85B40F2342742C6EC32FF6F6B2A3458F9BAEA30BA768A173CCBD487BF7" +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.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xd5b4882fb325347f0a806bdd76b7a8e0d23d71cccb7b1b02b63628c7d2dd05bc" +latest-published-id = "0xd5b4882fb325347f0a806bdd76b7a8e0d23d71cccb7b1b02b63628c7d2dd05bc" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xb39046148a3761bd9ec0a707aee1118f1b357e58ccb5f5075f84507686b43cde" +latest-published-id = "0xb39046148a3761bd9ec0a707aee1118f1b357e58ccb5f5075f84507686b43cde" +published-version = "1" diff --git a/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/Move.toml b/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/Move.toml new file mode 100644 index 000000000..f73744fae --- /dev/null +++ b/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "tangyuan2323_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://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } +# Sui = { git = "https://gitee.com/mystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/test" } +# 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 = "../../../../../../../../../sui/crates/sui-framework/packages/sui-framework" } + +# To resolve a version conflict and force a specific version for dependency +# override use `override = true` +# Override = { local = "../conflicting/version", override = true } + +[addresses] +tangyuan2323_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/tangyuan2323/code/src/task2/tangyuan2323_coin/call.sh b/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/call.sh new file mode 100644 index 000000000..95aedf18d --- /dev/null +++ b/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/call.sh @@ -0,0 +1,20 @@ +# push +sui client publish + + +# mint + + sui client call \ + --package 0x2 \ + --module coin \ + --function mint_and_transfer \ + --type-args '0xb39046148a3761bd9ec0a707aee1118f1b357e58ccb5f5075f84507686b43cde::tangyuan2323coin::TANGYUAN2323COIN' \ + --args 0x0153bc653df828f3b9585a97dc94697d68e24ab77ddff5a92d5c0fcf1c322d9e 100000000000 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f + + + sui client call \ + --package 0x2 \ + --module coin \ + --function mint_and_transfer \ + --type-args '0x26758c3a1aa0c3bf388cf7d94c90bb46ab3668c7ad99add1acd5139424b93533::hk::HK' \ + --args 0xaee1414d10f4ca34780ad4d149d6eaf8fce0c8833da27e75dd6b0f8b769af9cb 100000000000 0xff71ff2dfa9f5ba0176fb40fdda9d13d738ec97143b46bdfa1addc09e2263b02 \ No newline at end of file diff --git a/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/coin_info.txt b/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/coin_info.txt new file mode 100644 index 000000000..ba43e71b4 --- /dev/null +++ b/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/coin_info.txt @@ -0,0 +1,155 @@ +Transaction Digest: 3QTcBqgRz4pe19dVuL17LJ3v7ci8ASvxm9kbQV1V99S3 +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f │ +│ Gas Owner: 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 750 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0xc11a78bd448d2d90ca02efd5140eca1da958e4750d0b62a9b2e9375eda94699e │ +│ │ Version: 88780362 │ +│ │ Digest: AYtVtRRqyoAYo4xZTn3wqULdmx8YyV8uRWfrK1J2gJGz │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ I9/Qt2eP0HFRf0rWIwbwSw2/0THRN7bmHVHYbhUp5lCpI9YJnIML258tunIYnpdfzqNHEk+MryFPJ8EcpihtAw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 3QTcBqgRz4pe19dVuL17LJ3v7ci8ASvxm9kbQV1V99S3 │ +│ Status: Success │ +│ Executed Epoch: 413 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x0153bc653df828f3b9585a97dc94697d68e24ab77ddff5a92d5c0fcf1c322d9e │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ Version: 88780363 │ +│ │ Digest: DCordhdhoGQnEVUXE5gTjPTv3BtG5ngbPuCQ72tTF3T1 │ +│ └── │ +│ ┌── │ +│ │ ID: 0x3b7899df335af8800bfce79efac04219e74f35ce296964207eee28e2fa1d3641 │ +│ │ Owner: Immutable │ +│ │ Version: 88780363 │ +│ │ Digest: DrEgJVMHVajA58zmM2rKPTEVtQ59g8J8HTj2KnStJxHi │ +│ └── │ +│ ┌── │ +│ │ ID: 0xa445476673f1d2141f8f29af3398775f2434013a783260879f1aa40e1b8270c5 │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ Version: 88780363 │ +│ │ Digest: 31K1KpM7arJaweEbbkujQ3H373cHrxyjr98RPQivyNei │ +│ └── │ +│ ┌── │ +│ │ ID: 0xb39046148a3761bd9ec0a707aee1118f1b357e58ccb5f5075f84507686b43cde │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: HRjVGmd6ENkwKSdzZsDim47BAgtXk4AZRMfa3LHgFwS7 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0xc11a78bd448d2d90ca02efd5140eca1da958e4750d0b62a9b2e9375eda94699e │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ Version: 88780363 │ +│ │ Digest: AaY6oLUhuc55KRXJmUhSeynK8nkFch3595Vv21YLjC1Z │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0xc11a78bd448d2d90ca02efd5140eca1da958e4750d0b62a9b2e9375eda94699e │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ Version: 88780363 │ +│ │ Digest: AaY6oLUhuc55KRXJmUhSeynK8nkFch3595Vv21YLjC1Z │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 13254400 MIST │ +│ Computation Cost: 750000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 2MEyjVB65YGWqVt8AUAc9zLYpuUvSNgvJhiVNxbbUB64 │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0153bc653df828f3b9585a97dc94697d68e24ab77ddff5a92d5c0fcf1c322d9e │ +│ │ Sender: 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xb39046148a3761bd9ec0a707aee1118f1b357e58ccb5f5075f84507686b43cde::tangyuan2323coin::TANGYUAN2323COIN> │ +│ │ Version: 88780363 │ +│ │ Digest: DCordhdhoGQnEVUXE5gTjPTv3BtG5ngbPuCQ72tTF3T1 │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x3b7899df335af8800bfce79efac04219e74f35ce296964207eee28e2fa1d3641 │ +│ │ Sender: 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xb39046148a3761bd9ec0a707aee1118f1b357e58ccb5f5075f84507686b43cde::tangyuan2323coin::TANGYUAN2323COIN> │ +│ │ Version: 88780363 │ +│ │ Digest: DrEgJVMHVajA58zmM2rKPTEVtQ59g8J8HTj2KnStJxHi │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xa445476673f1d2141f8f29af3398775f2434013a783260879f1aa40e1b8270c5 │ +│ │ Sender: 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 88780363 │ +│ │ Digest: 31K1KpM7arJaweEbbkujQ3H373cHrxyjr98RPQivyNei │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0xc11a78bd448d2d90ca02efd5140eca1da958e4750d0b62a9b2e9375eda94699e │ +│ │ Sender: 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 88780363 │ +│ │ Digest: AaY6oLUhuc55KRXJmUhSeynK8nkFch3595Vv21YLjC1Z │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xb39046148a3761bd9ec0a707aee1118f1b357e58ccb5f5075f84507686b43cde │ +│ │ Version: 1 │ +│ │ Digest: HRjVGmd6ENkwKSdzZsDim47BAgtXk4AZRMfa3LHgFwS7 │ +│ │ Modules: tangyuan2323coin │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -13026280 \ No newline at end of file diff --git a/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/sources/tangyuan2323_coin.move b/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/sources/tangyuan2323_coin.move new file mode 100644 index 000000000..34b3479e0 --- /dev/null +++ b/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/sources/tangyuan2323_coin.move @@ -0,0 +1,19 @@ +/// Module: tangyuan2323_coin +module tangyuan2323_coin::tangyuan2323coin { + use std::option; + use sui::coin; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct TANGYUAN2323COIN has drop {} + + fun init(witness: TANGYUAN2323COIN, ctx: &mut TxContext) { + let (treasury, metadata) = + coin::create_currency(witness, 6, b"TANGYUAN2323COIN", b"", b"", option::none(), ctx); + + transfer::public_freeze_object(metadata); + + transfer::public_transfer(treasury, tx_context::sender(ctx)) + } +} + diff --git a/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/tests/tangyuan2323_coin_tests.move b/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/tests/tangyuan2323_coin_tests.move new file mode 100644 index 000000000..ee5b0cd42 --- /dev/null +++ b/mover/tangyuan2323/code/src/task2/tangyuan2323_coin/tests/tangyuan2323_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module tangyuan2323_coin::tangyuan2323_coin_tests { + // uncomment this line to import the module + // use tangyuan2323_coin::tangyuan2323_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_tangyuan2323_coin() { + // pass + } + + #[test, expected_failure(abort_code = tangyuan2323_coin::tangyuan2323_coin_tests::ENotImplemented)] + fun test_tangyuan2323_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/Move.lock b/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/Move.lock new file mode 100644 index 000000000..8b41a8ca1 --- /dev/null +++ b/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "46F2189143A29AC33FD8A10EE918193C98A21F5C1AA673CCC539538C1AEF6168" +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.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xb99cfc7d536dff9934d889294eb86814dd918c016f0726b235da0a33e27f4e5a" +latest-published-id = "0xb99cfc7d536dff9934d889294eb86814dd918c016f0726b235da0a33e27f4e5a" +published-version = "1" diff --git a/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/Move.toml b/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/Move.toml new file mode 100644 index 000000000..19857a8cf --- /dev/null +++ b/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "tangyuan2323_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://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] +tangyuan2323_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/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/call.sh b/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/call.sh new file mode 100644 index 000000000..bbaa08b67 --- /dev/null +++ b/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/call.sh @@ -0,0 +1,20 @@ +# push +sui client publish + + +# mint + + sui client call \ + --package 0x2 \ + --module coin \ + --function mint_and_transfer \ + --type-args '0x26758c3a1aa0c3bf388cf7d94c90bb46ab3668c7ad99add1acd5139424b93533::rmb::RMB' \ + --args 0xc4d306168ee191ce5102a1c723abd8e71840c569cc06df63f4945fa8e6c06903 100000000000 0xff71ff2dfa9f5ba0176fb40fdda9d13d738ec97143b46bdfa1addc09e2263b02 + + + sui client call \ + --package 0x2 \ + --module coin \ + --function mint_and_transfer \ + --type-args '0xb99cfc7d536dff9934d889294eb86814dd918c016f0726b235da0a33e27f4e5a::tangyuan2323faucetcoin::TANGYUAN2323FAUCETCOIN' \ + --args 0xb2cd56dfaf964551878b1a09a28928ddc3fd4d10932c65bd6b8ca376292ed1b6 100000000000 0x869ddd76420f6fea42a63ff5a0f7a381951b336ceb131367268120d213df2fff \ No newline at end of file diff --git a/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/coin_info.txt b/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/coin_info.txt new file mode 100644 index 000000000..3bbddc78a --- /dev/null +++ b/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/coin_info.txt @@ -0,0 +1,52 @@ +─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x8e44ebcfdea5d01a8da426676c63598317f4836f003a7641e6932389a30d1eeb │ +│ │ Sender: 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 88780371 │ +│ │ Digest: 3fUEYtACLq2sGCCkbPTWZ6va54XFH3CmiWYwrtdboGWE │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xadf706c3a44c0277dde00129e01cd22890c4ef9b84b81224561220ed651aeac7 │ +│ │ Sender: 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f │ +│ │ Owner: Immutable │ +│ │ ObjectType: 0x2::coin::CoinMetadata<0xb99cfc7d536dff9934d889294eb86814dd918c016f0726b235da0a33e27f4e5a::tangyuan2323faucetcoin::TANGYUAN2323FAUCETCOIN> │ +│ │ Version: 88780371 │ +│ │ Digest: 96Kvu4YHY6X6QvnWY3t54ASTJdjxnKAf91bBSEw2BD3d │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xb2cd56dfaf964551878b1a09a28928ddc3fd4d10932c65bd6b8ca376292ed1b6 │ +│ │ Sender: 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f │ +│ │ Owner: Shared( 88780371 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xb99cfc7d536dff9934d889294eb86814dd918c016f0726b235da0a33e27f4e5a::tangyuan2323faucetcoin::TANGYUAN2323FAUCETCOIN> │ +│ │ Version: 88780371 │ +│ │ Digest: 7Cbrp6E3BbqWVSHNEV3MbR2U5CeFYocaRSRBJSowacTV │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0xc11a78bd448d2d90ca02efd5140eca1da958e4750d0b62a9b2e9375eda94699e │ +│ │ Sender: 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 88780371 │ +│ │ Digest: CVXezHTPysQXCm6nWBWvGSxFcgGB5rHcMcP7FRBWx4Gw │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xb99cfc7d536dff9934d889294eb86814dd918c016f0726b235da0a33e27f4e5a │ +│ │ Version: 1 │ +│ │ Digest: GvJcWmAd2V74AKzRJ77be4Tdzv3PDEuHU6K4PgsKwKVa │ +│ │ Modules: tangyuan2323faucetcoin │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -13353080 \ No newline at end of file diff --git a/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/sources/tangyuan2323_faucet_coin.move b/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/sources/tangyuan2323_faucet_coin.move new file mode 100644 index 000000000..ad1f7b371 --- /dev/null +++ b/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/sources/tangyuan2323_faucet_coin.move @@ -0,0 +1,18 @@ + +/// Module: tangyuan2323_faucet_coin +module tangyuan2323_faucet_coin::tangyuan2323faucetcoin { + use std::option; + use sui::coin; + use sui::transfer; + use sui::tx_context::{TxContext}; + + public struct TANGYUAN2323FAUCETCOIN has drop {} + + fun init(witness: TANGYUAN2323FAUCETCOIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, 6, b"TANGYUAN2323FAUCETCOIN", b"", b"", option::none(), ctx); + transfer::public_freeze_object(metadata); + + transfer::public_share_object(treasury); + } +} + diff --git a/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/tests/tangyuan2323_faucet_coin_tests.move b/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/tests/tangyuan2323_faucet_coin_tests.move new file mode 100644 index 000000000..4810df295 --- /dev/null +++ b/mover/tangyuan2323/code/src/task2/tangyuan2323_faucet_coin/tests/tangyuan2323_faucet_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module tangyuan2323_faucet_coin::tangyuan2323_faucet_coin_tests { + // uncomment this line to import the module + // use tangyuan2323_faucet_coin::tangyuan2323_faucet_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_tangyuan2323_faucet_coin() { + // pass + } + + #[test, expected_failure(abort_code = tangyuan2323_faucet_coin::tangyuan2323_faucet_coin_tests::ENotImplemented)] + fun test_tangyuan2323_faucet_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/tangyuan2323/code/src/task3/image/image.png b/mover/tangyuan2323/code/src/task3/image/image.png new file mode 100644 index 000000000..050883a49 Binary files /dev/null and b/mover/tangyuan2323/code/src/task3/image/image.png differ diff --git a/mover/tangyuan2323/code/src/task3/tangyuan2323nft/Move.lock b/mover/tangyuan2323/code/src/task3/tangyuan2323nft/Move.lock new file mode 100644 index 000000000..11a2ac0f0 --- /dev/null +++ b/mover/tangyuan2323/code/src/task3/tangyuan2323nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "1A8072FEB75AB9C0011B3C6CC9F6FE33A2816D9D8748F73A367E67172ABE69A1" +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.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xfafd4f14efbb54da70e98c9f5469d3a82daede178dbb640ece5461b9a559c2cf" +latest-published-id = "0xfafd4f14efbb54da70e98c9f5469d3a82daede178dbb640ece5461b9a559c2cf" +published-version = "1" diff --git a/mover/tangyuan2323/code/src/task3/tangyuan2323nft/Move.toml b/mover/tangyuan2323/code/src/task3/tangyuan2323nft/Move.toml new file mode 100644 index 000000000..a733b2f09 --- /dev/null +++ b/mover/tangyuan2323/code/src/task3/tangyuan2323nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "tangyuan2323nft" +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] +tangyuan2323nft = "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/tangyuan2323/code/src/task3/tangyuan2323nft/log.txt b/mover/tangyuan2323/code/src/task3/tangyuan2323nft/log.txt new file mode 100644 index 000000000..28ef2becf --- /dev/null +++ b/mover/tangyuan2323/code/src/task3/tangyuan2323nft/log.txt @@ -0,0 +1,128 @@ +Transaction Digest: 21X4fyRnT2CMxHLUWgNTpryvixp2ufiAEKaataDKNowT +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f │ +│ Gas Owner: 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 751 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0xc11a78bd448d2d90ca02efd5140eca1da958e4750d0b62a9b2e9375eda94699e │ +│ │ Version: 88780374 │ +│ │ Digest: F3xQhdkkP7vikxJoFpUbvLLVza3JsYBTsLXGEqALHUTi │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ IN92fkzYeXcEz8eOYg7O0ZxT0ojxjdDdRqwRFZ5nXjyYmGx8hL+40VGtCzyzZ8HMt1fKCLH9IijFM6/HxGwaCg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 21X4fyRnT2CMxHLUWgNTpryvixp2ufiAEKaataDKNowT │ +│ Status: Success │ +│ Executed Epoch: 414 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xe6ebd756fa9703aedfba91e3bf6dd482d4fcc4a3a8ccfb9acf694f6c6daf2cfc │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ Version: 88780375 │ +│ │ Digest: 2h91LKTAUu86SUynxr85SWpDJbMePpw5viCTp2fBca3z │ +│ └── │ +│ ┌── │ +│ │ ID: 0xfafd4f14efbb54da70e98c9f5469d3a82daede178dbb640ece5461b9a559c2cf │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: AepwrfmtrpahdiZQuzAbrvPqeyDQrfuU1WEfNGdAHEvg │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0xc11a78bd448d2d90ca02efd5140eca1da958e4750d0b62a9b2e9375eda94699e │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ Version: 88780375 │ +│ │ Digest: 4a97AU9VVdC4Y41Py327dXrBtZL5h6Cx1hh9g5YQgfCX │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0xc11a78bd448d2d90ca02efd5140eca1da958e4750d0b62a9b2e9375eda94699e │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ Version: 88780375 │ +│ │ Digest: 4a97AU9VVdC4Y41Py327dXrBtZL5h6Cx1hh9g5YQgfCX │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 14333600 MIST │ +│ Computation Cost: 751000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ AkiQmrBKYZvo1ns2zPCdFDoCuVdUF6UrMFTjioM5oMdp │ +│ FZQQfVC428RKpDcuobUQVp45DMM4PwiELT4YH4ivaHZA │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xe6ebd756fa9703aedfba91e3bf6dd482d4fcc4a3a8ccfb9acf694f6c6daf2cfc │ +│ │ Sender: 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 88780375 │ +│ │ Digest: 2h91LKTAUu86SUynxr85SWpDJbMePpw5viCTp2fBca3z │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0xc11a78bd448d2d90ca02efd5140eca1da958e4750d0b62a9b2e9375eda94699e │ +│ │ Sender: 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 88780375 │ +│ │ Digest: 4a97AU9VVdC4Y41Py327dXrBtZL5h6Cx1hh9g5YQgfCX │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xfafd4f14efbb54da70e98c9f5469d3a82daede178dbb640ece5461b9a559c2cf │ +│ │ Version: 1 │ +│ │ Digest: AepwrfmtrpahdiZQuzAbrvPqeyDQrfuU1WEfNGdAHEvg │ +│ │ Modules: tangyuan2323nft │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -14106480 │ +│ └── \ No newline at end of file diff --git a/mover/tangyuan2323/code/src/task3/tangyuan2323nft/mint.sh b/mover/tangyuan2323/code/src/task3/tangyuan2323nft/mint.sh new file mode 100644 index 000000000..ed476f5c7 --- /dev/null +++ b/mover/tangyuan2323/code/src/task3/tangyuan2323nft/mint.sh @@ -0,0 +1,19 @@ +# push +sui client publish + + +# mint + + sui client call \ + --package 0x2 \ + --module coin \ + --function mint_and_transfer \ + --type-args '0xb39046148a3761bd9ec0a707aee1118f1b357e58ccb5f5075f84507686b43cde::tangyuan2323coin::TANGYUAN2323COIN' \ + --args 0x0153bc653df828f3b9585a97dc94697d68e24ab77ddff5a92d5c0fcf1c322d9e 100000000000 0x1909fedb6ccc24ae653aefd63ef20e966595e9cceac7b752116e97f3ac75096f + + + sui client call \ + --package 0xfafd4f14efbb54da70e98c9f5469d3a82daede178dbb640ece5461b9a559c2cf \ + --module tangyuan2323nft \ + --function mint_to \ + --args 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 \ No newline at end of file diff --git a/mover/tangyuan2323/code/src/task3/tangyuan2323nft/sources/tangyuan2323nft.move b/mover/tangyuan2323/code/src/task3/tangyuan2323nft/sources/tangyuan2323nft.move new file mode 100644 index 000000000..bcbc82206 --- /dev/null +++ b/mover/tangyuan2323/code/src/task3/tangyuan2323nft/sources/tangyuan2323nft.move @@ -0,0 +1,111 @@ + +/// Module: tangyuan2323nft +module tangyuan2323nft::tangyuan2323nft { + use sui::url::{Self, Url}; + use std::string; + use sui::object::{Self, ID, UID}; + use sui::event; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + use std::string::utf8; + + public struct TANGYUAN2323NFT has key, store { + id: UID, + name: string::String, + description: string::String, + url: Url, + } + + // mint event + public struct NFTMinted has copy, drop { + object_id: ID, + creator: address, + name: string::String, + } + + // transfer event + public struct NFTTransfered has copy, drop { + object_id: ID, + from: address, + to: address, + } + + // burn event + public struct NftBurn has copy, drop { + object_id: ID, + } + + public fun name(nft: &TANGYUAN2323NFT): &string::String { + &nft.name + } + + public fun description(nft: &TANGYUAN2323NFT): &string::String { + &nft.description + } + + public fun url(nft: &TANGYUAN2323NFT): &Url { + &nft.url + } + + public fun mint( + ctx: &mut TxContext + ) { + let sender = tx_context::sender(ctx); + let url = url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/70282618?v=4"); + let nft = TANGYUAN2323NFT { + id: object::new(ctx), + name: utf8(b"0x4E33"), + description: utf8(b"my first nft series"), + url: url, + }; + + event::emit(NFTMinted { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + public fun mint_to(recipient: address,ctx: &mut TxContext) { + let url = url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/70282618?v=4"); + let nft = TANGYUAN2323NFT { + id: object::new(ctx), + name: utf8(b"TANGYUAN2323NFT"), + description: utf8(b"my first nft"), + url: url, + }; + + transfer::public_transfer(nft, recipient) + } + + public fun transfer( + nft: TANGYUAN2323NFT, recipient: address, _: &mut TxContext + ) { + event::emit(NFTTransfered { + object_id: object::id(&nft), + from: tx_context::sender(_), + to: recipient, + }); + + transfer::public_transfer(nft, recipient) + } + + public fun update_description( + nft: &mut TANGYUAN2323NFT, + new_description: vector, + _: &mut TxContext + ) { + nft.description = string::utf8(new_description) + } + + public fun burn(nft: TANGYUAN2323NFT, _: &mut TxContext) { + let TANGYUAN2323NFT { id, name: _, description: _, url: _ } = nft; + + event::emit(NftBurn { object_id: object::uid_to_inner(&id) }); + + object::delete(id) + } +} + diff --git a/mover/tangyuan2323/code/src/task3/tangyuan2323nft/tests/tangyuan2323nft_tests.move b/mover/tangyuan2323/code/src/task3/tangyuan2323nft/tests/tangyuan2323nft_tests.move new file mode 100644 index 000000000..af2fd8965 --- /dev/null +++ b/mover/tangyuan2323/code/src/task3/tangyuan2323nft/tests/tangyuan2323nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module tangyuan2323nft::tangyuan2323nft_tests { + // uncomment this line to import the module + // use tangyuan2323nft::tangyuan2323nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_tangyuan2323nft() { + // pass + } + + #[test, expected_failure(abort_code = ::tangyuan2323nft::tangyuan2323nft_tests::ENotImplemented)] + fun test_tangyuan2323nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/tangyuan2323/readme.md b/mover/tangyuan2323/readme.md index c2ae02113..5883bff01 100644 --- a/mover/tangyuan2323/readme.md +++ b/mover/tangyuan2323/readme.md @@ -9,7 +9,7 @@ ## 个人简介 - 工作经验: 2 年 -- 技术栈: Python Labview C Rust +- 技术栈: Python JS Move Rust - 多年 web2 开发经验,对 Move 特别感兴趣,想通过 Move 入门区块链 - 联系方式: 邮箱:tangyuan3141@163.com @@ -21,15 +21,16 @@ ## 02 move coin -- [] My Coin package id : -- [] Faucet package id : -- [] 转账 `My Coin` hash: +- [] My Coin package id : 0xb39046148a3761bd9ec0a707aee1118f1b357e58ccb5f5075f84507686b43cde +- [] Faucet package id : 0xb99cfc7d536dff9934d889294eb86814dd918c016f0726b235da0a33e27f4e5a +- [] 转账 `My Coin` hash: J2XaM3Y78mEFXTYfCSBzhHMhG7hQGUn7ydFr3zF18KGc ## 03 move NFT -- [] nft package id : -- [] nft object id : -- [] 转账 nft hash: +- [] nft package id : 0xfafd4f14efbb54da70e98c9f5469d3a82daede178dbb640ece5461b9a559c2cf +- [] nft object id : 0xc11a78bd448d2d90ca02efd5140eca1da958e4750d0b62a9b2e9375eda94699e +- [] 转账 nft hash: 6E9EsDVgRCtaoR67uLzZUp8r1Df7eoSrhUsp9y1u7dV7 +- [] 截图见task3/image下 ## 04 Move Game diff --git a/mover/tgz/code/task1/Move.lock b/mover/tgz/code/task1/Move.lock new file mode 100644 index 000000000..373867db9 --- /dev/null +++ b/mover/tgz/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E03D8CCB139FD5AAA6C3DF53281A5C2A7267CEEDE876153DF254B492715959CB" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x9530156c5c10e9343d12fc59b45c0b98728321a5c7924fb77a916ed82a65d78a" +latest-published-id = "0x9530156c5c10e9343d12fc59b45c0b98728321a5c7924fb77a916ed82a65d78a" +published-version = "1" diff --git a/mover/tgz/code/task1/Move.toml b/mover/tgz/code/task1/Move.toml new file mode 100644 index 000000000..ade8a6442 --- /dev/null +++ b/mover/tgz/code/task1/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "hello_move" +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/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] +hello_move = "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/tgz/code/task1/sources/hello_move.move b/mover/tgz/code/task1/sources/hello_move.move new file mode 100644 index 000000000..11cd61824 --- /dev/null +++ b/mover/tgz/code/task1/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"tgz"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/tgz/code/task1/tests/hello_move_tests.move b/mover/tgz/code/task1/tests/hello_move_tests.move new file mode 100644 index 000000000..07ea8bb3f --- /dev/null +++ b/mover/tgz/code/task1/tests/hello_move_tests.move @@ -0,0 +1,17 @@ +// #[test_only] +// module hello_move::hello_move_tests { +// // uncomment this line to import the module +// // use hello_move::hello_move; +// +// const ENotImplemented: u64 = 0; +// +// #[test] +// fun test_hello_move() { +// hello_move::hello_move::hello_move(); +// } +// +// #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] +// fun test_hello_move_fail() { +// abort ENotImplemented +// } +// } diff --git a/mover/tgz/images/get_flag_check_in.png b/mover/tgz/images/get_flag_check_in.png new file mode 100644 index 000000000..b4acf7ffb Binary files /dev/null and b/mover/tgz/images/get_flag_check_in.png differ diff --git a/mover/tgz/images/package.png b/mover/tgz/images/package.png new file mode 100644 index 000000000..b83c68d57 Binary files /dev/null and b/mover/tgz/images/package.png differ diff --git a/mover/tgz/images/wallet.png b/mover/tgz/images/wallet.png new file mode 100644 index 000000000..afa04fb98 Binary files /dev/null and b/mover/tgz/images/wallet.png differ diff --git a/mover/tgz/readme.md b/mover/tgz/readme.md new file mode 100644 index 000000000..6cd38e91d --- /dev/null +++ b/mover/tgz/readme.md @@ -0,0 +1,29 @@ +## 基本信息 + +- Sui钱包地址: 0x37eae0f9082cc7e191e526774cd81798200b5ee08e0532c8d90af5f99b510296 + + > 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 + +- github: tgz + +## 个人简介 + +- 工作经验: 10年 +- 技术栈: Swift\Objective-c\C++\Node.js\Rust\Python\Go +- 刚接触sui链,希望通过move学习能进入sui链生态 +- 联系方式: imqsc@ik.me + +## 任务 + +## 01 hello move + +- [x] Sui cli version: 1.25.1 +- [x] package id: 0x9530156c5c10e9343d12fc59b45c0b98728321a5c7924fb77a916ed82a65d78a +- [x] Sui钱包截图: ![Sui钱包截图](./images/wallet.png) +- [x] package id 在 scan上的查看截图:![Scan截图](./images/package.png) + + +## 07 Move CTF Check in + +- [x] CLI call 截图 : ![截图](./images/get_flag_check_in.png) +- [x] flag hash: BtyKPF54voXRznBszXwYVUzzrqoqcay2VyC1hgR6G4JU \ No newline at end of file diff --git a/mover/treesirop/code/task_5/script.sh b/mover/treesirop/code/task_5/script.sh index 73d907751..a664e0c8b 100644 --- a/mover/treesirop/code/task_5/script.sh +++ b/mover/treesirop/code/task_5/script.sh @@ -12,7 +12,7 @@ sui client call --package $PACKAGE_ID \ --module shared \ --function min_treesirop \ --args $TREESIROP_CAP 10000 $BOB \ ---gas-budget 100000000 + #get TREESIROP export TREESIROP=0x91f90c105e3cedd3753dda28220a2611665a35a918807ebd2505d682e80dfb2f @@ -22,7 +22,7 @@ sui client call --package $PACKAGE_ID \ --module shared \ --function stage_one \ --args $TREESIROP \ ---gas-budget 100000000 + #get l,k export LID=0xd7b85c26263d73f39641f4d36ee889647a038410b05933c3fc84a972a383b075 @@ -35,7 +35,7 @@ sui client call --package $PACKAGE_ID \ --module shared \ --function min_treesirop_facet \ --args $TREESIROP_FACET_CAP 100000 $ALICE \ ---gas-budget 100000000 + #get TREESIROP_FACET export TREESIROP_FACET=0x0a328b97654da11963e0703981bcfceff3bfb09b1823217942cedea164d38d46 @@ -45,7 +45,7 @@ sui client call --package $PACKAGE_ID \ --module shared \ --function stage_two \ --args $TREESIROP_FACET $KID $BOB \ ---gas-budget 100000000 + #get escrowID export ESCROW=0xb19a073499371ba3e62ae1d1d5fd2a1e6d6baeb0f9cb6ffc298dcbda91398dda @@ -57,4 +57,4 @@ sui client call --package $PACKAGE_ID \ --module shared \ --function stage_three \ --args $ESCROW $KID $LID \ ---gas-budget 100000000 + diff --git a/mover/tutu-stack/code/task1/hello_move/Move.lock b/mover/tutu-stack/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..6dc830e36 --- /dev/null +++ b/mover/tutu-stack/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "89A11B0FC14064E9F0514545E9387394C0E9EC0B62509F4E47F74C7DE160D0A4" +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.28.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xe61cd33b44cec19f85d8c68dbdfad3ffaaecb6fc1cbaa6246717bed540adf5a3" +latest-published-id = "0xe61cd33b44cec19f85d8c68dbdfad3ffaaecb6fc1cbaa6246717bed540adf5a3" +published-version = "1" diff --git a/mover/tutu-stack/code/task1/hello_move/Move.toml b/mover/tutu-stack/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..1aa2e580d --- /dev/null +++ b/mover/tutu-stack/code/task1/hello_move/Move.toml @@ -0,0 +1,36 @@ +[package] +name = "hello_move" +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] +hello_move = "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/tutu-stack/code/task1/hello_move/sources/hello_move.move b/mover/tutu-stack/code/task1/hello_move/sources/hello_move.move new file mode 100644 index 000000000..8c55251a9 --- /dev/null +++ b/mover/tutu-stack/code/task1/hello_move/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id: UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"tutu-stack"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/tutu-stack/code/task2/Move.lock b/mover/tutu-stack/code/task2/Move.lock new file mode 100644 index 000000000..5fe25082a --- /dev/null +++ b/mover/tutu-stack/code/task2/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E602B0A9D264412FC58309F77F8541C9B21E72AA03A806FB3DCD28F54B80F65A" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462" +latest-published-id = "0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462" +published-version = "1" diff --git a/mover/tutu-stack/code/task2/Move.toml b/mover/tutu-stack/code/task2/Move.toml new file mode 100644 index 000000000..56782a4d0 --- /dev/null +++ b/mover/tutu-stack/code/task2/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "task2" +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)"] +published-at = "0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462" + +[dependencies] +Sui = { git = "https://gitee.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] +task2 = "0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462" + +# 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/tutu-stack/code/task2/notes/runCoin.txt b/mover/tutu-stack/code/task2/notes/runCoin.txt new file mode 100644 index 000000000..024637797 --- /dev/null +++ b/mover/tutu-stack/code/task2/notes/runCoin.txt @@ -0,0 +1,141 @@ +Transaction Digest: 5Fq43TfQ3BrAB7Bm7KzpjGg6jXxgTm2CMjtWyyGtMBzw +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ Gas Owner: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x953669db43fdcd220b9ef3ee65f3e456cf00f99b8f11e6c3ea45bebfa215f900 │ +│ │ Version: 303690751 │ +│ │ Digest: A2X6VEscpaYmANRoJDHKvw1KDbqgQG6ecivTVzaF5Hbo │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0xf5e4a708d60b32b7c9d52a3e4d068a80ea9a39f8e2def0c87dbf6a3e30904e95 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "100000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: tutustack_faucet_coin │ │ +│ │ │ Package: 0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ IY3UmvlH133gtuUBqgL966rvm96r0ucPItlFxqJ1JBeJAyGd9RGUP2EfeH4e3Ldr/AOAzgAHGgRuhv/WpTTQAg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 5Fq43TfQ3BrAB7Bm7KzpjGg6jXxgTm2CMjtWyyGtMBzw │ +│ Status: Success │ +│ Executed Epoch: 460 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xfad549d0c254c1b373f71827bec1fb22444abe377d2689ba6b2d02cedf461278 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ Version: 303690752 │ +│ │ Digest: 8vHBuLTYQMnjTTRN1hSH6TCyatAYKnZ74FrMZUaRy4XD │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x953669db43fdcd220b9ef3ee65f3e456cf00f99b8f11e6c3ea45bebfa215f900 │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ Version: 303690752 │ +│ │ Digest: DNx4mesJr3RDKkCDYTEDcGm4xwTuEC65vdM4wS29eGZf │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf5e4a708d60b32b7c9d52a3e4d068a80ea9a39f8e2def0c87dbf6a3e30904e95 │ +│ │ Owner: Shared( 303690745 ) │ +│ │ Version: 303690752 │ +│ │ Digest: 2VArNqrVnL9NaWAowvo9hPDHPoYUsXWFD49WrmGi8BYx │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xf5e4a708d60b32b7c9d52a3e4d068a80ea9a39f8e2def0c87dbf6a3e30904e95 │ +│ │ Version: 303690751 │ +│ │ Digest: 5jbGCFMPjDukPvwkcV4gmfmMEginVxhDp5XDdxjidg3C │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x953669db43fdcd220b9ef3ee65f3e456cf00f99b8f11e6c3ea45bebfa215f900 │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ Version: 303690752 │ +│ │ Digest: DNx4mesJr3RDKkCDYTEDcGm4xwTuEC65vdM4wS29eGZf │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4529600 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 2919312 MIST │ +│ Non-refundable Storage Fee: 29488 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 7bCWi2FRQsXVTva5693tByWLpBAVYc4woGddw6heaQ39 │ +│ Fj4cnpCcAJF49too8Caiu2iyxC9G5YiWTbTzPgtx34Kb │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xfad549d0c254c1b373f71827bec1fb22444abe377d2689ba6b2d02cedf461278 │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462::tutustack_faucet_coin::TUTUSTACK_FAUCET_COIN> │ +│ │ Version: 303690752 │ +│ │ Digest: 8vHBuLTYQMnjTTRN1hSH6TCyatAYKnZ74FrMZUaRy4XD │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x953669db43fdcd220b9ef3ee65f3e456cf00f99b8f11e6c3ea45bebfa215f900 │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 303690752 │ +│ │ Digest: DNx4mesJr3RDKkCDYTEDcGm4xwTuEC65vdM4wS29eGZf │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xf5e4a708d60b32b7c9d52a3e4d068a80ea9a39f8e2def0c87dbf6a3e30904e95 │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ Owner: Shared( 303690745 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462::tutustack_faucet_coin::TUTUSTACK_FAUCET_COIN> │ +│ │ Version: 303690752 │ +│ │ Digest: 2VArNqrVnL9NaWAowvo9hPDHPoYUsXWFD49WrmGi8BYx │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2368288 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ CoinType: 0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462::tutustack_faucet_coin::TUTUSTACK_FAUCET_COIN │ +│ │ Amount: 100000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +------------------------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/mover/tutu-stack/code/task2/notes/runFaucetCoin.txt b/mover/tutu-stack/code/task2/notes/runFaucetCoin.txt new file mode 100644 index 000000000..024637797 --- /dev/null +++ b/mover/tutu-stack/code/task2/notes/runFaucetCoin.txt @@ -0,0 +1,141 @@ +Transaction Digest: 5Fq43TfQ3BrAB7Bm7KzpjGg6jXxgTm2CMjtWyyGtMBzw +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ Gas Owner: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x953669db43fdcd220b9ef3ee65f3e456cf00f99b8f11e6c3ea45bebfa215f900 │ +│ │ Version: 303690751 │ +│ │ Digest: A2X6VEscpaYmANRoJDHKvw1KDbqgQG6ecivTVzaF5Hbo │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Shared Object ID: 0xf5e4a708d60b32b7c9d52a3e4d068a80ea9a39f8e2def0c87dbf6a3e30904e95 │ │ +│ │ 1 Pure Arg: Type: u64, Value: "100000" │ │ +│ │ 2 Pure Arg: Type: address, Value: "0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: mint │ │ +│ │ │ Module: tutustack_faucet_coin │ │ +│ │ │ Package: 0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ IY3UmvlH133gtuUBqgL966rvm96r0ucPItlFxqJ1JBeJAyGd9RGUP2EfeH4e3Ldr/AOAzgAHGgRuhv/WpTTQAg== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: 5Fq43TfQ3BrAB7Bm7KzpjGg6jXxgTm2CMjtWyyGtMBzw │ +│ Status: Success │ +│ Executed Epoch: 460 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xfad549d0c254c1b373f71827bec1fb22444abe377d2689ba6b2d02cedf461278 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ Version: 303690752 │ +│ │ Digest: 8vHBuLTYQMnjTTRN1hSH6TCyatAYKnZ74FrMZUaRy4XD │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x953669db43fdcd220b9ef3ee65f3e456cf00f99b8f11e6c3ea45bebfa215f900 │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ Version: 303690752 │ +│ │ Digest: DNx4mesJr3RDKkCDYTEDcGm4xwTuEC65vdM4wS29eGZf │ +│ └── │ +│ ┌── │ +│ │ ID: 0xf5e4a708d60b32b7c9d52a3e4d068a80ea9a39f8e2def0c87dbf6a3e30904e95 │ +│ │ Owner: Shared( 303690745 ) │ +│ │ Version: 303690752 │ +│ │ Digest: 2VArNqrVnL9NaWAowvo9hPDHPoYUsXWFD49WrmGi8BYx │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0xf5e4a708d60b32b7c9d52a3e4d068a80ea9a39f8e2def0c87dbf6a3e30904e95 │ +│ │ Version: 303690751 │ +│ │ Digest: 5jbGCFMPjDukPvwkcV4gmfmMEginVxhDp5XDdxjidg3C │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x953669db43fdcd220b9ef3ee65f3e456cf00f99b8f11e6c3ea45bebfa215f900 │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ Version: 303690752 │ +│ │ Digest: DNx4mesJr3RDKkCDYTEDcGm4xwTuEC65vdM4wS29eGZf │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4529600 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 2919312 MIST │ +│ Non-refundable Storage Fee: 29488 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 7bCWi2FRQsXVTva5693tByWLpBAVYc4woGddw6heaQ39 │ +│ Fj4cnpCcAJF49too8Caiu2iyxC9G5YiWTbTzPgtx34Kb │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xfad549d0c254c1b373f71827bec1fb22444abe377d2689ba6b2d02cedf461278 │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462::tutustack_faucet_coin::TUTUSTACK_FAUCET_COIN> │ +│ │ Version: 303690752 │ +│ │ Digest: 8vHBuLTYQMnjTTRN1hSH6TCyatAYKnZ74FrMZUaRy4XD │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x953669db43fdcd220b9ef3ee65f3e456cf00f99b8f11e6c3ea45bebfa215f900 │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 303690752 │ +│ │ Digest: DNx4mesJr3RDKkCDYTEDcGm4xwTuEC65vdM4wS29eGZf │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xf5e4a708d60b32b7c9d52a3e4d068a80ea9a39f8e2def0c87dbf6a3e30904e95 │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ Owner: Shared( 303690745 ) │ +│ │ ObjectType: 0x2::coin::TreasuryCap<0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462::tutustack_faucet_coin::TUTUSTACK_FAUCET_COIN> │ +│ │ Version: 303690752 │ +│ │ Digest: 2VArNqrVnL9NaWAowvo9hPDHPoYUsXWFD49WrmGi8BYx │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2368288 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 ) │ +│ │ CoinType: 0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462::tutustack_faucet_coin::TUTUSTACK_FAUCET_COIN │ +│ │ Amount: 100000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +------------------------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/mover/tutu-stack/code/task2/sources/tutustack_coin.move b/mover/tutu-stack/code/task2/sources/tutustack_coin.move new file mode 100644 index 000000000..070476378 --- /dev/null +++ b/mover/tutu-stack/code/task2/sources/tutustack_coin.move @@ -0,0 +1,38 @@ +module task2::tutustack_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self, Url}; + + public struct TUTUSTACK_COIN has drop {} + + fun init( witness: TUTUSTACK_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 2, + b"TUTUSTACK_COIN", + b"TUTUSTACK", + b"learning move", + option::none(), + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)) + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } + +} diff --git a/mover/tutu-stack/code/task2/sources/tutustack_faucet_coin.move b/mover/tutu-stack/code/task2/sources/tutustack_faucet_coin.move new file mode 100644 index 000000000..c7a7030c8 --- /dev/null +++ b/mover/tutu-stack/code/task2/sources/tutustack_faucet_coin.move @@ -0,0 +1,34 @@ +module task2::tutustack_faucet_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self, Url}; + + public struct TUTUSTACK_FAUCET_COIN has drop {} + + fun init(witness: TUTUSTACK_FAUCET_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 2, + b"TUTUSTACK_FAUCET_COIN", + b"TUTUSTACK_FAUCET_COIN", + b"tutustack's first faucet coin", + option::none(), + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury_cap) + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } +} diff --git a/mover/tutu-stack/code/task3/Move.lock b/mover/tutu-stack/code/task3/Move.lock new file mode 100644 index 000000000..0e0ddbcff --- /dev/null +++ b/mover/tutu-stack/code/task3/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "A49D1E9E7549E19E70A78ED65CAE86472B25D880120E65E7848F9D9EEFEC445B" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.2" +edition = "legacy" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x38acd0378b9badb7f8d22395623d5c5b33aea27ca3adbe14d81b40f5cef04893" +latest-published-id = "0x38acd0378b9badb7f8d22395623d5c5b33aea27ca3adbe14d81b40f5cef04893" +published-version = "1" diff --git a/mover/tutu-stack/code/task3/Move.toml b/mover/tutu-stack/code/task3/Move.toml new file mode 100644 index 000000000..6a623d14f --- /dev/null +++ b/mover/tutu-stack/code/task3/Move.toml @@ -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://gitee.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" + diff --git a/mover/tutu-stack/code/task3/sources/ntf_tutustack.move b/mover/tutu-stack/code/task3/sources/ntf_tutustack.move new file mode 100644 index 000000000..80578f623 --- /dev/null +++ b/mover/tutu-stack/code/task3/sources/ntf_tutustack.move @@ -0,0 +1,102 @@ +/// Module: task3 +module task3::nft_tutustack { + use sui::url::{Url, Self}; + use std::string; + use sui::object::{Self, ID, UID}; + use sui::event; + use sui::transfer; + use sui::tx_context::{TxContext, Self}; + + struct TutustackNFT has key, store { + id: UID, + name: string::String, + description: string::String, + url: Url, + } + + struct TutustackNFTTransferEvent has copy, drop { + object_id: ID, + from: address, + to: address, + } + + struct TutustackNFTMintEvent has copy, drop { + object_id: ID, + creator: address, + name: string::String, + } + + struct TutustackNFTBurnEvent has copy, drop { + object_id: ID, + } + + public fun name(nft: &TutustackNFT): string::String { + nft.name + } + + public fun description(nft: &TutustackNFT): string::String { + nft.description + } + + public fun url(nft: &TutustackNFT): Url { + nft.url + } + + public entry fun mint_nft( + name: vector, + description: vector, + url: vector, + ctx: &mut TxContext + ) { + let sender = tx_context::sender(ctx); + let nft = TutustackNFT { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + url: url::new_unsafe_from_bytes(url), + }; + + event::emit(TutustackNFTMintEvent { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + public entry fun transfer_nft( + nft: TutustackNFT, + recipient: address, + _: &mut TxContext, + ) { + event::emit(TutustackNFTTransferEvent { + object_id: object::id(&nft), + from: tx_context::sender(_), + to: recipient, + }); + + transfer::public_transfer(nft, recipient); + } + + public entry fun update_description( + nft: &mut TutustackNFT, + description: vector, + _: &mut TxContext + ) { + nft.description = string::utf8(description); + } + + public entry fun burn( + nft: TutustackNFT, + _: &mut TxContext + ) { + let TutustackNFT {id, name: _, description: _, url: _} = nft; + event::emit(TutustackNFTBurnEvent { + object_id: object::uid_to_inner(&id), + }); + + object::delete(id); + } + +} diff --git a/mover/tutu-stack/code/task4/Move.lock b/mover/tutu-stack/code/task4/Move.lock new file mode 100644 index 000000000..55b1084ff --- /dev/null +++ b/mover/tutu-stack/code/task4/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "6D7C19B3580710456E830EA3EB11863F162FBF3843720329B9BEEE5956C1AE3A" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "task2" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "task2" +source = { local = "../task2" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.28.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xb88a0f3c2667d1820b7a8e0fc780e8715094194d14dc9f69f1c2322f44a7305c" +latest-published-id = "0xb88a0f3c2667d1820b7a8e0fc780e8715094194d14dc9f69f1c2322f44a7305c" +published-version = "1" diff --git a/mover/tutu-stack/code/task4/Move.toml b/mover/tutu-stack/code/task4/Move.toml new file mode 100644 index 000000000..63f57a406 --- /dev/null +++ b/mover/tutu-stack/code/task4/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "task4" +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" } +Sui = { git = "https://gitee.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } +#faucet = { local = "../faucet" } +task2 = { local = "../task2" } +# 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] +task4 = "0x0" +#faucet = "0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462" + +# 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/tutu-stack/code/task4/log4Deposit.txt b/mover/tutu-stack/code/task4/log4Deposit.txt new file mode 100644 index 000000000..13088e82c --- /dev/null +++ b/mover/tutu-stack/code/task4/log4Deposit.txt @@ -0,0 +1,124 @@ +ransaction Digest: GN8GFsh7AVNjV69zACgoeF239vVm8vjBtKahPfbtKP6n +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ Gas Owner: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ Gas Budget: 2413408 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x38b5a140de803c4245828bc6a0e63a1f44be7c67d6d796b1592c4196d8d88e2b │ +│ │ Version: 305749376 │ +│ │ Digest: C3ouVwYkHLA4t5c1GXu5RY6M2wxroD2qUa1HgS1JHxk2 │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Imm/Owned Object ID: 0x1ba50e22f8483e318d33365c9226fd7ae39b784a54dc4e4abd3faced27610d40 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: init_pool │ │ +│ │ │ Module: rock_paper_scissors │ │ +│ │ │ Package: 0xb88a0f3c2667d1820b7a8e0fc780e8715094194d14dc9f69f1c2322f44a7305c │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ BUQ23iozDL4LQuIiZp1y/1VY1otJdZQlUn+CMk3cNVoMHQ9wOeMAePI26NmIvYC9TNFqC8PWETvcYfslK0j1DQ== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: GN8GFsh7AVNjV69zACgoeF239vVm8vjBtKahPfbtKP6n │ +│ Status: Success │ +│ Executed Epoch: 463 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x0da72a4f83a4cbf746ac2337bb022baad0dfbfe05af43dc1b9e0d7d76bcf7967 │ +│ │ Owner: Shared( 305749377 ) │ +│ │ Version: 305749377 │ +│ │ Digest: 8dCdCK4RzTHymgbt5fMPHkidayBnGxRYiosRMdiDsHzR │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x38b5a140de803c4245828bc6a0e63a1f44be7c67d6d796b1592c4196d8d88e2b │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ Version: 305749377 │ +│ │ Digest: 7NKQHE7msEHw37pRsEDoLQEQNgxnYzn3wW6hJnH9coBk │ +│ └── │ +│ Deleted Objects: │ +│ ┌── │ +│ │ ID: 0x1ba50e22f8483e318d33365c9226fd7ae39b784a54dc4e4abd3faced27610d40 │ +│ │ Version: 305749377 │ +│ │ Digest: 7gyGAp71YXQRoxmFBaHxofQXAipvgHyBKPyxmdSJxyvz │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x38b5a140de803c4245828bc6a0e63a1f44be7c67d6d796b1592c4196d8d88e2b │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ Version: 305749377 │ +│ │ Digest: 7NKQHE7msEHw37pRsEDoLQEQNgxnYzn3wW6hJnH9coBk │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2462400 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 2543112 MIST │ +│ Non-refundable Storage Fee: 25688 MIST │ +│ │ +│ Transaction Dependencies: │ +│ nsRMaWVY1LN7E5NuZGG6hXL4QJzRHvWkFPS6rq3c2wa │ +│ 7KFCDJPFuzkVV91KfUzyCk5kJhP2n93oZXZwjpQqeC1E │ +│ DuNcix1kigLS5FD3GVeKAFodJQUDbbGj9buTWdLts68K │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0da72a4f83a4cbf746ac2337bb022baad0dfbfe05af43dc1b9e0d7d76bcf7967 │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ Owner: Shared( 305749377 ) │ +│ │ ObjectType: 0xb88a0f3c2667d1820b7a8e0fc780e8715094194d14dc9f69f1c2322f44a7305c::rock_paper_scissors::RewardPool │ +│ │ Version: 305749377 │ +│ │ Digest: 8dCdCK4RzTHymgbt5fMPHkidayBnGxRYiosRMdiDsHzR │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x38b5a140de803c4245828bc6a0e63a1f44be7c67d6d796b1592c4196d8d88e2b │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 305749377 │ +│ │ Digest: 7NKQHE7msEHw37pRsEDoLQEQNgxnYzn3wW6hJnH9coBk │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -677288 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ CoinType: 0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462::tutustack_faucet_coin::TUTUSTACK_FAUCET_COIN │ +│ │ Amount: -99000 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +------------------------------------------------------------------------------------------------------------------------------------------------------ diff --git a/mover/tutu-stack/code/task4/log4RunPlay.txt b/mover/tutu-stack/code/task4/log4RunPlay.txt new file mode 100644 index 000000000..73d3edd65 --- /dev/null +++ b/mover/tutu-stack/code/task4/log4RunPlay.txt @@ -0,0 +1,142 @@ +Transaction Digest: HPkU6SDDPcmhxCAD8hi9iWyC3JA8XSjG2ty5ssErNc6F +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ Gas Owner: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ Gas Budget: 2518744 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x38b5a140de803c4245828bc6a0e63a1f44be7c67d6d796b1592c4196d8d88e2b │ +│ │ Version: 305749377 │ +│ │ Digest: 7NKQHE7msEHw37pRsEDoLQEQNgxnYzn3wW6hJnH9coBk │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: u8, Value: 1 │ │ +│ │ 1 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000006 │ │ +│ │ 2 Shared Object ID: 0x0da72a4f83a4cbf746ac2337bb022baad0dfbfe05af43dc1b9e0d7d76bcf7967 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: play │ │ +│ │ │ Module: rock_paper_scissors │ │ +│ │ │ Package: 0xb88a0f3c2667d1820b7a8e0fc780e8715094194d14dc9f69f1c2322f44a7305c │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ Ed+QK/VVpZILmttbfw0WSR6D947jjO56awips/hfDqfGfwdkd6d/OT6zSbpa2qX3O5KK+Tie3k3cKKA33o/5AQ== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: HPkU6SDDPcmhxCAD8hi9iWyC3JA8XSjG2ty5ssErNc6F │ +│ Status: Success │ +│ Executed Epoch: 463 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0da72a4f83a4cbf746ac2337bb022baad0dfbfe05af43dc1b9e0d7d76bcf7967 │ +│ │ Owner: Shared( 305749377 ) │ +│ │ Version: 305749378 │ +│ │ Digest: 8GEm2KpxT1UXTCHZnyvRLMPuQz71Hi7uHL3LhvqDa2Bp │ +│ └── │ +│ ┌── │ +│ │ ID: 0x38b5a140de803c4245828bc6a0e63a1f44be7c67d6d796b1592c4196d8d88e2b │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ Version: 305749378 │ +│ │ Digest: 49r9nHYZVo1XAhitXsFcPruE6t7LbunaCZXdWUpB6uCQ │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x0da72a4f83a4cbf746ac2337bb022baad0dfbfe05af43dc1b9e0d7d76bcf7967 │ +│ │ Version: 305749377 │ +│ │ Digest: 8dCdCK4RzTHymgbt5fMPHkidayBnGxRYiosRMdiDsHzR │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000006 │ +│ │ Version: 39715772 │ +│ │ Digest: 5n4x3Tdph9C6NkwBxBN1oKRBi8da3WixsNEF2uFPEQBC │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x38b5a140de803c4245828bc6a0e63a1f44be7c67d6d796b1592c4196d8d88e2b │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ Version: 305749378 │ +│ │ Digest: 49r9nHYZVo1XAhitXsFcPruE6t7LbunaCZXdWUpB6uCQ │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2462400 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 2437776 MIST │ +│ Non-refundable Storage Fee: 24624 MIST │ +│ │ +│ Transaction Dependencies: │ +│ nsRMaWVY1LN7E5NuZGG6hXL4QJzRHvWkFPS6rq3c2wa │ +│ 8tBTekZWGhCwbmB8xwQ1p39RSpNZzPRjMcRnJft6pF4q │ +│ GN8GFsh7AVNjV69zACgoeF239vVm8vjBtKahPfbtKP6n │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: HPkU6SDDPcmhxCAD8hi9iWyC3JA8XSjG2ty5ssErNc6F:0 │ +│ │ PackageID: 0xb88a0f3c2667d1820b7a8e0fc780e8715094194d14dc9f69f1c2322f44a7305c │ +│ │ Transaction Module: rock_paper_scissors │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ EventType: 0xb88a0f3c2667d1820b7a8e0fc780e8715094194d14dc9f69f1c2322f44a7305c::rock_paper_scissors::GamingResultEvent │ +│ │ ParsedJSON: │ +│ │ ┌─────────────────┬───────┐ │ +│ │ │ computer_choice │ paper │ │ +│ │ ├─────────────────┼───────┤ │ +│ │ │ is_win │ false │ │ +│ │ ├─────────────────┼───────┤ │ +│ │ │ result │ Draw │ │ +│ │ ├─────────────────┼───────┤ │ +│ │ │ your_choice │ paper │ │ +│ │ └─────────────────┴───────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0da72a4f83a4cbf746ac2337bb022baad0dfbfe05af43dc1b9e0d7d76bcf7967 │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ Owner: Shared( 305749377 ) │ +│ │ ObjectType: 0xb88a0f3c2667d1820b7a8e0fc780e8715094194d14dc9f69f1c2322f44a7305c::rock_paper_scissors::RewardPool │ +│ │ Version: 305749378 │ +│ │ Digest: 8GEm2KpxT1UXTCHZnyvRLMPuQz71Hi7uHL3LhvqDa2Bp │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x38b5a140de803c4245828bc6a0e63a1f44be7c67d6d796b1592c4196d8d88e2b │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 305749378 │ +│ │ Digest: 49r9nHYZVo1XAhitXsFcPruE6t7LbunaCZXdWUpB6uCQ │ +│ └── │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -782624 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +------------------------------------------------------------------------------------------------------------------------------------------------------ diff --git a/mover/tutu-stack/code/task4/log4RunPlay2.txt b/mover/tutu-stack/code/task4/log4RunPlay2.txt new file mode 100644 index 000000000..1cba7a25e --- /dev/null +++ b/mover/tutu-stack/code/task4/log4RunPlay2.txt @@ -0,0 +1,164 @@ +Transaction Digest: JDbjnKsR6GutnixbnUeVVAA1PfmMeGDJkBhq7Cac7TU1 +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ Gas Owner: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ Gas Budget: 2518744 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x38b5a140de803c4245828bc6a0e63a1f44be7c67d6d796b1592c4196d8d88e2b │ +│ │ Version: 305749378 │ +│ │ Digest: 49r9nHYZVo1XAhitXsFcPruE6t7LbunaCZXdWUpB6uCQ │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: u8, Value: 0 │ │ +│ │ 1 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000006 │ │ +│ │ 2 Shared Object ID: 0x0da72a4f83a4cbf746ac2337bb022baad0dfbfe05af43dc1b9e0d7d76bcf7967 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: play │ │ +│ │ │ Module: rock_paper_scissors │ │ +│ │ │ Package: 0xb88a0f3c2667d1820b7a8e0fc780e8715094194d14dc9f69f1c2322f44a7305c │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ OCPf3c86+TDbJlUIFGveDH4zf1kJuVafizu+AWKaxCYJjw7I0XMUuX8B452mSOQKC0tm+DZkOjQ7PYhJug0SBg== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: JDbjnKsR6GutnixbnUeVVAA1PfmMeGDJkBhq7Cac7TU1 │ +│ Status: Success │ +│ Executed Epoch: 463 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xcaef2527e137240dafed00efc3c4879371e20ddd4aceb1ac0c7b10490c41b20c │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ Version: 305749379 │ +│ │ Digest: HWvipFQCd7SsUTEHfjTNEe46KJa2u956VLP8Ks9PBp72 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0da72a4f83a4cbf746ac2337bb022baad0dfbfe05af43dc1b9e0d7d76bcf7967 │ +│ │ Owner: Shared( 305749377 ) │ +│ │ Version: 305749379 │ +│ │ Digest: 5AcgQcDnBBQ3jH7xHbLvnAd4skwLqAvEwkUsYstQJ7bM │ +│ └── │ +│ ┌── │ +│ │ ID: 0x38b5a140de803c4245828bc6a0e63a1f44be7c67d6d796b1592c4196d8d88e2b │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ Version: 305749379 │ +│ │ Digest: HCRt68L21mSRKHHfJik52fkgmaKGVX6V9gJu5e5mUFJp │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x0da72a4f83a4cbf746ac2337bb022baad0dfbfe05af43dc1b9e0d7d76bcf7967 │ +│ │ Version: 305749378 │ +│ │ Digest: 8GEm2KpxT1UXTCHZnyvRLMPuQz71Hi7uHL3LhvqDa2Bp │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000006 │ +│ │ Version: 39716299 │ +│ │ Digest: 5SvpjamJFzRiFGkogdUBUZT3Tvr3WRvf71ZDFhVMxtFE │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x38b5a140de803c4245828bc6a0e63a1f44be7c67d6d796b1592c4196d8d88e2b │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ Version: 305749379 │ +│ │ Digest: HCRt68L21mSRKHHfJik52fkgmaKGVX6V9gJu5e5mUFJp │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 4043200 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 2437776 MIST │ +│ Non-refundable Storage Fee: 24624 MIST │ +│ │ +│ Transaction Dependencies: │ +│ nsRMaWVY1LN7E5NuZGG6hXL4QJzRHvWkFPS6rq3c2wa │ +│ DKimzBf7sqWsDH6NB2RW6XRYr5YXt42wHdap1gBB269L │ +│ HPkU6SDDPcmhxCAD8hi9iWyC3JA8XSjG2ty5ssErNc6F │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: JDbjnKsR6GutnixbnUeVVAA1PfmMeGDJkBhq7Cac7TU1:0 │ +│ │ PackageID: 0xb88a0f3c2667d1820b7a8e0fc780e8715094194d14dc9f69f1c2322f44a7305c │ +│ │ Transaction Module: rock_paper_scissors │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ EventType: 0xb88a0f3c2667d1820b7a8e0fc780e8715094194d14dc9f69f1c2322f44a7305c::rock_paper_scissors::GamingResultEvent │ +│ │ ParsedJSON: │ +│ │ ┌─────────────────┬───────┐ │ +│ │ │ computer_choice │ paper │ │ +│ │ ├─────────────────┼───────┤ │ +│ │ │ is_win │ true │ │ +│ │ ├─────────────────┼───────┤ │ +│ │ │ result │ win │ │ +│ │ ├─────────────────┼───────┤ │ +│ │ │ your_choice │ rock │ │ +│ │ └─────────────────┴───────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xcaef2527e137240dafed00efc3c4879371e20ddd4aceb1ac0c7b10490c41b20c │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ ObjectType: 0x2::coin::Coin<0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462::tutustack_faucet_coin::TUTUSTACK_FAUCET_COIN> │ +│ │ Version: 305749379 │ +│ │ Digest: HWvipFQCd7SsUTEHfjTNEe46KJa2u956VLP8Ks9PBp72 │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0da72a4f83a4cbf746ac2337bb022baad0dfbfe05af43dc1b9e0d7d76bcf7967 │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ Owner: Shared( 305749377 ) │ +│ │ ObjectType: 0xb88a0f3c2667d1820b7a8e0fc780e8715094194d14dc9f69f1c2322f44a7305c::rock_paper_scissors::RewardPool │ +│ │ Version: 305749379 │ +│ │ Digest: 5AcgQcDnBBQ3jH7xHbLvnAd4skwLqAvEwkUsYstQJ7bM │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x38b5a140de803c4245828bc6a0e63a1f44be7c67d6d796b1592c4196d8d88e2b │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 305749379 │ +│ │ Digest: HCRt68L21mSRKHHfJik52fkgmaKGVX6V9gJu5e5mUFJp │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -2363424 │ +│ └── │ +│ ┌── │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ CoinType: 0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462::tutustack_faucet_coin::TUTUSTACK_FAUCET_COIN │ +│ │ Amount: 1 │ +│ └── │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +------------------------------------------------------------------------------------------------------------------------------------------------------ diff --git a/mover/tutu-stack/code/task4/log4mainnet.txt b/mover/tutu-stack/code/task4/log4mainnet.txt new file mode 100644 index 000000000..0f58ebe8c --- /dev/null +++ b/mover/tutu-stack/code/task4/log4mainnet.txt @@ -0,0 +1,132 @@ +Transaction Digest: nsRMaWVY1LN7E5NuZGG6hXL4QJzRHvWkFPS6rq3c2wa +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ Gas Owner: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ Gas Budget: 200000000 MIST │ +│ Gas Price: 758 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x38b5a140de803c4245828bc6a0e63a1f44be7c67d6d796b1592c4196d8d88e2b │ +│ │ Version: 305749373 │ +│ │ Digest: 46oDCmY73LDwu1f9uhPZdTM86zc7MNeAUHAsVcmejkiM │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ │ 0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ NFPB4PzZMrn9jH1bqyRVLp/81ZxwuZ30mcPY1SPsvklYV1tPuD/2quO4W/wksrWA0Pno2ZPaqamid/lBYJ/GDw== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: nsRMaWVY1LN7E5NuZGG6hXL4QJzRHvWkFPS6rq3c2wa │ +│ Status: Success │ +│ Executed Epoch: 463 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0xa458eec03d595f42c7e359aec2c93919fef6f7fb57996e68c1d0806a32082ec4 │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ Version: 305749374 │ +│ │ Digest: 5YwuMyMew9qJf6xSPEb5VvxZipP3giZyN829BvK2LmAa │ +│ └── │ +│ ┌── │ +│ │ ID: 0xb88a0f3c2667d1820b7a8e0fc780e8715094194d14dc9f69f1c2322f44a7305c │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: 9Ar7f5kFqMAs1xcv8qZfv69Yu6aZTBFiajLRpbzBpNSq │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x38b5a140de803c4245828bc6a0e63a1f44be7c67d6d796b1592c4196d8d88e2b │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ Version: 305749374 │ +│ │ Digest: AJuCNXTgbuYARnnvwLKNNpAq21bEAhC4pqdKRoWk327X │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x38b5a140de803c4245828bc6a0e63a1f44be7c67d6d796b1592c4196d8d88e2b │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ Version: 305749374 │ +│ │ Digest: AJuCNXTgbuYARnnvwLKNNpAq21bEAhC4pqdKRoWk327X │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 15998000 MIST │ +│ Computation Cost: 758000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 7bCWi2FRQsXVTva5693tByWLpBAVYc4woGddw6heaQ39 │ +│ DuNcix1kigLS5FD3GVeKAFodJQUDbbGj9buTWdLts68K │ +│ GzAtGxtSiVdCwKekJqKXtxL3hHCsZ2H8tfttoaeuxd6C │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0xa458eec03d595f42c7e359aec2c93919fef6f7fb57996e68c1d0806a32082ec4 │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 305749374 │ +│ │ Digest: 5YwuMyMew9qJf6xSPEb5VvxZipP3giZyN829BvK2LmAa │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x38b5a140de803c4245828bc6a0e63a1f44be7c67d6d796b1592c4196d8d88e2b │ +│ │ Sender: 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 305749374 │ +│ │ Digest: AJuCNXTgbuYARnnvwLKNNpAq21bEAhC4pqdKRoWk327X │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xb88a0f3c2667d1820b7a8e0fc780e8715094194d14dc9f69f1c2322f44a7305c │ +│ │ Version: 1 │ +│ │ Digest: 9Ar7f5kFqMAs1xcv8qZfv69Yu6aZTBFiajLRpbzBpNSq │ +│ │ Modules: rock_paper_scissors │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -15777880 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +---------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/mover/tutu-stack/code/task4/sources/task4.move b/mover/tutu-stack/code/task4/sources/task4.move new file mode 100644 index 000000000..f7720e0f1 --- /dev/null +++ b/mover/tutu-stack/code/task4/sources/task4.move @@ -0,0 +1,86 @@ +/// Module: task4 +module task4::rock_paper_scissors { + use std::string::{Self, String}; + use sui::clock::{Self, Clock}; + use sui::event; + use sui::balance; + use sui::balance::Balance; + use sui::coin; + use sui::coin::{Coin, from_balance, into_balance}; + use sui::tx_context; + use sui::tx_context::sender; + use sui::transfer::{share_object, transfer, public_transfer}; + use task2::tutustack_faucet_coin::TUTUSTACK_FAUCET_COIN; + + const EInvalidNumber: u64 = 1; + const PLAYER_WON_STATE: u8 = 1; + + public struct GamingResultEvent has copy, drop { + is_win: bool, + your_choice: String, + computer_choice: String, + result: String, + } + + public struct RewardPool has key { + id: UID, + balance: Balance, + } + + fun get_random_choice(clock: &Clock): u8 { + ( ( clock::timestamp_ms(clock) % 3 ) as u8 ) + } + + fun map_choice_to_string(choice: u8): String { + if (choice == 0) { + string::utf8(b"rock") + } else if (choice == 1) { + string::utf8(b"paper") + } else if (choice == 2) { + string::utf8(b"scissors") + } else { + string::utf8(b"Invalid") + } + } + + public fun play(choice: u8, clock: &Clock, pool: &mut RewardPool, ctx: &mut TxContext,) { + assert!(choice < 3, EInvalidNumber); + + let computer_choice = get_random_choice(clock); + let (result, is_win) = if ( + (choice == 0 && computer_choice == 1) + || (choice == 1 && computer_choice == 2) + || (choice == 2 && computer_choice == 0) + ) { + (string::utf8(b"win"), true) + } else if (choice == computer_choice) { + (string::utf8(b"Draw"), false) + } else { + (string::utf8(b"Lose"), false) + }; + + if (is_win) { + let fee_amount = 1; + let fees = balance::split(&mut pool.balance, fee_amount); + transfer::public_transfer(coin::from_balance(fees, ctx), tx_context::sender(ctx)); + PLAYER_WON_STATE; + }; + + event::emit(GamingResultEvent { + result, + is_win, + your_choice: map_choice_to_string(choice), + computer_choice: map_choice_to_string(computer_choice), + }); + } + + public entry fun init_pool( coin: Coin, ctx: &mut TxContext) { + let pool = RewardPool { + id: object::new(ctx), + balance: coin::into_balance(coin) + }; + + // 初始化pool并分享 + transfer::share_object(pool); + } +} diff --git a/mover/tutu-stack/images/Snipaste_2024-07-18.png b/mover/tutu-stack/images/Snipaste_2024-07-18.png new file mode 100644 index 000000000..2f93b5ac2 Binary files /dev/null and b/mover/tutu-stack/images/Snipaste_2024-07-18.png differ diff --git a/mover/tutu-stack/images/suiscan_tutu-stack.png b/mover/tutu-stack/images/suiscan_tutu-stack.png new file mode 100644 index 000000000..0affdec83 Binary files /dev/null and b/mover/tutu-stack/images/suiscan_tutu-stack.png differ diff --git a/mover/tutu-stack/images/suiwallet_tutu-stack.png b/mover/tutu-stack/images/suiwallet_tutu-stack.png new file mode 100644 index 000000000..9f53aa922 Binary files /dev/null and b/mover/tutu-stack/images/suiwallet_tutu-stack.png differ diff --git a/mover/tutu-stack/notes/readme.md b/mover/tutu-stack/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/tutu-stack/readme.md b/mover/tutu-stack/readme.md new file mode 100644 index 000000000..667c1f01f --- /dev/null +++ b/mover/tutu-stack/readme.md @@ -0,0 +1,38 @@ +## 基本信息 +- Sui钱包地址: `0x1bbc560ee7edb7b047196ac7a1887a9ce2c7967b10f6d6b0ccd172afe9b44a34` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `tutu-stack` + + +## 个人简介 +- 工作经验: 8年 +- 技术栈: `React` `lua` `nodejs` `Javascript` +- 网安web小白,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: email: `tzjvon@gmail.com` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.28.2-08b50387a184 +- [x] Sui钱包截图: ![Sui钱包截图](./images/suiwallet_tutu-stack.png) +- [x] package id: `0xe61cd33b44cec19f85d8c68dbdfad3ffaaecb6fc1cbaa6246717bed540adf5a3` +- [x] package id 在 scan上的查看截图:![Scan截图](./images/suiscan_tutu-stack.png) + +## 02 move coin +- [x] My Coin package id : 0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462 +- [x] Faucet package id : 0xd0e013e834f9b832da96936e4306019ca50de6a4601cfc6fa2995f05ba990462 +- [x] 转账 `My Coin` hash: HZA4QqF58VmZHpT1nLFyTZt3SfoDnjDoRZuDaZbN3oxr +- [x] `Faucet Coin` address1 mint hash: 5Fq43TfQ3BrAB7Bm7KzpjGg6jXxgTm2CMjtWyyGtMBzw +- [x] `Faucet Coin` address2 mint hash: 2jSAHu4VkiUuoEpUFc7syX2wzdPojToUM7DwnMDsc2sz + +## 03 move NFT +- [x] nft package id :0x38acd0378b9badb7f8d22395623d5c5b33aea27ca3adbe14d81b40f5cef04893 +- [x] nft object id : 0x6cc4431fb16ae3a77d2de72777616a9aa547bab25b3693e8275f3015451b6ae3 +- [x] 转账 nft hash: 2Qc3JjyahEjjPL3GdkXiWJsuzFAMDtFNPPisnYaL76mE +- [x] scan上的NFT截图:![Scan截图](./images/Snipaste_2024-07-18.png) + +## 04 Move Game +- [x] game package id : 0xb88a0f3c2667d1820b7a8e0fc780e8715094194d14dc9f69f1c2322f44a7305c +- [x] deposit Coin hash: GN8GFsh7AVNjV69zACgoeF239vVm8vjBtKahPfbtKP6n +- [x] withdraw `Coin` hash: JDbjnKsR6GutnixbnUeVVAA1PfmMeGDJkBhq7Cac7TU1 +- [x] play game hash: HPkU6SDDPcmhxCAD8hi9iWyC3JA8XSjG2ty5ssErNc6F diff --git a/mover/twiagle/notes/task1/readme.md b/mover/twiagle/notes/task1/readme.md index f00357af3..21e736f15 100644 --- a/mover/twiagle/notes/task1/readme.md +++ b/mover/twiagle/notes/task1/readme.md @@ -14,6 +14,6 @@ curl --location --request POST 'https://faucet.testnet.sui.io/gas' \ sui client switch --env testnet sui move build -sui client publish --gas-budget 100000000 +sui client publish ref: https://docs.sui.io/references/cli/client \ No newline at end of file diff --git a/mover/twiagle/notes/task2/readme.md b/mover/twiagle/notes/task2/readme.md index 2b29e365d..ccb932084 100644 --- a/mover/twiagle/notes/task2/readme.md +++ b/mover/twiagle/notes/task2/readme.md @@ -5,11 +5,11 @@ package owner: ### 央行模式 使用部署package的账户执行,可以给任何地址mint sui client switch --address 切换到另一个测试账户执行,无法执行 -sui client call --function mint_and_transfer --module twiaglecoin --package 0x892bf3a4fcb00c8e8e4a03073d29f3f8a413f2c01e7e16f7753a9e8c907f5850 --args 0x2141a90ccac58704e688150611f853585f195f886fc559150d7855cbdc855f5d 1000000 0xe34f375a8a64a137024c2893e031d5c5a95d6f493c8fab1936de985fbe28ac72 --gas-budget 100000000 +sui client call --function mint_and_transfer --module twiaglecoin --package 0x892bf3a4fcb00c8e8e4a03073d29f3f8a413f2c01e7e16f7753a9e8c907f5850 --args 0x2141a90ccac58704e688150611f853585f195f886fc559150d7855cbdc855f5d 1000000 0xe34f375a8a64a137024c2893e031d5c5a95d6f493c8fab1936de985fbe28ac72 ![2_1.png](2_1.png) ### 水龙头模式 两个账户均可执行 -sui client call --function mint_and_transfer --module twiaglefaucet --package 0x1dff8ee913ca2a5e5441b273025bb5fccc304c37cbbd9b128f5620f0e4b5a57b --args 0xe4d837ab3e8e4e96c9c39fa961f8dfb7febf8b260732bf064930ef00d5db0c60 1 0xe34f375a8a64a137024c2893e031d5c5a95d6f493c8fab1936de985fbe28ac72 --gas-budget 100000000 -sui client call --function mint_and_transfer --module twiaglefaucet --package 0x1dff8ee913ca2a5e5441b273025bb5fccc304c37cbbd9b128f5620f0e4b5a57b --args 0xe4d837ab3e8e4e96c9c39fa961f8dfb7febf8b260732bf064930ef00d5db0c60 1 0x575354b119bc4be704c5d5dc91bb6ce496f93726b412a430f19df93246fb2f0d --gas-budget 100000000 +sui client call --function mint_and_transfer --module twiaglefaucet --package 0x1dff8ee913ca2a5e5441b273025bb5fccc304c37cbbd9b128f5620f0e4b5a57b --args 0xe4d837ab3e8e4e96c9c39fa961f8dfb7febf8b260732bf064930ef00d5db0c60 1 0xe34f375a8a64a137024c2893e031d5c5a95d6f493c8fab1936de985fbe28ac72 +sui client call --function mint_and_transfer --module twiaglefaucet --package 0x1dff8ee913ca2a5e5441b273025bb5fccc304c37cbbd9b128f5620f0e4b5a57b --args 0xe4d837ab3e8e4e96c9c39fa961f8dfb7febf8b260732bf064930ef00d5db0c60 1 0x575354b119bc4be704c5d5dc91bb6ce496f93726b412a430f19df93246fb2f0d ### mainnet -sui client call --function mint_and_transfer --module twiaglecoin --package 0xbea2b5fdc52a58271004d9488ae303db146f82c8b9f0cd45fbdb9e3460d531bc --args 0x4e5fa42b23976ff9dabf09f21d426d37ebb69c4416231e4e572ee5a051326f2c 1000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 --gas-budget 100000000 +sui client call --function mint_and_transfer --module twiaglecoin --package 0xbea2b5fdc52a58271004d9488ae303db146f82c8b9f0cd45fbdb9e3460d531bc --args 0x4e5fa42b23976ff9dabf09f21d426d37ebb69c4416231e4e572ee5a051326f2c 1000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 diff --git a/mover/twiagle/notes/task3/readme.md b/mover/twiagle/notes/task3/readme.md index 430485a93..fa27b03ed 100644 --- a/mover/twiagle/notes/task3/readme.md +++ b/mover/twiagle/notes/task3/readme.md @@ -2,9 +2,9 @@ package owner: 0xe34f375a8a64a137024c2893e031d5c5a95d6f493c8fab1936de985fbe28ac72 另一个测试账户:0x575354b119bc4be704c5d5dc91bb6ce496f93726b412a430f19df93246fb2f0d testnet -sui client call --function mint_nft --module nft --package 0x2ff6ba6ac93fe77c548eb8d0f77e36e2f0870fff9ee33a3fc0e41b130a1b2355 --args 0x9334bb610c498e72e545b11a3b7a8afc4f1b7632079ae37ee950853d0f3eb934 --gas-budget 100000000 -sui client call --function transfer --module nft --package 0x2ff6ba6ac93fe77c548eb8d0f77e36e2f0870fff9ee33a3fc0e41b130a1b2355 --args 0x53b0025b27ae58ed6d13637b4e1030a49a779e7c61976dc9c4730ab0c2bd1665 0xe2469bd8dcba6c0218e653771e5aa44f4f54b4399e313f90db8b80fa2cb55dd6 --gas-budget 100000000 +sui client call --function mint_nft --module nft --package 0x2ff6ba6ac93fe77c548eb8d0f77e36e2f0870fff9ee33a3fc0e41b130a1b2355 --args 0x9334bb610c498e72e545b11a3b7a8afc4f1b7632079ae37ee950853d0f3eb934 +sui client call --function transfer --module nft --package 0x2ff6ba6ac93fe77c548eb8d0f77e36e2f0870fff9ee33a3fc0e41b130a1b2355 --args 0x53b0025b27ae58ed6d13637b4e1030a49a779e7c61976dc9c4730ab0c2bd1665 0xe2469bd8dcba6c0218e653771e5aa44f4f54b4399e313f90db8b80fa2cb55dd6 ![2_1.png](2_1.png) mainnet -sui client call --function mint_nft --module nft --package 0x35f60449ff05ec249e8d3b49e71d4ccd96ffa6147e3c356bf91f6803bce36db1 --args 0x47a3946b73d39057f6fb0504ca84daca44dd24410baaa49d4edda45dafe04edc --gas-budget 100000000 -sui client call --function transfer --module nft --package 0x35f60449ff05ec249e8d3b49e71d4ccd96ffa6147e3c356bf91f6803bce36db1 --args 0xd7697c50ec9857b3b7a6c899758f3450948cd87a65a21e8f116db6eb8899e41c 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 --gas-budget 100000000 +sui client call --function mint_nft --module nft --package 0x35f60449ff05ec249e8d3b49e71d4ccd96ffa6147e3c356bf91f6803bce36db1 --args 0x47a3946b73d39057f6fb0504ca84daca44dd24410baaa49d4edda45dafe04edc +sui client call --function transfer --module nft --package 0x35f60449ff05ec249e8d3b49e71d4ccd96ffa6147e3c356bf91f6803bce36db1 --args 0xd7697c50ec9857b3b7a6c899758f3450948cd87a65a21e8f116db6eb8899e41c 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 diff --git a/mover/twiagle/notes/task5/readme.md b/mover/twiagle/notes/task5/readme.md index 77b1ebed2..bd131e8dd 100644 --- a/mover/twiagle/notes/task5/readme.md +++ b/mover/twiagle/notes/task5/readme.md @@ -1,20 +1,20 @@ 测试网 0xe34f375a8a64a137024c2893e031d5c5a95d6f493c8fab1936de985fbe28ac72 ### 央行模式 twiaglecoin 1000 -sui client call --function mint_and_transfer --module twiaglecoin --package 0x892bf3a4fcb00c8e8e4a03073d29f3f8a413f2c01e7e16f7753a9e8c907f5850 --args 0x2141a90ccac58704e688150611f853585f195f886fc559150d7855cbdc855f5d 1 0xe34f375a8a64a137024c2893e031d5c5a95d6f493c8fab1936de985fbe28ac72 --gas-budget 100000000 +sui client call --function mint_and_transfer --module twiaglecoin --package 0x892bf3a4fcb00c8e8e4a03073d29f3f8a413f2c01e7e16f7753a9e8c907f5850 --args 0x2141a90ccac58704e688150611f853585f195f886fc559150d7855cbdc855f5d 1 0xe34f375a8a64a137024c2893e031d5c5a95d6f493c8fab1936de985fbe28ac72 export twiaglecoin=0xf3776b91c5bd0ba0fb0bed6207762f0bc5dc9a5394c1895afbf17fe085ca6062 ### 水龙头模式 twiaglefaucet 10000 -sui client call --function mint_and_transfer --module twiaglefaucet --package 0x1dff8ee913ca2a5e5441b273025bb5fccc304c37cbbd9b128f5620f0e4b5a57b --args 0xe4d837ab3e8e4e96c9c39fa961f8dfb7febf8b260732bf064930ef00d5db0c60 10000 0xe34f375a8a64a137024c2893e031d5c5a95d6f493c8fab1936de985fbe28ac72 --gas-budget 100000000 +sui client call --function mint_and_transfer --module twiaglefaucet --package 0x1dff8ee913ca2a5e5441b273025bb5fccc304c37cbbd9b128f5620f0e4b5a57b --args 0xe4d837ab3e8e4e96c9c39fa961f8dfb7febf8b260732bf064930ef00d5db0c60 10000 0xe34f375a8a64a137024c2893e031d5c5a95d6f493c8fab1936de985fbe28ac72 export twiaglefaucet=0x5f54c61ada6d41ac82e1e82adc917bbce47a61bf0224f73e42ff8191b2b3e474 export PACKAGEID=0xf2180c0dd361547a2063cac7acca8de601859b4795eef2b9a214248d4c58259f ### create_liquidity_pool twiaglecoin 1000 水龙头模式 twiaglefaucet 100 -sui client call --function create_liquidity_pool --module swap --package $PACKAGEID --args $twiaglecoin $twiaglefaucet --type-args 0x892bf3a4fcb00c8e8e4a03073d29f3f8a413f2c01e7e16f7753a9e8c907f5850::twiaglecoin::TWIAGLECOIN 0x1dff8ee913ca2a5e5441b273025bb5fccc304c37cbbd9b128f5620f0e4b5a57b::twiaglefaucet::TWIAGLEFAUCET --gas-budget 100000000 +sui client call --function create_liquidity_pool --module swap --package $PACKAGEID --args $twiaglecoin $twiaglefaucet --type-args 0x892bf3a4fcb00c8e8e4a03073d29f3f8a413f2c01e7e16f7753a9e8c907f5850::twiaglecoin::TWIAGLECOIN 0x1dff8ee913ca2a5e5441b273025bb5fccc304c37cbbd9b128f5620f0e4b5a57b::twiaglefaucet::TWIAGLEFAUCET export LIQUIDITYPOOL=0xe1af3e3170ff2f73fab6d20e79088badca676e8d55643f5ef91f4b802ddbb556 export LPCOIN=0x29c7a57effbfa32b181e0662a002a3e96e1922f965c1ffe938d6a281a137139a ### swap 10 twiaglecoin for twiaglefaucet -sui client call --function mint_and_transfer --module twiaglecoin --package 0x892bf3a4fcb00c8e8e4a03073d29f3f8a413f2c01e7e16f7753a9e8c907f5850 --args 0x2141a90ccac58704e688150611f853585f195f886fc559150d7855cbdc855f5d 1 0xe34f375a8a64a137024c2893e031d5c5a95d6f493c8fab1936de985fbe28ac72 --gas-budget 100000000 +sui client call --function mint_and_transfer --module twiaglecoin --package 0x892bf3a4fcb00c8e8e4a03073d29f3f8a413f2c01e7e16f7753a9e8c907f5850 --args 0x2141a90ccac58704e688150611f853585f195f886fc559150d7855cbdc855f5d 1 0xe34f375a8a64a137024c2893e031d5c5a95d6f493c8fab1936de985fbe28ac72 export COINA=0x87857d10283c569067bd42d5a3162d04e72b772e182ebb8f6943401cde3a2773 -sui client call --function swap_exact_a_for_b --module swap --package $PACKAGEID --args $COINA $LIQUIDITYPOOL 5 --type-args 0x892bf3a4fcb00c8e8e4a03073d29f3f8a413f2c01e7e16f7753a9e8c907f5850::twiaglecoin::TWIAGLECOIN 0x1dff8ee913ca2a5e5441b273025bb5fccc304c37cbbd9b128f5620f0e4b5a57b::twiaglefaucet::TWIAGLEFAUCET --gas-budget 100000000 +sui client call --function swap_exact_a_for_b --module swap --package $PACKAGEID --args $COINA $LIQUIDITYPOOL 5 --type-args 0x892bf3a4fcb00c8e8e4a03073d29f3f8a413f2c01e7e16f7753a9e8c907f5850::twiaglecoin::TWIAGLECOIN 0x1dff8ee913ca2a5e5441b273025bb5fccc304c37cbbd9b128f5620f0e4b5a57b::twiaglefaucet::TWIAGLEFAUCET ### mainnet @@ -22,17 +22,17 @@ export PACKAGEID=0x0f5d2937653a9dcd24e45ede258efbe24b69ed8774d0923d7d828c9f3d0d5 export twiagleCoinPID=0xbea2b5fdc52a58271004d9488ae303db146f82c8b9f0cd45fbdb9e3460d531bc export faucetCoinPID=0x2152eb58395b4d7d5eba797f47942c4bfad2868cb3d45bc9219415ec6f5b1cfc ### 央行模式 twiaglecoin 10000 -sui client call --function mint_and_transfer --module twiaglecoin --package $twiagleCoinPID --args 0x4e5fa42b23976ff9dabf09f21d426d37ebb69c4416231e4e572ee5a051326f2c 10000 0xe2469bd8dcba6c0218e653771e5aa44f4f54b4399e313f90db8b80fa2cb55dd6 --gas-budget 100000000 +sui client call --function mint_and_transfer --module twiaglecoin --package $twiagleCoinPID --args 0x4e5fa42b23976ff9dabf09f21d426d37ebb69c4416231e4e572ee5a051326f2c 10000 0xe2469bd8dcba6c0218e653771e5aa44f4f54b4399e313f90db8b80fa2cb55dd6 ### 水龙头模式 twiaglefaucet 1000 -sui client call --function mint_and_transfer --module twiaglefaucet --package $faucetCoinPID --args 0x18e7fd30768c0d738b1ecc5da810c118e76469141c62c25986badbf5bfba3869 1000 0xe2469bd8dcba6c0218e653771e5aa44f4f54b4399e313f90db8b80fa2cb55dd6 --gas-budget 100000000 +sui client call --function mint_and_transfer --module twiaglefaucet --package $faucetCoinPID --args 0x18e7fd30768c0d738b1ecc5da810c118e76469141c62c25986badbf5bfba3869 1000 0xe2469bd8dcba6c0218e653771e5aa44f4f54b4399e313f90db8b80fa2cb55dd6 export twiaglecoin=0xbd414f567c489bac27be0d6f7ff4d2b17302a947c4d8f2978d4bad9927351047 export twiaglefaucet=0xcb24c245d97c944cd668ab729539902b200fb34571e0aaf6c5eaf802f7ae2b3f ### create_liquidity_pool -sui client call --function create_liquidity_pool --module swap --package $PACKAGEID --args $twiaglecoin $twiaglefaucet --type-args 0xbea2b5fdc52a58271004d9488ae303db146f82c8b9f0cd45fbdb9e3460d531bc::twiaglecoin::TWIAGLECOIN 0x2152eb58395b4d7d5eba797f47942c4bfad2868cb3d45bc9219415ec6f5b1cfc::twiaglefaucet::TWIAGLEFAUCET --gas-budget 100000000 +sui client call --function create_liquidity_pool --module swap --package $PACKAGEID --args $twiaglecoin $twiaglefaucet --type-args 0xbea2b5fdc52a58271004d9488ae303db146f82c8b9f0cd45fbdb9e3460d531bc::twiaglecoin::TWIAGLECOIN 0x2152eb58395b4d7d5eba797f47942c4bfad2868cb3d45bc9219415ec6f5b1cfc::twiaglefaucet::TWIAGLEFAUCET export LIQUIDITYPOOL=0x812dcbbd276c928c71dd71897e40b2a33492e5030a3c0df497fa2fd5a06c729d export LPCOIN=0xd83ff47f83b6dc84b440ba958b324321d88d1955b079423b14ff15fb29d09ed6 ### swap 10 twiaglecoin for 1 twiaglefaucet -sui client call --function mint_and_transfer --module twiaglecoin --package $twiagleCoinPID --args 0x4e5fa42b23976ff9dabf09f21d426d37ebb69c4416231e4e572ee5a051326f2c 10 0xe2469bd8dcba6c0218e653771e5aa44f4f54b4399e313f90db8b80fa2cb55dd6 --gas-budget 100000000 +sui client call --function mint_and_transfer --module twiaglecoin --package $twiagleCoinPID --args 0x4e5fa42b23976ff9dabf09f21d426d37ebb69c4416231e4e572ee5a051326f2c 10 0xe2469bd8dcba6c0218e653771e5aa44f4f54b4399e313f90db8b80fa2cb55dd6 export COINA=0x1e0cb469f6e8b2d4c25189c9d9193772209a25282b20c30626ef958e7f663207 -sui client call --function swap_exact_a_for_b --module swap --package $PACKAGEID --args $COINA $LIQUIDITYPOOL 1 --type-args 0xbea2b5fdc52a58271004d9488ae303db146f82c8b9f0cd45fbdb9e3460d531bc::twiaglecoin::TWIAGLECOIN 0x2152eb58395b4d7d5eba797f47942c4bfad2868cb3d45bc9219415ec6f5b1cfc::twiaglefaucet::TWIAGLEFAUCET --gas-budget 100000000 +sui client call --function swap_exact_a_for_b --module swap --package $PACKAGEID --args $COINA $LIQUIDITYPOOL 1 --type-args 0xbea2b5fdc52a58271004d9488ae303db146f82c8b9f0cd45fbdb9e3460d531bc::twiaglecoin::TWIAGLECOIN 0x2152eb58395b4d7d5eba797f47942c4bfad2868cb3d45bc9219415ec6f5b1cfc::twiaglefaucet::TWIAGLEFAUCET ![5_1.png](5_1.png) diff --git a/mover/upupnoah/notes/task1.md b/mover/upupnoah/notes/task1.md index fe3485827..dfee2a04c 100644 --- a/mover/upupnoah/notes/task1.md +++ b/mover/upupnoah/notes/task1.md @@ -102,7 +102,7 @@ - 需要先去 faucet(水龙头领水), 领取测试代币 - 在 hello_world_package 目录下执行下方的命令发布package 到 Sui 链上 - - `sui client publish --gas-budget 1000000000` + - `sui client publish 0` - 发布成功之后会返回一些信息, 可以复制任意一个 ID, 将他复制到 [Sui 区块链浏览器](https://suiexplorer.com/) 中, 即可查看我们部署的 Hello World package! - **需要记录返回结果中的 Object Changes 下的 Published Objects 中的 Package ID**, 后面需要通过这个 ID 来调用我们部署到区块链上的 Hello World 合约 (通过 ID 定位到 Package) diff --git a/mover/veristu/code/readme.md b/mover/veristu/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/veristu/code/task1/Move.lock b/mover/veristu/code/task1/Move.lock new file mode 100644 index 000000000..64079b74b --- /dev/null +++ b/mover/veristu/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2E267C18D553336099CDD31F7063857679825E46CD06EC67CC7F7FB0C20317C1" +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 = "0x076dd3358124f1d6dc359726b97832b2fd3abbde11b3c8380a3d0bd86f4e03f7" +latest-published-id = "0x076dd3358124f1d6dc359726b97832b2fd3abbde11b3c8380a3d0bd86f4e03f7" +published-version = "1" diff --git a/mover/veristu/code/task1/Move.toml b/mover/veristu/code/task1/Move.toml new file mode 100644 index 000000000..e75e497eb --- /dev/null +++ b/mover/veristu/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1" +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] +task1 = "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/veristu/code/task1/sources/task1.move b/mover/veristu/code/task1/sources/task1.move new file mode 100644 index 000000000..f10d5c493 --- /dev/null +++ b/mover/veristu/code/task1/sources/task1.move @@ -0,0 +1,20 @@ +module task1::hello_world { + + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct HelloMove has key, store { + id: UID, + text: string::String + } + + public fun mint(ctx: &mut TxContext) { + let object = HelloMove { + id: object::new(ctx), + text: string::utf8(b"Hello veristu") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/veristu/code/task2/Move.lock b/mover/veristu/code/task2/Move.lock new file mode 100644 index 000000000..7cd88e09c --- /dev/null +++ b/mover/veristu/code/task2/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E7A65BF39B740E195045E87B46B06936199C063AFE29D8948B9C6B9B853033A8" +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.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xd2450acc700e0ce4638f66e80598e440288ad9f09d35dc8dd1f592922760ebbd" +latest-published-id = "0xd2450acc700e0ce4638f66e80598e440288ad9f09d35dc8dd1f592922760ebbd" +published-version = "1" diff --git a/mover/veristu/code/task2/Move.toml b/mover/veristu/code/task2/Move.toml new file mode 100644 index 000000000..6a6098d99 --- /dev/null +++ b/mover/veristu/code/task2/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task2" +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] +task2 = "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/veristu/code/task2/sources/coin.move b/mover/veristu/code/task2/sources/coin.move new file mode 100644 index 000000000..6e0774f4f --- /dev/null +++ b/mover/veristu/code/task2/sources/coin.move @@ -0,0 +1,34 @@ +module task2::veristu_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct VERISTU_COIN has drop {} + + fun init(witness: VERISTU_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"VERISTU_COIN", + b"VERISTU_COIN", + b"coin create by veristu", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/169317650")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/veristu/code/task2/sources/faucet_coin.move b/mover/veristu/code/task2/sources/faucet_coin.move new file mode 100644 index 000000000..1f1e9c03f --- /dev/null +++ b/mover/veristu/code/task2/sources/faucet_coin.move @@ -0,0 +1,35 @@ +module task2::veristu_faucet_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct VERISTU_FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: VERISTU_FAUCET_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"VERISTU_FAUCET", + b"VERISTU_FAUCET", + b"faucet coin defined by veristu, everyone can access and mutate", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/169317650")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury_cap) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/veristu/code/task3/Move.lock b/mover/veristu/code/task3/Move.lock new file mode 100644 index 000000000..61037aba2 --- /dev/null +++ b/mover/veristu/code/task3/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "DEDE53BD567ECEDC2009BE853A86F47F6BDC3F1F03A6B00FAED274F07E74A18B" +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.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x4412e428d5a4606db60b8188fef980419efda1f4a51a24d819f1309c19b0a493" +latest-published-id = "0x4412e428d5a4606db60b8188fef980419efda1f4a51a24d819f1309c19b0a493" +published-version = "1" diff --git a/mover/veristu/code/task3/Move.toml b/mover/veristu/code/task3/Move.toml new file mode 100644 index 000000000..480be1592 --- /dev/null +++ b/mover/veristu/code/task3/Move.toml @@ -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" + diff --git a/mover/veristu/code/task3/sources/task3.move b/mover/veristu/code/task3/sources/task3.move new file mode 100644 index 000000000..299932447 --- /dev/null +++ b/mover/veristu/code/task3/sources/task3.move @@ -0,0 +1,47 @@ +module task3::veristu_nft { + use std::ascii::String; + use std::string::utf8; + use sui::display; + use sui::object; + use sui::object::{UID}; + use sui::package; + use sui::transfer; + use sui::transfer::public_transfer; + use sui::tx_context; + use sui::tx_context::{TxContext}; + + public struct VERISTU_NFT has drop {} + + public struct NFT has key,store { + id: UID, + name: String, + } + + fun init(otw: VERISTU_NFT, ctx: &mut sui::tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://avatars.githubusercontent.com/u/169317650"), + ]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values,ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + public entry fun mint_to(name: String, recipient: address,ctx: &mut TxContext) { + let nft = NFT{ + id: object::new(ctx), + name, + }; + public_transfer(nft, recipient) + } +} \ No newline at end of file diff --git a/mover/veristu/code/task4/Move.lock b/mover/veristu/code/task4/Move.lock new file mode 100644 index 000000000..8a0b51326 --- /dev/null +++ b/mover/veristu/code/task4/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "ED18027FE1E04C9C17AFCADBD07CCA64749BB3234A62A2FDA2C1172E7092CD17" +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.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xbf85ac59b42b379a71955cfadf806f2e3ad67a9ef8db527d2aa3a456c7634ca3" +latest-published-id = "0xbf85ac59b42b379a71955cfadf806f2e3ad67a9ef8db527d2aa3a456c7634ca3" +published-version = "1" diff --git a/mover/veristu/code/task4/Move.toml b/mover/veristu/code/task4/Move.toml new file mode 100644 index 000000000..86e124a47 --- /dev/null +++ b/mover/veristu/code/task4/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task4" +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] +task4 = "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/veristu/code/task4/sources/task4.move b/mover/veristu/code/task4/sources/task4.move new file mode 100644 index 000000000..8c1c78720 --- /dev/null +++ b/mover/veristu/code/task4/sources/task4.move @@ -0,0 +1,170 @@ +module task4::veristu_game { + use std::string::{Self, String}; + use sui::event; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin}; + use sui::tx_context::sender; + use std::hash; + use sui::bcs; + + const EPoolNotEnough: u64 = 1; + const EInputNotEnough: u64 = 2; + const ERR_HIGH_ARG_GREATER_THAN_LOW_ARG: u64 = 101; + + public struct GameResult has copy, drop { + result: String, + is_winner: bool, + } + + public struct Game has key { + id: UID, + pool: Balance, + ticket: u64, + reward: u64, + } + + public struct SpinResult has copy, drop, store { + spin1: u8, + spin2: u8, + spin3: u8, + } + + public fun game_pool(game: &Game): u64 { + balance::value(&game.pool) + } + + public fun game_ticket(game: &Game): u64 { + game.ticket + } + + public fun game_reward(game: &Game): u64 { + game.reward + } + + public struct AdminCap has key { + id: UID, + } + + fun init(_ctx: &mut TxContext) { + } + + entry fun creat_game(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + pool: balance::zero(), + ticket: 1000, + reward: 2000, + }; + transfer::share_object(game); + + let admin_cap = AdminCap { id: object::new(ctx) }; + transfer::transfer(admin_cap, sender(ctx)); + } + + fun get_spin_result(ctx: &mut TxContext) : SpinResult { + let spin1 = (rand_u64_range(0, 5, ctx) as u8); + let spin2 = (rand_u64_range(0, 5, ctx) as u8); + let spin3 = (rand_u64_range(0, 5, ctx) as u8); + SpinResult { spin1, spin2, spin3 } + } + + public entry fun play(game: &mut Game, input: Coin, ctx: &mut TxContext) { + assert!(balance::value(&game.pool) >= game.reward - game.ticket, EPoolNotEnough); + + let player_spins = get_spin_result(ctx); + let winning_combination = SpinResult { spin1: 2, spin2: 2, spin3: 2 }; + + let input_value = coin::value(&input); + assert!(input_value >= game.ticket, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > game.ticket) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, game.ticket) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + }; + + let (result, is_winner) = if (player_spins.spin1 == winning_combination.spin1 && player_spins.spin2 == winning_combination.spin2 && player_spins.spin3 == winning_combination.spin3) { + ( string::utf8(b"Congratulations, you hit the jackpot! Collect your coins😄"), true) + } else { + ( string::utf8(b"Try again, better luck next time!💔"), false) + }; + + if (is_winner) { + let reward_balance = balance::split(&mut game.pool, game.reward); + let reward = coin::from_balance(reward_balance, ctx); + transfer::public_transfer(reward, sender(ctx)); + }; + + event::emit(GameResult { + result, + is_winner, + }); + } + + public entry fun deposit(game: &mut Game, input: Coin, amount: u64, ctx: &mut TxContext) { + let input_value = coin::value(&input); + assert!(input_value >= amount, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > amount) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, amount) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + } + } + + public entry fun withdraw(_: &AdminCap, game: &mut Game, amount: u64, ctx: &mut TxContext) { + let output_balance = balance::split(&mut game.pool, amount); + let output = coin::from_balance(output_balance, ctx); + transfer::public_transfer(output, sender(ctx)); + } + + fun seed(ctx: &mut TxContext): vector { + let ctx_bytes = bcs::to_bytes(ctx); + let uid = object::new(ctx); + let uid_bytes: vector = object::uid_to_bytes(&uid); + object::delete(uid); + + let mut info: vector = vector::empty(); + vector::append(&mut info, ctx_bytes); + vector::append(&mut info, uid_bytes); + + let hash: vector = hash::sha3_256(info); + hash + } + + fun bytes_to_u64(bytes: vector): u64 { + let mut value = 0u64; + let mut i = 0u64; + while (i < 8) { + value = value | ((*vector::borrow(&bytes, i) as u64) << ((8 * (7 - i)) as u8)); + i = i + 1; + }; + return value + } + + fun rand_u64_with_seed(_seed: vector): u64 { + bytes_to_u64(_seed) + } + + fun rand_u64_range_with_seed(_seed: vector, low: u64, high: u64): u64 { + assert!(high > low, ERR_HIGH_ARG_GREATER_THAN_LOW_ARG); + let value = rand_u64_with_seed(_seed); + (value % (high - low)) + low + } + + public fun rand_u64_range(low: u64, high: u64, ctx: &mut TxContext): u64 { + rand_u64_range_with_seed(seed(ctx), low, high) + } +} \ No newline at end of file diff --git a/mover/veristu/code/task5/Move.toml b/mover/veristu/code/task5/Move.toml new file mode 100644 index 000000000..fef2bd16c --- /dev/null +++ b/mover/veristu/code/task5/Move.toml @@ -0,0 +1,37 @@ +[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 (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/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] +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" + diff --git a/mover/veristu/code/task5/sources/task5.move b/mover/veristu/code/task5/sources/task5.move new file mode 100644 index 000000000..4d8f555f0 --- /dev/null +++ b/mover/veristu/code/task5/sources/task5.move @@ -0,0 +1,261 @@ +module task5::veristu_swap { + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply, Balance}; + use sui::math; + + const EZeroAmount: u64 = 0; + + const EReservesEmpty: u64 = 2; + + const EPoolFull: u64 = 4; + + const FEE_SCALING: u128 = 10000; + + const FEE_PERCENT: u128 = 30; + + const MAX_POOL_VALUE: u64 = { + 18446744073709551615 / 10000 + }; + + public struct LSP has drop {} + + public struct Pool has key { + id: UID, + token_a: Balance, + token_b: Balance, + lsp_supply: Supply>, + /// Fee Percent is denominated in basis points. + fee_percent: u64 + } + + fun init(_: &mut TxContext) { + } + + entry fun create_pool ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + create_pool_inner(token_a, token_b, ctx), + tx_context::sender(ctx) + ); + } + + fun create_pool_inner ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + let fee_percent = (FEE_PERCENT as u64); + + let token_a_amt = coin::value(&token_a); + let token_b_amt = coin::value(&token_b); + + assert!(token_a_amt > 0 && token_b_amt > 0, EZeroAmount); + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let share = math::sqrt(token_a_amt) * math::sqrt(token_b_amt); + let mut lsp_supply = balance::create_supply(LSP {}); + let lsp = balance::increase_supply(&mut lsp_supply, share); + + transfer::share_object(Pool { + id: object::new(ctx), + token_a: coin::into_balance(token_a), + token_b: coin::into_balance(token_b), + lsp_supply, + fee_percent, + }); + + coin::from_balance(lsp, ctx) + } + + entry fun add_liquidity ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + add_liquidity_inner(pool, token_a, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun add_liquidity_inner ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + assert!(coin::value(&token_a) > 0 && coin::value(&token_b) > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, lsp_supply) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_balance = coin::into_balance(token_a); + let token_b_balance = coin::into_balance(token_b); + + let token_a_added = balance::value(&token_a_balance); + let token_b_added = balance::value(&token_b_balance); + + let share_minted = math::min( + (token_a_added * lsp_supply) / token_a_amt, + (token_b_added * lsp_supply) / token_b_amt + ); + + let token_a_amt = balance::join(&mut pool.token_a, token_a_balance); + let token_b_amt = balance::join(&mut pool.token_b, token_b_balance); + + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let balance = balance::increase_supply(&mut pool.lsp_supply, share_minted); + + coin::from_balance(balance, ctx) + } + + entry fun remove_liquidity ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ) { + let (token_a, token_b) = remove_liquidity_inner(pool, lsp, ctx); + let sender = tx_context::sender(ctx); + + transfer::public_transfer(token_a, sender); + transfer::public_transfer(token_b, sender); + } + + fun remove_liquidity_inner ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ): (Coin, Coin) { + let lsp_amount = coin::value(&lsp); + assert!(lsp_amount > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, total_supply) = get_amounts(pool); + + let token_a = (token_a_amt * lsp_amount) / total_supply; + let token_b = (token_b_amt * lsp_amount) / total_supply; + + balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); + + ( + coin::take(&mut pool.token_a, token_a, ctx), + coin::take(&mut pool.token_b, token_b, ctx), + ) + } + + entry fun swap_a_to_b ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_a_to_b_inner(pool, token_a, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_a_to_b_inner ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ): Coin { + let token_a_amt = coin::value(&token_a); + assert!(token_a_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_b_amt = sell_token_a(pool, token_a_amt); + + balance::join(&mut pool.token_a, coin::into_balance(token_a)); + + coin::take(&mut pool.token_b, token_b_amt, ctx) + } + + entry fun swap_b_to_a ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_b_to_a_inner(pool, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_b_to_a_inner ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ): Coin { + let token_b_amt = coin::value(&token_b); + assert!(token_b_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_amt = sell_token_b(pool, token_b_amt); + + balance::join(&mut pool.token_b, coin::into_balance(token_b)); + + coin::take(&mut pool.token_a, token_a_amt, ctx) + } + + public fun sell_token_a(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_a_amt, + token_b_amt, + pool.fee_percent + ) + } + + public fun sell_token_b(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_b_amt, + token_a_amt, + pool.fee_percent + ) + } + + public fun get_amounts(pool: &Pool): (u64, u64, u64) { + ( + balance::value(&pool.token_a), + balance::value(&pool.token_b), + balance::supply_value(&pool.lsp_supply), + ) + } + + public fun calc_output_amount( + input_amount: u64, + input_reserve: u64, + output_reserve: u64, + fee_percent: u64 + ): u64 { + let ( + input_amount, + input_reserve, + output_reserve, + fee_percent + ) = ( + (input_amount as u128), + (input_reserve as u128), + (output_reserve as u128), + (fee_percent as u128), + ); + + let input_with_fee = input_amount * FEE_SCALING / (FEE_SCALING - fee_percent); + + let total = input_reserve * output_reserve; + let output_amount = output_reserve - total / (input_reserve + input_with_fee); + + (output_amount as u64) + } +} diff --git a/mover/veristu/code/task6/index.html b/mover/veristu/code/task6/index.html new file mode 100644 index 000000000..16c2511ae --- /dev/null +++ b/mover/veristu/code/task6/index.html @@ -0,0 +1,13 @@ + + + + + + + Suiet Kit + Vite + + +
+ + + diff --git a/mover/veristu/code/task6/package.json b/mover/veristu/code/task6/package.json new file mode 100644 index 000000000..818a99d89 --- /dev/null +++ b/mover/veristu/code/task6/package.json @@ -0,0 +1,26 @@ +{ + "name": "with-vite", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --port 3000", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@suiet/wallet-kit": "0.2.24", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tweetnacl": "^1.0.3", + "navi-sdk": "^1.1.21" + }, + "devDependencies": { + "@types/react": "^18.0.22", + "@types/react-dom": "^18.0.7", + "@vitejs/plugin-react": "^2.2.0", + "typescript": "^5.4.3", + "vite": "^3.2.7" + } +} diff --git a/mover/veristu/code/task6/public/vite.svg b/mover/veristu/code/task6/public/vite.svg new file mode 100644 index 000000000..e7b8dfb1b --- /dev/null +++ b/mover/veristu/code/task6/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mover/veristu/code/task6/src/App.css b/mover/veristu/code/task6/src/App.css new file mode 100644 index 000000000..ac87691e7 --- /dev/null +++ b/mover/veristu/code/task6/src/App.css @@ -0,0 +1,43 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +.card { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 2em; +} + +.read-the-docs { + color: #888; +} + +.btn-group button+button{ + margin-left: 12px; +} \ No newline at end of file diff --git a/mover/veristu/code/task6/src/App.tsx b/mover/veristu/code/task6/src/App.tsx new file mode 100644 index 000000000..36557237e --- /dev/null +++ b/mover/veristu/code/task6/src/App.tsx @@ -0,0 +1,166 @@ +import suietLogo from "./assets/suiet-logo.svg"; +import "./App.css"; +import { + ConnectButton, + useAccountBalance, + useWallet, + SuiChainId, + ErrorCode, + formatSUI, +} from "@suiet/wallet-kit"; +import "@suiet/wallet-kit/style.css"; +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import { useMemo } from "react"; +import { NAVISDKClient } from 'navi-sdk' +import {depositCoin, borrowCoin, SignAndSubmitTXB } from 'navi-sdk/dist/libs/PTB' +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from 'navi-sdk/dist/address' +import {Sui, USDC} from 'navi-sdk/dist/address'; + +const sampleNft = new Map([ + [ + "sui:devnet", + "0xe146dbd6d33d7227700328a9421c58ed34546f998acdc42a1d05b4818b49faa2::nft::mint", + ], + [ + "sui:testnet", + "0x5ea6aafe995ce6506f07335a40942024106a57f6311cb341239abf2c3ac7b82f::nft::mint", + ], + [ + "sui:mainnet", + "0x5b45da03d42b064f5e051741b6fed3b29eb817c7923b83b92f37a1d2abf4fbab::nft::mint", + ], +]); + +function App() { + const wallet = useWallet(); + const { balance } = useAccountBalance(); + const nftContractAddr = useMemo(() => { + if (!wallet.chain) return ""; + return sampleNft.get(wallet.chain.id) ?? ""; + }, [wallet]); + + function uint8arrayToHex(value: Uint8Array | undefined) { + if (!value) return ""; + // @ts-ignore + return value.toString("hex"); + } + + async function handleExecuteMoveCall(target: string | undefined) { + if (!target) return; + } + + async function handleSignMsg() { + if (!wallet.account) return; + const account = wallet.account; + const sender = account.address; + try { + let txb = new TransactionBlock(); + txb.setSender(sender); + + let getCoinInfo = balance; + if (!getCoinInfo) { + throw new Error("Insufficient balance"); + } + + let deposit_amount = 1e9; + let sui_symbol = Sui.symbol; + const pool_sui: PoolConfig = pool[sui_symbol as keyof Pool]; + const [to_deposit] = txb.splitCoins(txb.gas, [deposit_amount]); + await depositCoin(txb, pool_sui, to_deposit, deposit_amount); + + let borrow_amount = 0.071711 * 1e6; + let usdc_symbol = USDC.symbol; + const pool_usdc: PoolConfig = pool[usdc_symbol as keyof Pool]; + const [borrow_coin] = await borrowCoin(txb, pool_usdc, borrow_amount); + + await depositCoin(txb, pool_usdc, borrow_coin, borrow_amount); + + const resData = await wallet.signAndExecuteTransactionBlock({ + transactionBlock: txb, + }); + console.log("transaction digest: " + resData); + } catch (e) { + console.error("failed", e); + alert("failed (see response in the console)"); + } + } + + const chainName = (chainId: string | undefined) => { + switch (chainId) { + case SuiChainId.MAIN_NET: + return "Mainnet"; + case SuiChainId.TEST_NET: + return "Testnet"; + case SuiChainId.DEV_NET: + return "Devnet"; + default: + return "Unknown"; + } + }; + + return ( +
+ +

Vite + Suiet Kit

+
+ { + if (error.code === ErrorCode.WALLET__CONNECT_ERROR__USER_REJECTED) { + console.warn( + "user rejected the connection to " + error.details?.wallet + ); + } else { + console.warn("unknown connect error: ", error); + } + }} + /> + + {!wallet.connected ? ( +

Connect DApp with Suiet wallet from now!

+ ) : ( +
+
+

current wallet: {wallet.adapter?.name}

+

+ wallet status:{" "} + {wallet.connecting + ? "connecting" + : wallet.connected + ? "connected" + : "disconnected"} +

+

wallet address: {wallet.account?.address}

+

current network: {wallet.chain?.name}

+

+ wallet balance:{" "} + {formatSUI(balance ?? 0, { + withAbbr: false, + })}{" "} + SUI +

+

+ wallet publicKey: {uint8arrayToHex(wallet.account?.publicKey)} +

+
+
+ +
+
+ )} +
+

+ Click on the Vite and Suiet logos to learn more +

+
+ ); +} + +export default App; diff --git a/mover/veristu/code/task6/src/assets/react.svg b/mover/veristu/code/task6/src/assets/react.svg new file mode 100644 index 000000000..6c87de9bb --- /dev/null +++ b/mover/veristu/code/task6/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mover/veristu/code/task6/src/assets/suiet-logo.svg b/mover/veristu/code/task6/src/assets/suiet-logo.svg new file mode 100644 index 000000000..8e01dfcae --- /dev/null +++ b/mover/veristu/code/task6/src/assets/suiet-logo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/mover/veristu/code/task6/src/index.css b/mover/veristu/code/task6/src/index.css new file mode 100644 index 000000000..41bc8b138 --- /dev/null +++ b/mover/veristu/code/task6/src/index.css @@ -0,0 +1,64 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} + + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/mover/veristu/code/task6/src/main.tsx b/mover/veristu/code/task6/src/main.tsx new file mode 100644 index 000000000..9859ab514 --- /dev/null +++ b/mover/veristu/code/task6/src/main.tsx @@ -0,0 +1,19 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +import { + WalletProvider, +} from '@suiet/wallet-kit'; + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + {/* if you want to custiomize you wallet list, please check this doc + https://kit.suiet.app/docs/components/WalletProvider#customize-your-wallet-list-on-modal + */} + + + +) diff --git a/mover/veristu/code/task6/src/vite-env.d.ts b/mover/veristu/code/task6/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/mover/veristu/code/task6/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mover/veristu/code/task6/tsconfig.json b/mover/veristu/code/task6/tsconfig.json new file mode 100644 index 000000000..3d0a51a86 --- /dev/null +++ b/mover/veristu/code/task6/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/veristu/code/task6/tsconfig.node.json b/mover/veristu/code/task6/tsconfig.node.json new file mode 100644 index 000000000..9d31e2aed --- /dev/null +++ b/mover/veristu/code/task6/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/veristu/code/task6/vite.config.ts b/mover/veristu/code/task6/vite.config.ts new file mode 100644 index 000000000..55ef63119 --- /dev/null +++ b/mover/veristu/code/task6/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + build: { + target: 'es2020' + }, + optimizeDeps: { + esbuildOptions: { + target: 'es2020', + define: { + global: 'globalThis', + }, + }, + }, +}) diff --git a/mover/veristu/notes/NFT.png b/mover/veristu/notes/NFT.png new file mode 100644 index 000000000..031330b2b Binary files /dev/null and b/mover/veristu/notes/NFT.png differ diff --git a/mover/veristu/notes/package.png b/mover/veristu/notes/package.png new file mode 100644 index 000000000..93c98e0ea Binary files /dev/null and b/mover/veristu/notes/package.png differ diff --git a/mover/veristu/notes/readme.md b/mover/veristu/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/veristu/notes/sc.png b/mover/veristu/notes/sc.png new file mode 100644 index 000000000..3bf87de8c Binary files /dev/null and b/mover/veristu/notes/sc.png differ diff --git a/mover/veristu/notes/wallet-plugin.png b/mover/veristu/notes/wallet-plugin.png new file mode 100644 index 000000000..bfeb82fb0 Binary files /dev/null and b/mover/veristu/notes/wallet-plugin.png differ diff --git a/mover/veristu/readme.md b/mover/veristu/readme.md new file mode 100644 index 000000000..420824c8a --- /dev/null +++ b/mover/veristu/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x43c1ad685dfd411ba46ac87ad735fb3da48ac019e7b193d54cd8173412f243b5` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `veristu` + +## 个人简介 +- 工作经验: 0年 +- 技术栈: `C` +> 重要提示 请认真写自己的简介 +- C语言经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `无` + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.28.1 +- [x] Sui钱包截图: ![Sui钱包截图](./notes/wallet-plugin.png) +- [x] package id: [0x076dd3358124f1d6dc359726b97832b2fd3abbde11b3c8380a3d0bd86f4e03f7](https://testnet.suivision.xyz/package/0x076dd3358124f1d6dc359726b97832b2fd3abbde11b3c8380a3d0bd86f4e03f7) +- [x] package id 在 scan上的查看截图:![Scan截图](./notes/package.png) + +## 02 move coin +- [x] My Coin package id : 0xd2450acc700e0ce4638f66e80598e440288ad9f09d35dc8dd1f592922760ebbd +- [x] Faucet package id : 0xd2450acc700e0ce4638f66e80598e440288ad9f09d35dc8dd1f592922760ebbd +- [x] 转账 `My Coin` hash: Hv1GRKeMbjRatDnri7S5rBhwwRn1Mjda6d3sS66P8foo +- [x] `Faucet Coin` address1 mint hash: B6U3wQMMYmm4smuTsgoZ3zonsLtrTtpZkM2qtEZnnjvC +- [x] `Faucet Coin` address2 mint hash: AJAaoboVLtGjrKDpgS6KjMRHavzSzMPgQCRL28Xux3Ugs + +## 03 move NFT +- [x] nft package id : 0x4412e428d5a4606db60b8188fef980419efda1f4a51a24d819f1309c19b0a493 +- [x] nft object id : 0x80b650d513394bdfc8041db0fa43206b275217886fcc87ba59722c4126904795 +- [x] 转账 nft hash : 5HSi4fUWqzGyEpZcGhk6gvzJcj5JKUupNgi6htm8gtLs +- [x] scan上的NFT截图 : ![Scan截图](./notes/NFT.png) + +## 04 Move Game +- [x] game package id : 0xbf85ac59b42b379a71955cfadf806f2e3ad67a9ef8db527d2aa3a456c7634ca3 +- [x] deposit Coin hash: 6enSJpQf39zshsVPj9xxG3ktomENmJYBrJdU5ovixKh6 +- [x] withdraw `Coin` hash: 4e6vnGBmRJK5TVr5ieo2NFJyzcwHBmQrs7dfJ6TEbGUc +- [x] play game hash: A2EfDW2smAAxJdhxSZSard9kwszq63huJ6AfKaM5DnY8 + +## 05 Move Swap +- [x] swap package id : 0x1bea4759df76e177267180fdb358fa469a099cf25b6124d0f55919d23d6484f9 +- [x] call swap CoinA-> CoinB hash : Bg9zSoBEFyebZDaY8TSnsEvLuLt8zuE38dwtFJWJXZPE +- [x] call swap CoinB-> CoinA hash : B3c2d4RJaWjzDyrkK1bvivTR9ypd4pXH4LuSnPjjDkZo + +## 06 Dapp-kit SDK PTB +- [x] save hash : 7Yak9doknHKohvhneqFt3t1THDB5NVvmaw8kaSsduTMN + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/你的图片地址) +- [x] flag hash : FG3K1P1QNrsKQn2Mp13oryTShDCPYQv7TPj2usHGjsPw + +## 08 Move CTF Lets Move +- [x] proof : 9a0d895e291c55d701ab +- [x] flag hash : G7iNv3UpeqHRT1pRqhEBrph5j32mKggu8KydHQHZ2J6L diff --git a/mover/w626w/code/task1/hello.move b/mover/w626w/code/task1/hello.move index b71db0b2c..354681158 100644 --- a/mover/w626w/code/task1/hello.move +++ b/mover/w626w/code/task1/hello.move @@ -1,20 +1,20 @@ -module hello_world::hello { - use sui::object::{Self, UID}; - use sui::tx_context::{Self, TxContext}; - use std::string::{Self, String}; - use sui::transfer; - - public struct Hello has key { - id: UID, - str: String, - } - - public fun say_hello(ctx: &mut TxContext) { - let word = Hello { - id: object::new(ctx), - str: string::utf8(b"w626w"), - }; - transfer::transfer(word, tx_context::sender(ctx)); - } -} - +module hello_world::hello { + use sui::object::{Self, UID}; + use sui::tx_context::{Self, TxContext}; + use std::string::{Self, String}; + use sui::transfer; + + public struct Hello has key { + id: UID, + str: String, + } + + public fun say_hello(ctx: &mut TxContext) { + let word = Hello { + id: object::new(ctx), + str: string::utf8(b"w626w"), + }; + transfer::transfer(word, tx_context::sender(ctx)); + } +} + diff --git a/mover/w626w/code/task2/Move.lock b/mover/w626w/code/task2/Move.lock index b37abfb41..db74636fe 100644 --- a/mover/w626w/code/task2/Move.lock +++ b/mover/w626w/code/task2/Move.lock @@ -1,41 +1,41 @@ -# @generated by Move, please check-in and do not edit manually. - -[move] -version = 0 -manifest_digest = "A265EC951CA65050B192755E3C497E8707B04543477385A1B68647ED214C7961" -deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" - -dependencies = [ - { name = "Sui" }, -] - -[[move.package]] -name = "MoveStdlib" -source = { git = "https://gitee.com/WGB5445/sui.git", rev = "framework/testnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } - -[[move.package]] -name = "Sui" -source = { git = "https://gitee.com/WGB5445/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } - -dependencies = [ - { name = "MoveStdlib" }, -] - -[move.toolchain-version] -compiler-version = "1.23.0" -edition = "legacy" -flavor = "sui" - -[env] - -[env.devnet] -chain-id = "69a65b6d" -original-published-id = "0x238ffb6b7dae866ae055ef1708c972648f8ff5fb979f77c807bbf8b461feeedf" -latest-published-id = "0x238ffb6b7dae866ae055ef1708c972648f8ff5fb979f77c807bbf8b461feeedf" -published-version = "1" - -[env.mainnet] -chain-id = "35834a8a" -original-published-id = "0x47cf688dff2f021c693de8bba024d89d1be4552703d951f273884a11a9964cc4" -latest-published-id = "0x47cf688dff2f021c693de8bba024d89d1be4552703d951f273884a11a9964cc4" -published-version = "1" +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 0 +manifest_digest = "A265EC951CA65050B192755E3C497E8707B04543477385A1B68647ED214C7961" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" + +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/WGB5445/sui.git", rev = "framework/testnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/WGB5445/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.23.0" +edition = "legacy" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "69a65b6d" +original-published-id = "0x238ffb6b7dae866ae055ef1708c972648f8ff5fb979f77c807bbf8b461feeedf" +latest-published-id = "0x238ffb6b7dae866ae055ef1708c972648f8ff5fb979f77c807bbf8b461feeedf" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x47cf688dff2f021c693de8bba024d89d1be4552703d951f273884a11a9964cc4" +latest-published-id = "0x47cf688dff2f021c693de8bba024d89d1be4552703d951f273884a11a9964cc4" +published-version = "1" diff --git a/mover/w626w/code/task2/Move.toml b/mover/w626w/code/task2/Move.toml index 7cb551b7c..33cc24c46 100644 --- a/mover/w626w/code/task2/Move.toml +++ b/mover/w626w/code/task2/Move.toml @@ -1,38 +1,38 @@ -[package] -name = "mycoin" - -# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha -# 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/WGB5445/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] -w626w = "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" - +[package] +name = "mycoin" + +# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha +# 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/WGB5445/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] +w626w = "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/w626w/code/task2/sources/FaucetCoin.move b/mover/w626w/code/task2/sources/FaucetCoin.move index 2a7b97bee..fb7584405 100644 --- a/mover/w626w/code/task2/sources/FaucetCoin.move +++ b/mover/w626w/code/task2/sources/FaucetCoin.move @@ -1,37 +1,37 @@ -module w626w::faucet_coin { - use std::option; - use sui::coin::{Self,TreasuryCap}; - use sui::event::emit; - use sui::transfer; - use sui::tx_context::{Self, TxContext}; - - struct FAUCET_COIN has drop {} - - struct MintEvent has copy, drop{ - amount: u64, - recipient: address - } - - fun init(witness: FAUCET_COIN, ctx: &mut TxContext) { - let (treasury, metadata) = coin::create_currency(witness, 6, b"W626WFAUCET_COIN", b"", b"", option::none(), ctx); - transfer::public_freeze_object(metadata); - transfer::public_transfer(treasury, tx_context::sender(ctx)) - } - - public entry fun mint( - treasury_cap: &mut TreasuryCap, - amount: u64, - recipient: address, - ctx: &mut TxContext, - ) { - let coin = coin::mint(treasury_cap, amount, ctx); - transfer::public_transfer(coin, recipient); - - emit(MintEvent{ - amount, - recipient - }) - } -} -//0x3751adbdd801021467fc521204a49f1157d984658a6a7627db90add2e6e71b98 +module w626w::faucet_coin { + use std::option; + use sui::coin::{Self,TreasuryCap}; + use sui::event::emit; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + struct FAUCET_COIN has drop {} + + struct MintEvent has copy, drop{ + amount: u64, + recipient: address + } + + fun init(witness: FAUCET_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, 6, b"W626WFAUCET_COIN", b"", b"", option::none(), ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)) + } + + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient); + + emit(MintEvent{ + amount, + recipient + }) + } +} +//0x3751adbdd801021467fc521204a49f1157d984658a6a7627db90add2e6e71b98 // sui client call --package 0x238ffb6b7dae866ae055ef1708c972648f8ff5fb979f77c807bbf8b461feeedf --module faucet_coin --function mint --args 0x3751adbdd801021467fc521204a49f1157d984658a6a7627db90add2e6e71b98 100 0xccc4a24b8e2a9381d71d10453e645034a1aa0edfdaa71c6d0b64ce0e9d6c850b --gas-budget 5000000000 \ No newline at end of file diff --git a/mover/w626w/code/task2/sources/MyCoin.move b/mover/w626w/code/task2/sources/MyCoin.move index 45c87ef63..e3c2b6878 100644 --- a/mover/w626w/code/task2/sources/MyCoin.move +++ b/mover/w626w/code/task2/sources/MyCoin.move @@ -1,23 +1,23 @@ -module w626w::mycoin { - use std::option; - use sui::coin::{Self,TreasuryCap}; - use sui::transfer; - use sui::tx_context::{Self,TxContext}; - - struct MYCOIN has drop {} - - fun init(waitness: MYCOIN, ctx: &mut sui::tx_context::TxContext) { - let (treasury_cap, meta) = coin::create_currency(waitness, 2, b"w626w", b"w626w", b"", option::none(), ctx); - - transfer::public_freeze_object(meta); - transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); - } - - - public entry fun mint( - treasury_cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext - ) { - coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); - } -} -// https://fullnode.mainnet.sui.io:443 +module w626w::mycoin { + use std::option; + use sui::coin::{Self,TreasuryCap}; + use sui::transfer; + use sui::tx_context::{Self,TxContext}; + + struct MYCOIN has drop {} + + fun init(waitness: MYCOIN, ctx: &mut sui::tx_context::TxContext) { + let (treasury_cap, meta) = coin::create_currency(waitness, 2, b"w626w", b"w626w", b"", option::none(), ctx); + + transfer::public_freeze_object(meta); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + } + + + public entry fun mint( + treasury_cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } +} +// https://fullnode.mainnet.sui.io:443 diff --git a/mover/w626w/code/task3/NFT.move b/mover/w626w/code/task3/NFT.move index 14ac3d586..4bd894e77 100644 --- a/mover/w626w/code/task3/NFT.move +++ b/mover/w626w/code/task3/NFT.move @@ -1,82 +1,82 @@ -module w626w::devnet_nft { - use sui::url::{Self, Url}; - use std::string; - use sui::object::{Self, ID, UID}; - use sui::event; - use sui::transfer; - use sui::tx_context::{Self, TxContext}; - - public struct DevNetNFT has key, store { - id: UID, - name: string::String, - description: string::String, - url: Url, - } - - - public struct NFTMinted has copy, drop { - object_id: ID, - creator: address, - name: string::String, - } - - public fun name(nft: &DevNetNFT): &string::String { - &nft.name - } - - public fun description(nft: &DevNetNFT): &string::String { - &nft.description - } - - public fun url(nft: &DevNetNFT): &Url { - &nft.url - } - - - public entry fun mint_to_sender( - name: vector, - description: vector, - url: vector, - ctx: &mut TxContext - ) { - let sender = tx_context::sender(ctx); - let nft = DevNetNFT { - id: object::new(ctx), - name: string::utf8(name), - description: string::utf8(description), - url: url::new_unsafe_from_bytes(url) - }; - - event::emit(NFTMinted { - object_id: object::id(&nft), - creator: sender, - name: nft.name, - }); - - transfer::public_transfer(nft, sender); - } - - public entry fun transfer( - nft: DevNetNFT, recipient: address, _: &mut TxContext - ) { - transfer::public_transfer(nft, recipient) - } - - public entry fun update_description( - nft: &mut DevNetNFT, - new_description: vector, - _: &mut TxContext - ) { - nft.description = string::utf8(new_description) - } - - public entry fun burn(nft: DevNetNFT, _: &mut TxContext) { - let DevNetNFT { id, name: _, description: _, url: _ } = nft; - object::delete(id) - } -} - -//0x581d4d7726bd1878cbd617e2bcf205923ede197d09a158809767c567ce128194 -//0x5f4c447290d7a2db15ee3f4ec70f38eb228da19394e7d60595265590a9513a73 -//sui client call --function transfer --module devnet_nft --package 0x581d4d7726bd1878cbd617e2bcf205923ede197d09a158809767c567ce128194 --args 0x5f4c447290d7a2db15ee3f4ec70f38eb228da19394e7d60595265590a9513a73 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 --gas-budget 100000000 -//sui client call --function mint_to_sender --module devnet_nft --package 0x581d4d7726bd1878cbd617e2bcf205923ede197d09a158809767c567ce128194 --args w626w nft https://avatars.githubusercontent.com/u/118292614?s=400&v=4 --gas-budget 100000000 +module w626w::devnet_nft { + use sui::url::{Self, Url}; + use std::string; + use sui::object::{Self, ID, UID}; + use sui::event; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct DevNetNFT has key, store { + id: UID, + name: string::String, + description: string::String, + url: Url, + } + + + public struct NFTMinted has copy, drop { + object_id: ID, + creator: address, + name: string::String, + } + + public fun name(nft: &DevNetNFT): &string::String { + &nft.name + } + + public fun description(nft: &DevNetNFT): &string::String { + &nft.description + } + + public fun url(nft: &DevNetNFT): &Url { + &nft.url + } + + + public entry fun mint_to_sender( + name: vector, + description: vector, + url: vector, + ctx: &mut TxContext + ) { + let sender = tx_context::sender(ctx); + let nft = DevNetNFT { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + url: url::new_unsafe_from_bytes(url) + }; + + event::emit(NFTMinted { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + public entry fun transfer( + nft: DevNetNFT, recipient: address, _: &mut TxContext + ) { + transfer::public_transfer(nft, recipient) + } + + public entry fun update_description( + nft: &mut DevNetNFT, + new_description: vector, + _: &mut TxContext + ) { + nft.description = string::utf8(new_description) + } + + public entry fun burn(nft: DevNetNFT, _: &mut TxContext) { + let DevNetNFT { id, name: _, description: _, url: _ } = nft; + object::delete(id) + } +} + +//0x581d4d7726bd1878cbd617e2bcf205923ede197d09a158809767c567ce128194 +//0x5f4c447290d7a2db15ee3f4ec70f38eb228da19394e7d60595265590a9513a73 +//sui client call --function transfer --module devnet_nft --package 0x581d4d7726bd1878cbd617e2bcf205923ede197d09a158809767c567ce128194 --args 0x5f4c447290d7a2db15ee3f4ec70f38eb228da19394e7d60595265590a9513a73 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 +//sui client call --function mint_to_sender --module devnet_nft --package 0x581d4d7726bd1878cbd617e2bcf205923ede197d09a158809767c567ce128194 --args w626w nft https://avatars.githubusercontent.com/u/118292614?s=400&v=4 diff --git a/mover/w626w/code/task4/game.move b/mover/w626w/code/task4/game.move index 73c81793d..e6a06e5c8 100644 --- a/mover/w626w/code/task4/game.move +++ b/mover/w626w/code/task4/game.move @@ -1,55 +1,55 @@ -module w626w::rock_paper_scissors { - use std::string::{Self, String}; - use sui::clock::{Self, Clock}; - use sui::event; - - const EInvalidNumber: u64 = 1; - - public struct GamingResultEvent has copy, drop { - is_win: bool, - your_choice: String, - computer_choice: String, - result: String, - } - - fun get_random_choice(clock: &Clock) : u8 { - ((clock::timestamp_ms(clock) % 3) as u8) - } - - fun map_choice_to_string(choice: u8) : String { - if (choice == 0) { - string::utf8(b"w626w rock") - } else if (choice == 1) { - string::utf8(b"w626w paper") - } else if (choice == 2) { - string::utf8(b"w626w scissors") - } else { - string::utf8(b"Invalid") - } - } - - public entry fun play(choice: u8, clock: &Clock) { - assert!(choice < 3, EInvalidNumber); - - let computer_choice = get_random_choice(clock); - let (result, is_win) = if ( - (choice == 0 && computer_choice == 1) - || (choice == 1 && computer_choice == 2) - || (choice == 2 && computer_choice == 0) - ) { - (string::utf8(b"w626w is Win"), true) - } else if (choice == computer_choice) { - (string::utf8(b"w626w is Draw"), false) - } else { - (string::utf8(b"w626w is Lose"), false) - }; - - event::emit(GamingResultEvent { - result, - is_win, - your_choice: map_choice_to_string(choice), - computer_choice: map_choice_to_string(computer_choice), - }); - } -} -//sui client call --function play --module rock_paper_scissors --package 0xf2309c548c0dd2ca81ccde692b61c54ad91329bf472729cec09955e8d1730963 --args 1 0x6 --gas-budget 100000000 +module w626w::rock_paper_scissors { + use std::string::{Self, String}; + use sui::clock::{Self, Clock}; + use sui::event; + + const EInvalidNumber: u64 = 1; + + public struct GamingResultEvent has copy, drop { + is_win: bool, + your_choice: String, + computer_choice: String, + result: String, + } + + fun get_random_choice(clock: &Clock) : u8 { + ((clock::timestamp_ms(clock) % 3) as u8) + } + + fun map_choice_to_string(choice: u8) : String { + if (choice == 0) { + string::utf8(b"w626w rock") + } else if (choice == 1) { + string::utf8(b"w626w paper") + } else if (choice == 2) { + string::utf8(b"w626w scissors") + } else { + string::utf8(b"Invalid") + } + } + + public entry fun play(choice: u8, clock: &Clock) { + assert!(choice < 3, EInvalidNumber); + + let computer_choice = get_random_choice(clock); + let (result, is_win) = if ( + (choice == 0 && computer_choice == 1) + || (choice == 1 && computer_choice == 2) + || (choice == 2 && computer_choice == 0) + ) { + (string::utf8(b"w626w is Win"), true) + } else if (choice == computer_choice) { + (string::utf8(b"w626w is Draw"), false) + } else { + (string::utf8(b"w626w is Lose"), false) + }; + + event::emit(GamingResultEvent { + result, + is_win, + your_choice: map_choice_to_string(choice), + computer_choice: map_choice_to_string(computer_choice), + }); + } +} +//sui client call --function play --module rock_paper_scissors --package 0xf2309c548c0dd2ca81ccde692b61c54ad91329bf472729cec09955e8d1730963 --args 1 0x6 diff --git a/mover/w626w/code/task5/coin_a.move b/mover/w626w/code/task5/coin_a.move index 4a2109087..4f803a09c 100644 --- a/mover/w626w/code/task5/coin_a.move +++ b/mover/w626w/code/task5/coin_a.move @@ -1,52 +1,52 @@ -module w626w::coin_a { - use std::option; - use sui::coin::{Self, Coin, TreasuryCap}; - use sui::transfer; - use sui::tx_context::{Self, TxContext}; - - public struct COIN_A has drop {} - - fun init(witness: COIN_A, ctx: &mut TxContext) { - let (treasury_cap, metadata) = coin::create_currency( - witness, - 3, - b"COIN_A", - b"CA", - b"learning for swap", - option::none(), - ctx - ); - - transfer::public_freeze_object(metadata); - transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); - } - - public fun mint( - treasury_cap: &mut TreasuryCap, - amount: u64, - recipient: address, - ctx: &mut TxContext - ) { - coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); - } - - public fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { - coin::burn(treasury_cap, coin); - } - - #[test_only] - public fun test_init(ctx: &mut TxContext) { - init(COIN_A {}, ctx); - } -} -//packageID 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 -//coin_a: 0xa7edc406153123af11055029fc6f141138b413df1d191885607bd154ab7178e4 -//coin_b: 0xa5f37c9ecf31f9593fa8397048edaee926b697a50dd889ad933b239d07d0436a -// sui client call --gas-budget 7500000 --package 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 --module coin_a --function mint --args 0xde7af37e8206d9d15e1a3cf6ea4f5d98ce5bc187dc2083f04e636be8b57d05f6 1000 0x472478f05c79a17b04f2a201e845cd6b7d82099bad3d23397ab254c5a5fa6486 -// sui client call --gas-budget 7500000 --package 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 --module coin_b --function mint --args 0x8dd342f8a1697e7584b2b94bd210d14c6e9e657747c5fa1776dead59ba1faf72 10000 0x472478f05c79a17b04f2a201e845cd6b7d82099bad3d23397ab254c5a5fa6486 -//coinA1:0xa7edc406153123af11055029fc6f141138b413df1d191885607bd154ab7178e4 type: 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317::coin_a::COIN_A -//coinB10:0xa5f37c9ecf31f9593fa8397048edaee926b697a50dd889ad933b239d07d0436a type: 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317::coin_b::COIN_B -// coinA1:0xe8a2d834c2126e84f1d33506b6649dbe371c562b38adc919a73bfeb77c170392 -//增加流动性:sui client call --gas-budget 7500000 --package 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 --module w626w --function create_pool --type-args 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317::coin_a::COIN_A 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317::coin_b::COIN_B --args 0x04d2105db01fd6d08e8f42439da32ddcdefff2d940ffb64dc3025d1e55e6e728 0x77919c8c6c232035c1586b7e023c950a2fcd534000b883d151822f10f1c482cc -// lp:0xb9b5890f4aa897398bd18057c349fa0bb41baefa4368709f82f7cf794358734e -// swap sui client call --gas-budget 7500000 --package 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 --module w626w --function swap_a_to_b --type-args 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317::coin_a::COIN_A 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317::coin_b::COIN_B --args 0xd5c9304899f35c3ccde345388e0ed0e53f3dd791faf753fbe1c4b12ad499c756 0x014b40ae0f81e7a247031cc98900ab4d7211c463c74b23bc481a136a3c1bb54d +module w626w::coin_a { + use std::option; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct COIN_A has drop {} + + fun init(witness: COIN_A, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 3, + b"COIN_A", + b"CA", + b"learning for swap", + option::none(), + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } + + #[test_only] + public fun test_init(ctx: &mut TxContext) { + init(COIN_A {}, ctx); + } +} +//packageID 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 +//coin_a: 0xa7edc406153123af11055029fc6f141138b413df1d191885607bd154ab7178e4 +//coin_b: 0xa5f37c9ecf31f9593fa8397048edaee926b697a50dd889ad933b239d07d0436a +// sui client call --gas-budget 7500000 --package 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 --module coin_a --function mint --args 0xde7af37e8206d9d15e1a3cf6ea4f5d98ce5bc187dc2083f04e636be8b57d05f6 1000 0x472478f05c79a17b04f2a201e845cd6b7d82099bad3d23397ab254c5a5fa6486 +// sui client call --gas-budget 7500000 --package 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 --module coin_b --function mint --args 0x8dd342f8a1697e7584b2b94bd210d14c6e9e657747c5fa1776dead59ba1faf72 10000 0x472478f05c79a17b04f2a201e845cd6b7d82099bad3d23397ab254c5a5fa6486 +//coinA1:0xa7edc406153123af11055029fc6f141138b413df1d191885607bd154ab7178e4 type: 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317::coin_a::COIN_A +//coinB10:0xa5f37c9ecf31f9593fa8397048edaee926b697a50dd889ad933b239d07d0436a type: 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317::coin_b::COIN_B +// coinA1:0xe8a2d834c2126e84f1d33506b6649dbe371c562b38adc919a73bfeb77c170392 +//增加流动性:sui client call --gas-budget 7500000 --package 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 --module w626w --function create_pool --type-args 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317::coin_a::COIN_A 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317::coin_b::COIN_B --args 0x04d2105db01fd6d08e8f42439da32ddcdefff2d940ffb64dc3025d1e55e6e728 0x77919c8c6c232035c1586b7e023c950a2fcd534000b883d151822f10f1c482cc +// lp:0xb9b5890f4aa897398bd18057c349fa0bb41baefa4368709f82f7cf794358734e +// swap sui client call --gas-budget 7500000 --package 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 --module w626w --function swap_a_to_b --type-args 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317::coin_a::COIN_A 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317::coin_b::COIN_B --args 0xd5c9304899f35c3ccde345388e0ed0e53f3dd791faf753fbe1c4b12ad499c756 0x014b40ae0f81e7a247031cc98900ab4d7211c463c74b23bc481a136a3c1bb54d diff --git a/mover/w626w/code/task5/coin_b.move b/mover/w626w/code/task5/coin_b.move index 8ce81bb8b..457468e9c 100644 --- a/mover/w626w/code/task5/coin_b.move +++ b/mover/w626w/code/task5/coin_b.move @@ -1,41 +1,41 @@ -module w626w::coin_b { - use std::option; - use sui::coin::{Self, Coin, TreasuryCap}; - use sui::transfer; - use sui::tx_context::{Self, TxContext}; - - public struct COIN_B has drop {} - - fun init(witness: COIN_B, ctx: &mut TxContext) { - let (treasury_cap, metadata) = coin::create_currency( - witness, - 3, - b"COIN_B", - b"CB", - b"learning for swap", - option::none(), - ctx - ); - - transfer::public_freeze_object(metadata); - transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); - } - - public fun mint( - treasury_cap: &mut TreasuryCap, - amount: u64, - recipient: address, - ctx: &mut TxContext - ) { - coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); - } - - public fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { - coin::burn(treasury_cap, coin); - } - - #[test_only] - public fun test_init(ctx: &mut TxContext) { - init(COIN_B {}, ctx); - } +module w626w::coin_b { + use std::option; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct COIN_B has drop {} + + fun init(witness: COIN_B, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 3, + b"COIN_B", + b"CB", + b"learning for swap", + option::none(), + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } + + #[test_only] + public fun test_init(ctx: &mut TxContext) { + init(COIN_B {}, ctx); + } } \ No newline at end of file diff --git a/mover/w626w/code/task5/simpleswap.move b/mover/w626w/code/task5/simpleswap.move index 16fcc58f8..48c016f37 100644 --- a/mover/w626w/code/task5/simpleswap.move +++ b/mover/w626w/code/task5/simpleswap.move @@ -1,339 +1,339 @@ -module w626w::w626w { - use sui::object::{Self, UID}; - use sui::coin::{Self, Coin}; - use sui::balance::{Self, Supply, Balance}; - use sui::transfer; - use sui::math; - use sui::tx_context::{Self, TxContext}; - - /// ======================================================================= - /// ============================= 数据结构 ================================= - /// ======================================================================= - - /// For when supplied Coin is zero. - const EZeroAmount: u64 = 0; - - /// For when pool fee is set incorrectly. - /// Allowed values are: [0-10000). - // const EWrongFee: u64 = 1; - - /// For when someone tries to swap in an empty pool. - const EReservesEmpty: u64 = 2; - - /// For when someone attempts to add more liquidity than u128 Math allows. - const EPoolFull: u64 = 4; - - /// The integer scaling setting for fees calculation. - const FEE_SCALING: u128 = 10000; - - /// The fee percent that will be taken from the swap. - /// Set to 0.3%. - const FEE_PERCENT: u128 = 30; - - /// The max value that can be held in one of the Balances of - /// a Pool. U64 MAX / FEE_SCALING - const MAX_POOL_VALUE: u64 = { - 18446744073709551615 / 10000 - }; - - /// The Pool token that will be used to mark the pool share - /// of a liquidity provider. - /// The first type parameter stands for the witness type of a pool. - /// The seconds and thirds is for the coin held in the pool. - public struct LSP has drop {} - - /// The pool with exchange. - /// - /// - `fee_percent` should be in the range: [0-10000), meaning - /// that 10000 is 100% and 1 is 0.01% - public struct Pool has key { - id: UID, - token_a: Balance, - token_b: Balance, - lsp_supply: Supply>, - /// Fee Percent is denominated in basis points. - fee_percent: u64 - } - - - /// ======================================================================= - /// ============================= 初始化函数 =============================== - /// ======================================================================= - - /// Module initializer is empty - to publish a new Pool one has - /// to create a type which will mark LSPs. - fun init(_: &mut TxContext) { - } - - /// ======================================================================= - /// ============================= 流动性池 ================================= - /// ======================================================================= - - entry fun create_pool ( - token_a: Coin, - token_b: Coin, - ctx: &mut TxContext - ) { - transfer::public_transfer( - create_pool_inner(token_a, token_b, ctx), - tx_context::sender(ctx) - ); - } - - fun create_pool_inner ( - token_a: Coin, - token_b: Coin, - ctx: &mut TxContext - ): Coin> { - let fee_percent = (FEE_PERCENT as u64); - - let token_a_amt = coin::value(&token_a); - let token_b_amt = coin::value(&token_b); - - assert!(token_a_amt > 0 && token_b_amt > 0, EZeroAmount); - assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); - - let share = math::sqrt(token_a_amt) * math::sqrt(token_b_amt); - let mut lsp_supply = balance::create_supply(LSP {}); - let lsp = balance::increase_supply(&mut lsp_supply, share); - - transfer::share_object(Pool { - id: object::new(ctx), - token_a: coin::into_balance(token_a), - token_b: coin::into_balance(token_b), - lsp_supply, - fee_percent, - }); - - coin::from_balance(lsp, ctx) - } - - entry fun add_liquidity ( - pool: &mut Pool, - token_a: Coin, - token_b: Coin, - ctx: &mut TxContext - ) { - transfer::public_transfer( - add_liquidity_inner(pool, token_a, token_b, ctx), - tx_context::sender(ctx) - ) - } - - fun add_liquidity_inner ( - pool: &mut Pool, - token_a: Coin, - token_b: Coin, - ctx: &mut TxContext - ): Coin> { - assert!(coin::value(&token_a) > 0 && coin::value(&token_b) > 0, EZeroAmount); - - let (token_a_amt, token_b_amt, lsp_supply) = get_amounts(pool); - assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); - - let token_a_balance = coin::into_balance(token_a); - let token_b_balance = coin::into_balance(token_b); - - let token_a_added = balance::value(&token_a_balance); - let token_b_added = balance::value(&token_b_balance); - - // XXX - 可以对新增的流动性进行计算,查看比值是否和原来的比值一致 - // assert!(token_a_added * token_b_amt == token_b_added * token_a_amt, EWrongFee); - // assert!(math::abs_diff(token_a_added * token_b_amt, token_b_added * token_a_amt) < 100, EWrongFee); - - let share_minted = math::min( - (token_a_added * lsp_supply) / token_a_amt, - (token_b_added * lsp_supply) / token_b_amt - ); - - let token_a_amt = balance::join(&mut pool.token_a, token_a_balance); - let token_b_amt = balance::join(&mut pool.token_b, token_b_balance); - - assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); - - let balance = balance::increase_supply(&mut pool.lsp_supply, share_minted); - - coin::from_balance(balance, ctx) - } - - entry fun remove_liquidity ( - pool: &mut Pool, - lsp: Coin>, - ctx: &mut TxContext - ) { - let (token_a, token_b) = remove_liquidity_inner(pool, lsp, ctx); - let sender = tx_context::sender(ctx); - - transfer::public_transfer(token_a, sender); - transfer::public_transfer(token_b, sender); - } - - fun remove_liquidity_inner ( - pool: &mut Pool, - lsp: Coin>, - ctx: &mut TxContext - ): (Coin, Coin) { - let lsp_amount = coin::value(&lsp); - assert!(lsp_amount > 0, EZeroAmount); - - let (token_a_amt, token_b_amt, total_supply) = get_amounts(pool); - - let token_a = (token_a_amt * lsp_amount) / total_supply; - let token_b = (token_b_amt * lsp_amount) / total_supply; - - balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); - - ( - coin::take(&mut pool.token_a, token_a, ctx), - coin::take(&mut pool.token_b, token_b, ctx), - ) - } - - /// ======================================================================= - /// ============================= 交易函数 ================================= - /// ======================================================================= - - entry fun swap_a_to_b ( - pool: &mut Pool, - token_a: Coin, - ctx: &mut TxContext - ) { - transfer::public_transfer( - swap_a_to_b_inner(pool, token_a, ctx), - tx_context::sender(ctx) - ) - } - - fun swap_a_to_b_inner ( - pool: &mut Pool, - token_a: Coin, - ctx: &mut TxContext - ): Coin { - let token_a_amt = coin::value(&token_a); - assert!(token_a_amt > 0, EZeroAmount); - - let (token_a_amt, token_b_amt, _) = get_amounts(pool); - assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); - - let token_b_amt = sell_token_a(pool, token_a_amt); - - balance::join(&mut pool.token_a, coin::into_balance(token_a)); - - coin::take(&mut pool.token_b, token_b_amt, ctx) - } - - entry fun swap_b_to_a ( - pool: &mut Pool, - token_b: Coin, - ctx: &mut TxContext - ) { - transfer::public_transfer( - swap_b_to_a_inner(pool, token_b, ctx), - tx_context::sender(ctx) - ) - } - - fun swap_b_to_a_inner ( - pool: &mut Pool, - token_b: Coin, - ctx: &mut TxContext - ): Coin { - let token_b_amt = coin::value(&token_b); - assert!(token_b_amt > 0, EZeroAmount); - - let (token_a_amt, token_b_amt, _) = get_amounts(pool); - assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); - - let token_a_amt = sell_token_b(pool, token_b_amt); - - balance::join(&mut pool.token_b, coin::into_balance(token_b)); - - coin::take(&mut pool.token_a, token_a_amt, ctx) - } - - /// ======================================================================= - /// ============================= 辅助函数 ================================= - /// ======================================================================= - - /// 计算售出指定数量的 Token A,会得到多少数量的 Token B - public fun sell_token_a(pool: &Pool, to_sell: u64): u64 { - let (token_a_amt, token_b_amt, _) = get_amounts(pool); - calc_output_amount( - to_sell, - token_a_amt, - token_b_amt, - pool.fee_percent - ) - } - - /// 计算售出指定数量的 Token B,会得到多少数量的 Token A - public fun sell_token_b(pool: &Pool, to_sell: u64): u64 { - let (token_a_amt, token_b_amt, _) = get_amounts(pool); - calc_output_amount( - to_sell, - token_b_amt, - token_a_amt, - pool.fee_percent - ) - } - - /// Get most used values in a handy way: - /// - amount of token a - /// - amount of token b - /// - total supply of LSP - public fun get_amounts(pool: &Pool): (u64, u64, u64) { - ( - balance::value(&pool.token_a), - balance::value(&pool.token_b), - balance::supply_value(&pool.lsp_supply), - ) - } - - /// Calculate the output amount minus the fee - /// x, y 分别表示池中两个资产的数量 - /// k 表示常数,代表池中资产的总价值,使用 x * y = k - /// 当交易发生时,池中资产的总价值应该保持不变 - /// dx, dy 分别表示池中两个资产的变化值 - /// (x + dx) * (y - dy) = k - public fun calc_output_amount( - input_amount: u64, - input_reserve: u64, - output_reserve: u64, - fee_percent: u64 - ): u64 { - let ( - input_amount, - input_reserve, - output_reserve, - fee_percent - ) = ( - (input_amount as u128), - (input_reserve as u128), - (output_reserve as u128), - (fee_percent as u128), - ); - - // 计算手续费后的输入数量 - let input_with_fee = input_amount * FEE_SCALING / (FEE_SCALING - fee_percent); - - // 根据公式 (x + dx) * (y - dy) = k - // 得到 dy = y - k / (x + dx) - let total = input_reserve * output_reserve; - let output_amount = output_reserve - total / (input_reserve + input_with_fee); - - (output_amount as u64) - } -} - -//packageID 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 -//coin_a: 0xa7edc406153123af11055029fc6f141138b413df1d191885607bd154ab7178e4 -//coin_b: 0xa5f37c9ecf31f9593fa8397048edaee926b697a50dd889ad933b239d07d0436a -// sui client call --gas-budget 7500000 --package 0xd263908049bf7211f9719481f5bf99d7f83eed8f7dedd44521a2fdfb2cec7a56 --module coin_a --function mint --args 0xefe1aedb2ea684cfd97288a7ce14e8a69ecce087cc9a6cb0c2b2b990dd368f71 1000 0x8dc5827a93398f03913f4df834907aa38a8397b31398f63682f44de1fab90d0f -// sui client call --gas-budget 7500000 --package 0xd263908049bf7211f9719481f5bf99d7f83eed8f7dedd44521a2fdfb2cec7a56 --module coin_b --function mint --args 0x7a2ea83861c92447904aecff6a2687bde71c20866e4df34f4adbf7b31562a9c4 10000 0x8dc5827a93398f03913f4df834907aa38a8397b31398f63682f44de1fab90d0f -//coinA1:0x6a889f68bcc4ef956308f0f7173b6118868f38018202565c5d84814311e1a78d type: 0xa7edc406153123af11055029fc6f141138b413df1d191885607bd154ab7178e4::mycoin::MYCOIN 0xc26cfb83c268b0ddc956ac5dbcc6471fba7b6ae1463b6f31e670b8ad1c3b79ea::faucetcoin::FAUCETCOIN -//coinB10:0xf6b8fccd5d24f299e508443c31b094ed8f6df54fcca2e3c560d04e0b60b7d70d type: 0xc26cfb83c268b0ddc956ac5dbcc6471fba7b6ae1463b6f31e670b8ad1c3b79ea::faucetcoin::FAUCETCOIN -// coinA1:0x61d29c2b20ae6bc46a7ec18f7b00362cf22c239ea8b059ebe89c4935231eb281 -//增加流动性:sui client call --gas-budget 7500000 --package 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 --module vklo1 --function create_pool --type-args 0x6933a19cea6793b3b8fdc7e574922d3fa6d068af5bdbb2f4b9c8882fee6e1619::mycoin::MYCOIN 0xc26cfb83c268b0ddc956ac5dbcc6471fba7b6ae1463b6f31e670b8ad1c3b79ea::faucetcoin::FAUCETCOIN --args 0x6a889f68bcc4ef956308f0f7173b6118868f38018202565c5d84814311e1a78d 0xf6b8fccd5d24f299e508443c31b094ed8f6df54fcca2e3c560d04e0b60b7d70d -// lp:0xd9651e9bf18f71888742036bbd96ba4516244b63cb3d8a44a33b9ec95f0250d1 -// swap sui client call --gas-budget 7500000 --package 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 --module vklo1 --function swap_a_to_b --type-args 0x6933a19cea6793b3b8fdc7e574922d3fa6d068af5bdbb2f4b9c8882fee6e1619::mycoin::MYCOIN 0xc26cfb83c268b0ddc956ac5dbcc6471fba7b6ae1463b6f31e670b8ad1c3b79ea::faucetcoin::FAUCETCOIN --args 0xd9651e9bf18f71888742036bbd96ba4516244b63cb3d8a44a33b9ec95f0250d1 0x61d29c2b20ae6bc46a7ec18f7b00362cf22c239ea8b059ebe89c4935231eb281 - +module w626w::w626w { + use sui::object::{Self, UID}; + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply, Balance}; + use sui::transfer; + use sui::math; + use sui::tx_context::{Self, TxContext}; + + /// ======================================================================= + /// ============================= 数据结构 ================================= + /// ======================================================================= + + /// For when supplied Coin is zero. + const EZeroAmount: u64 = 0; + + /// For when pool fee is set incorrectly. + /// Allowed values are: [0-10000). + // const EWrongFee: u64 = 1; + + /// For when someone tries to swap in an empty pool. + const EReservesEmpty: u64 = 2; + + /// For when someone attempts to add more liquidity than u128 Math allows. + const EPoolFull: u64 = 4; + + /// The integer scaling setting for fees calculation. + const FEE_SCALING: u128 = 10000; + + /// The fee percent that will be taken from the swap. + /// Set to 0.3%. + const FEE_PERCENT: u128 = 30; + + /// The max value that can be held in one of the Balances of + /// a Pool. U64 MAX / FEE_SCALING + const MAX_POOL_VALUE: u64 = { + 18446744073709551615 / 10000 + }; + + /// The Pool token that will be used to mark the pool share + /// of a liquidity provider. + /// The first type parameter stands for the witness type of a pool. + /// The seconds and thirds is for the coin held in the pool. + public struct LSP has drop {} + + /// The pool with exchange. + /// + /// - `fee_percent` should be in the range: [0-10000), meaning + /// that 10000 is 100% and 1 is 0.01% + public struct Pool has key { + id: UID, + token_a: Balance, + token_b: Balance, + lsp_supply: Supply>, + /// Fee Percent is denominated in basis points. + fee_percent: u64 + } + + + /// ======================================================================= + /// ============================= 初始化函数 =============================== + /// ======================================================================= + + /// Module initializer is empty - to publish a new Pool one has + /// to create a type which will mark LSPs. + fun init(_: &mut TxContext) { + } + + /// ======================================================================= + /// ============================= 流动性池 ================================= + /// ======================================================================= + + entry fun create_pool ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + create_pool_inner(token_a, token_b, ctx), + tx_context::sender(ctx) + ); + } + + fun create_pool_inner ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + let fee_percent = (FEE_PERCENT as u64); + + let token_a_amt = coin::value(&token_a); + let token_b_amt = coin::value(&token_b); + + assert!(token_a_amt > 0 && token_b_amt > 0, EZeroAmount); + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let share = math::sqrt(token_a_amt) * math::sqrt(token_b_amt); + let mut lsp_supply = balance::create_supply(LSP {}); + let lsp = balance::increase_supply(&mut lsp_supply, share); + + transfer::share_object(Pool { + id: object::new(ctx), + token_a: coin::into_balance(token_a), + token_b: coin::into_balance(token_b), + lsp_supply, + fee_percent, + }); + + coin::from_balance(lsp, ctx) + } + + entry fun add_liquidity ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + add_liquidity_inner(pool, token_a, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun add_liquidity_inner ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + assert!(coin::value(&token_a) > 0 && coin::value(&token_b) > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, lsp_supply) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_balance = coin::into_balance(token_a); + let token_b_balance = coin::into_balance(token_b); + + let token_a_added = balance::value(&token_a_balance); + let token_b_added = balance::value(&token_b_balance); + + // XXX - 可以对新增的流动性进行计算,查看比值是否和原来的比值一致 + // assert!(token_a_added * token_b_amt == token_b_added * token_a_amt, EWrongFee); + // assert!(math::abs_diff(token_a_added * token_b_amt, token_b_added * token_a_amt) < 100, EWrongFee); + + let share_minted = math::min( + (token_a_added * lsp_supply) / token_a_amt, + (token_b_added * lsp_supply) / token_b_amt + ); + + let token_a_amt = balance::join(&mut pool.token_a, token_a_balance); + let token_b_amt = balance::join(&mut pool.token_b, token_b_balance); + + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let balance = balance::increase_supply(&mut pool.lsp_supply, share_minted); + + coin::from_balance(balance, ctx) + } + + entry fun remove_liquidity ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ) { + let (token_a, token_b) = remove_liquidity_inner(pool, lsp, ctx); + let sender = tx_context::sender(ctx); + + transfer::public_transfer(token_a, sender); + transfer::public_transfer(token_b, sender); + } + + fun remove_liquidity_inner ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ): (Coin, Coin) { + let lsp_amount = coin::value(&lsp); + assert!(lsp_amount > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, total_supply) = get_amounts(pool); + + let token_a = (token_a_amt * lsp_amount) / total_supply; + let token_b = (token_b_amt * lsp_amount) / total_supply; + + balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); + + ( + coin::take(&mut pool.token_a, token_a, ctx), + coin::take(&mut pool.token_b, token_b, ctx), + ) + } + + /// ======================================================================= + /// ============================= 交易函数 ================================= + /// ======================================================================= + + entry fun swap_a_to_b ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_a_to_b_inner(pool, token_a, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_a_to_b_inner ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ): Coin { + let token_a_amt = coin::value(&token_a); + assert!(token_a_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_b_amt = sell_token_a(pool, token_a_amt); + + balance::join(&mut pool.token_a, coin::into_balance(token_a)); + + coin::take(&mut pool.token_b, token_b_amt, ctx) + } + + entry fun swap_b_to_a ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_b_to_a_inner(pool, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_b_to_a_inner ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ): Coin { + let token_b_amt = coin::value(&token_b); + assert!(token_b_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_amt = sell_token_b(pool, token_b_amt); + + balance::join(&mut pool.token_b, coin::into_balance(token_b)); + + coin::take(&mut pool.token_a, token_a_amt, ctx) + } + + /// ======================================================================= + /// ============================= 辅助函数 ================================= + /// ======================================================================= + + /// 计算售出指定数量的 Token A,会得到多少数量的 Token B + public fun sell_token_a(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_a_amt, + token_b_amt, + pool.fee_percent + ) + } + + /// 计算售出指定数量的 Token B,会得到多少数量的 Token A + public fun sell_token_b(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_b_amt, + token_a_amt, + pool.fee_percent + ) + } + + /// Get most used values in a handy way: + /// - amount of token a + /// - amount of token b + /// - total supply of LSP + public fun get_amounts(pool: &Pool): (u64, u64, u64) { + ( + balance::value(&pool.token_a), + balance::value(&pool.token_b), + balance::supply_value(&pool.lsp_supply), + ) + } + + /// Calculate the output amount minus the fee + /// x, y 分别表示池中两个资产的数量 + /// k 表示常数,代表池中资产的总价值,使用 x * y = k + /// 当交易发生时,池中资产的总价值应该保持不变 + /// dx, dy 分别表示池中两个资产的变化值 + /// (x + dx) * (y - dy) = k + public fun calc_output_amount( + input_amount: u64, + input_reserve: u64, + output_reserve: u64, + fee_percent: u64 + ): u64 { + let ( + input_amount, + input_reserve, + output_reserve, + fee_percent + ) = ( + (input_amount as u128), + (input_reserve as u128), + (output_reserve as u128), + (fee_percent as u128), + ); + + // 计算手续费后的输入数量 + let input_with_fee = input_amount * FEE_SCALING / (FEE_SCALING - fee_percent); + + // 根据公式 (x + dx) * (y - dy) = k + // 得到 dy = y - k / (x + dx) + let total = input_reserve * output_reserve; + let output_amount = output_reserve - total / (input_reserve + input_with_fee); + + (output_amount as u64) + } +} + +//packageID 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 +//coin_a: 0xa7edc406153123af11055029fc6f141138b413df1d191885607bd154ab7178e4 +//coin_b: 0xa5f37c9ecf31f9593fa8397048edaee926b697a50dd889ad933b239d07d0436a +// sui client call --gas-budget 7500000 --package 0xd263908049bf7211f9719481f5bf99d7f83eed8f7dedd44521a2fdfb2cec7a56 --module coin_a --function mint --args 0xefe1aedb2ea684cfd97288a7ce14e8a69ecce087cc9a6cb0c2b2b990dd368f71 1000 0x8dc5827a93398f03913f4df834907aa38a8397b31398f63682f44de1fab90d0f +// sui client call --gas-budget 7500000 --package 0xd263908049bf7211f9719481f5bf99d7f83eed8f7dedd44521a2fdfb2cec7a56 --module coin_b --function mint --args 0x7a2ea83861c92447904aecff6a2687bde71c20866e4df34f4adbf7b31562a9c4 10000 0x8dc5827a93398f03913f4df834907aa38a8397b31398f63682f44de1fab90d0f +//coinA1:0x6a889f68bcc4ef956308f0f7173b6118868f38018202565c5d84814311e1a78d type: 0xa7edc406153123af11055029fc6f141138b413df1d191885607bd154ab7178e4::mycoin::MYCOIN 0xc26cfb83c268b0ddc956ac5dbcc6471fba7b6ae1463b6f31e670b8ad1c3b79ea::faucetcoin::FAUCETCOIN +//coinB10:0xf6b8fccd5d24f299e508443c31b094ed8f6df54fcca2e3c560d04e0b60b7d70d type: 0xc26cfb83c268b0ddc956ac5dbcc6471fba7b6ae1463b6f31e670b8ad1c3b79ea::faucetcoin::FAUCETCOIN +// coinA1:0x61d29c2b20ae6bc46a7ec18f7b00362cf22c239ea8b059ebe89c4935231eb281 +//增加流动性:sui client call --gas-budget 7500000 --package 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 --module vklo1 --function create_pool --type-args 0x6933a19cea6793b3b8fdc7e574922d3fa6d068af5bdbb2f4b9c8882fee6e1619::mycoin::MYCOIN 0xc26cfb83c268b0ddc956ac5dbcc6471fba7b6ae1463b6f31e670b8ad1c3b79ea::faucetcoin::FAUCETCOIN --args 0x6a889f68bcc4ef956308f0f7173b6118868f38018202565c5d84814311e1a78d 0xf6b8fccd5d24f299e508443c31b094ed8f6df54fcca2e3c560d04e0b60b7d70d +// lp:0xd9651e9bf18f71888742036bbd96ba4516244b63cb3d8a44a33b9ec95f0250d1 +// swap sui client call --gas-budget 7500000 --package 0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 --module vklo1 --function swap_a_to_b --type-args 0x6933a19cea6793b3b8fdc7e574922d3fa6d068af5bdbb2f4b9c8882fee6e1619::mycoin::MYCOIN 0xc26cfb83c268b0ddc956ac5dbcc6471fba7b6ae1463b6f31e670b8ad1c3b79ea::faucetcoin::FAUCETCOIN --args 0xd9651e9bf18f71888742036bbd96ba4516244b63cb3d8a44a33b9ec95f0250d1 0x61d29c2b20ae6bc46a7ec18f7b00362cf22c239ea8b059ebe89c4935231eb281 + diff --git a/mover/w626w/code/task6/index.js b/mover/w626w/code/task6/index.js index 5f58ca56b..9a05e75b1 100644 --- a/mover/w626w/code/task6/index.js +++ b/mover/w626w/code/task6/index.js @@ -1,29 +1,29 @@ -import { NAVISDKClient } from "navi-sdk"; -import { Sui } from "navi-sdk/dist/address.js"; - -// 钱包助记词,这里用主网钱包 -const mnemonic = " "; -console.log("本地助记词:", mnemonic); -// NAVISDKClient 实例 -const client = new NAVISDKClient({ - mnemonic, - networkType: "mainnet", - numberOfAccounts: 1, -}); - -async function main() { - const accounts = client.getAllAccounts(); - console.log("账号列表:", accounts); - const account = accounts[0]; - await account.getWalletBalance(true); - - // 存 - const depositRes = await account.depositToNavi(Sui, 1); - console.log(depositRes); - - // 提 - // const withdrawRes = await account.withdraw(Sui, 1); - // console.log(withdrawRes); -} - +import { NAVISDKClient } from "navi-sdk"; +import { Sui } from "navi-sdk/dist/address.js"; + +// 钱包助记词,这里用主网钱包 +const mnemonic = " "; +console.log("本地助记词:", mnemonic); +// NAVISDKClient 实例 +const client = new NAVISDKClient({ + mnemonic, + networkType: "mainnet", + numberOfAccounts: 1, +}); + +async function main() { + const accounts = client.getAllAccounts(); + console.log("账号列表:", accounts); + const account = accounts[0]; + await account.getWalletBalance(true); + + // 存 + const depositRes = await account.depositToNavi(Sui, 1); + console.log(depositRes); + + // 提 + // const withdrawRes = await account.withdraw(Sui, 1); + // console.log(withdrawRes); +} + main(); \ No newline at end of file diff --git a/mover/w626w/code/task6/package-lock.json b/mover/w626w/code/task6/package-lock.json index 691b7ca49..d4fd2eb0a 100644 --- a/mover/w626w/code/task6/package-lock.json +++ b/mover/w626w/code/task6/package-lock.json @@ -1,2554 +1,2554 @@ -{ - "name": "w626w", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "w626w", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "navi-sdk": "^1.1.20" - } - }, - "node_modules/@0no-co/graphql.web": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", - "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" - }, - "peerDependenciesMeta": { - "graphql": { - "optional": true - } - } - }, - "node_modules/@0no-co/graphqlsp": { - "version": "1.10.3", - "resolved": "https://registry.npmmirror.com/@0no-co/graphqlsp/-/graphqlsp-1.10.3.tgz", - "integrity": "sha512-8XHFj1efXLywmutSYfzHaqMU2lgfo7onugNj9LZN5kiQNEXIDPPeRqecZukkt4FqHe4J9MBUdn13NVLa3a6JiQ==", - "dependencies": { - "@gql.tada/internal": "^0.1.2", - "graphql": "^16.8.1", - "node-fetch": "^2.0.0" - }, - "peerDependencies": { - "typescript": "^5.0.0" - } - }, - "node_modules/@0no-co/graphqlsp/node_modules/@gql.tada/internal": { - "version": "0.1.3", - "resolved": "https://registry.npmmirror.com/@gql.tada/internal/-/internal-0.1.3.tgz", - "integrity": "sha512-wIvykBId7O0gaizmSl5n5AhbQsgJVLTUsFBm3RsfQ9dVfpmT+Fhy2yHX+yNgiVECg2EimXMhs4ltcE4EuZ2WOA==", - "dependencies": { - "@0no-co/graphql.web": "^1.0.5" - }, - "peerDependencies": { - "graphql": "^16.8.1", - "typescript": "^5.0.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@digitak/grubber": { - "version": "3.1.4", - "resolved": "https://registry.npmmirror.com/@digitak/grubber/-/grubber-3.1.4.tgz", - "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==" - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", - "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", - "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", - "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", - "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", - "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", - "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", - "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", - "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", - "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", - "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", - "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", - "cpu": [ - "loong64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", - "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", - "cpu": [ - "mips64el" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", - "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", - "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", - "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", - "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", - "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", - "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", - "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", - "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", - "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@gql.tada/cli-utils": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/@gql.tada/cli-utils/-/cli-utils-1.1.1.tgz", - "integrity": "sha512-h+6p6kQYma5eAMayn0FV3UtCCRFcyZp8zfbl4qYTzFSzQ1zrQIxuSaTmskdGBD3rgPnxrOkXHYzk9xgL1IeXkQ==", - "dependencies": { - "@0no-co/graphqlsp": "^1.10.0", - "@gql.tada/internal": "0.2.1", - "@vue/language-core": "^2.0.13", - "graphql": "^16.8.1", - "ts-morph": "~22.0.0" - }, - "peerDependencies": { - "typescript": "^5.0.0" - } - }, - "node_modules/@gql.tada/internal": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/@gql.tada/internal/-/internal-0.2.1.tgz", - "integrity": "sha512-Nn+vcvIOUliUFaQwl+URNvqBnWd1MuDjvQo63Hy8+DkV3rbRSa0OCVXIR55EQRpIT7ZmPMzYyMQ2Bmj9Mk37vQ==", - "dependencies": { - "@0no-co/graphql.web": "^1.0.5" - }, - "peerDependencies": { - "graphql": "^16.8.1", - "typescript": "^5.0.0" - } - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmmirror.com/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@mysten/bcs": { - "version": "0.11.1", - "resolved": "https://registry.npmmirror.com/@mysten/bcs/-/bcs-0.11.1.tgz", - "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", - "dependencies": { - "bs58": "^5.0.0" - } - }, - "node_modules/@mysten/sui.js": { - "version": "0.50.1", - "resolved": "https://registry.npmmirror.com/@mysten/sui.js/-/sui.js-0.50.1.tgz", - "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.2.0", - "@mysten/bcs": "0.11.1", - "@noble/curves": "^1.1.0", - "@noble/hashes": "^1.3.1", - "@scure/bip32": "^1.3.1", - "@scure/bip39": "^1.2.1", - "@suchipi/femver": "^1.0.0", - "bech32": "^2.0.0", - "gql.tada": "^1.2.0", - "graphql": "^16.8.1", - "superstruct": "^1.0.3", - "tweetnacl": "^1.0.3" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@noble/curves": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/@noble/curves/-/curves-1.4.0.tgz", - "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", - "dependencies": { - "@noble/hashes": "1.4.0" - } - }, - "node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", - "engines": { - "node": ">= 16" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.1.tgz", - "integrity": "sha512-92/y0TqNLRYOTXpm6Z7mnpvKAG9P7qmK7yJeRJSdzElNCUnsgbpAsGqerUboYRIQKzgfq4pWu9xVkgpWLfmNsw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.16.1.tgz", - "integrity": "sha512-ttWB6ZCfRLuDIUiE0yiu5gcqOsYjA5F7kEV1ggHMj20FwLZ8A1FMeahZJFl/pnOmcnD2QL0z4AcDuo27utGU8A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.16.1.tgz", - "integrity": "sha512-QLDvPLetbqjHojTGFw9+nuSP3YY/iz2k1cep6crYlr97sS+ZJ0W43b8Z0zC00+lnFZj6JSNxiA4DjboNQMuh1A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.16.1.tgz", - "integrity": "sha512-TAUK/D8khRrRIa1KwRzo8JNKk3tcqaeXWdtsiLgA8zmACWwlWLjPCJ4DULGHQrMkeBjp1Cd3Yuwx04lZgFx5Vg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.16.1.tgz", - "integrity": "sha512-KO+WGZjrh6zyFTD1alIFkfdtxf8B4BC+hqd3kBZHscPLvE5FR/6QKsyuCT0JlERxxYBSUKNUQ/UHyX5uwO1x2A==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.16.1.tgz", - "integrity": "sha512-NqxbllzIB1WoAo4ThUXVtd21iiM5IHMTTXmXySKBLVcZvkU0HIZmatlP7hLzb5yQubcmdIeWmncd2NdsjocEiw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.16.1.tgz", - "integrity": "sha512-snma5NvV8y7IECQ5rq0sr0f3UUu+92NVmG/913JXJMcXo84h9ak9TA5UI9Cl2XRM9j3m37QwDBtEYnJzRkSmxA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.16.1.tgz", - "integrity": "sha512-KOvqGprlD84ueivhCi2flvcUwDRD20mAsE3vxQNVEI2Di9tnPGAfEu6UcrSPZbM+jG2w1oSr43hrPo0RNg6GGg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.16.1.tgz", - "integrity": "sha512-/gsNwtiGLqYwN4vP+EIdUC6Q6LTlpupWqokqIndvZcjn9ig/5P01WyaYCU2wvfL/2Z82jp5kX8c1mDBOvCP3zg==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.16.1.tgz", - "integrity": "sha512-uU8zuGkQfGqfD9w6VRJZI4IuG4JIfNxxJgEmLMAmPVHREKGsxFVfgHy5c6CexQF2vOfgjB33OsET3Vdn2lln9A==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.16.1.tgz", - "integrity": "sha512-lsjLtDgtcGFEuBP6yrXwkRN5/wKlvUZtfbKZZu0yaoNpiBL4epgnO21osAALIspVRnl4qZgyLFd8xjCYYWgwfw==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.1.tgz", - "integrity": "sha512-N2ZizKhUryqqrMfdCnjhJhZRgv61C6gK+hwVtCIKC8ts8J+go+vqENnGexwg21nHIOvLN5mBM8a7DI2vlyIOPg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.1.tgz", - "integrity": "sha512-5ICeMxqg66FrOA2AbnBQ2TJVxfvZsKLxmof0ibvPLaYtbsJqnTUtJOofgWb46Gjd4uZcA4rdsp4JCxegzQPqCg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.16.1.tgz", - "integrity": "sha512-1vIP6Ce02L+qWD7uZYRiFiuAJo3m9kARatWmFSnss0gZnVj2Id7OPUU9gm49JPGasgcR3xMqiH3fqBJ8t00yVg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.16.1.tgz", - "integrity": "sha512-Y3M92DcVsT6LoP+wrKpoUWPaazaP1fzbNkp0a0ZSj5Y//+pQVfVe/tQdsYQQy7dwXR30ZfALUIc9PCh9Izir6w==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.16.1.tgz", - "integrity": "sha512-x0fvpHMuF7fK5r8oZxSi8VYXkrVmRgubXpO/wcf15Lk3xZ4Jvvh5oG+u7Su1776A7XzVKZhD2eRc4t7H50gL3w==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@scure/base": { - "version": "1.1.6", - "resolved": "https://registry.npmmirror.com/@scure/base/-/base-1.1.6.tgz", - "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==" - }, - "node_modules/@scure/bip32": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/@scure/bip32/-/bip32-1.4.0.tgz", - "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", - "dependencies": { - "@noble/curves": "~1.4.0", - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" - } - }, - "node_modules/@scure/bip39": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/@scure/bip39/-/bip39-1.3.0.tgz", - "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", - "dependencies": { - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" - }, - "node_modules/@suchipi/femver": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/@suchipi/femver/-/femver-1.0.0.tgz", - "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" - }, - "node_modules/@ts-morph/common": { - "version": "0.23.0", - "resolved": "https://registry.npmmirror.com/@ts-morph/common/-/common-0.23.0.tgz", - "integrity": "sha512-m7Lllj9n/S6sOkCkRftpM7L24uvmfXQFedlW/4hENcuJH1HHm9u5EgxZb9uVjQSCGrbBWBkOGgcTxNg36r6ywA==", - "dependencies": { - "fast-glob": "^3.3.2", - "minimatch": "^9.0.3", - "mkdirp": "^3.0.1", - "path-browserify": "^1.0.1" - } - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" - }, - "node_modules/@vitest/expect": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/@vitest/expect/-/expect-1.5.0.tgz", - "integrity": "sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==", - "dependencies": { - "@vitest/spy": "1.5.0", - "@vitest/utils": "1.5.0", - "chai": "^4.3.10" - } - }, - "node_modules/@vitest/runner": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/@vitest/runner/-/runner-1.5.0.tgz", - "integrity": "sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==", - "dependencies": { - "@vitest/utils": "1.5.0", - "p-limit": "^5.0.0", - "pathe": "^1.1.1" - } - }, - "node_modules/@vitest/snapshot": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/@vitest/snapshot/-/snapshot-1.5.0.tgz", - "integrity": "sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==", - "dependencies": { - "magic-string": "^0.30.5", - "pathe": "^1.1.1", - "pretty-format": "^29.7.0" - } - }, - "node_modules/@vitest/spy": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/@vitest/spy/-/spy-1.5.0.tgz", - "integrity": "sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==", - "dependencies": { - "tinyspy": "^2.2.0" - } - }, - "node_modules/@vitest/utils": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/@vitest/utils/-/utils-1.5.0.tgz", - "integrity": "sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==", - "dependencies": { - "diff-sequences": "^29.6.3", - "estree-walker": "^3.0.3", - "loupe": "^2.3.7", - "pretty-format": "^29.7.0" - } - }, - "node_modules/@vitest/utils/node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/@volar/language-core": { - "version": "2.2.0-alpha.10", - "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.2.0-alpha.10.tgz", - "integrity": "sha512-njVJLtpu0zMvDaEk7K5q4BRpOgbyEUljU++un9TfJoJNhxG0z/hWwpwgTRImO42EKvwIxF3XUzeMk+qatAFy7Q==", - "dependencies": { - "@volar/source-map": "2.2.0-alpha.10" - } - }, - "node_modules/@volar/source-map": { - "version": "2.2.0-alpha.10", - "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-2.2.0-alpha.10.tgz", - "integrity": "sha512-nrdWApVkP5cksAnDEyy1JD9rKdwOJsEq1B+seWO4vNXmZNcxQQCx4DULLBvKt7AzRUAQiAuw5aQkb9RBaSqdVA==", - "dependencies": { - "muggle-string": "^0.4.0" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.4.23", - "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.23.tgz", - "integrity": "sha512-HAFmuVEwNqNdmk+w4VCQ2pkLk1Vw4XYiiyxEp3z/xvl14aLTUBw2OfVH3vBcx+FtGsynQLkkhK410Nah1N2yyQ==", - "dependencies": { - "@babel/parser": "^7.24.1", - "@vue/shared": "3.4.23", - "entities": "^4.5.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.0" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.4.23", - "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.23.tgz", - "integrity": "sha512-t0b9WSTnCRrzsBGrDd1LNR5HGzYTr7LX3z6nNBG+KGvZLqrT0mY6NsMzOqlVMBKKXKVuusbbB5aOOFgTY+senw==", - "dependencies": { - "@vue/compiler-core": "3.4.23", - "@vue/shared": "3.4.23" - } - }, - "node_modules/@vue/language-core": { - "version": "2.0.14", - "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-2.0.14.tgz", - "integrity": "sha512-3q8mHSNcGTR7sfp2X6jZdcb4yt8AjBXAfKk0qkZIh7GAJxOnoZ10h5HToZglw4ToFvAnq+xu/Z2FFbglh9Icag==", - "dependencies": { - "@volar/language-core": "2.2.0-alpha.10", - "@vue/compiler-dom": "^3.4.0", - "@vue/shared": "^3.4.0", - "computeds": "^0.0.1", - "minimatch": "^9.0.3", - "path-browserify": "^1.0.1", - "vue-template-compiler": "^2.7.14" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@vue/shared": { - "version": "3.4.23", - "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.23.tgz", - "integrity": "sha512-wBQ0gvf+SMwsCQOyusNw/GoXPV47WGd1xB5A1Pgzy0sQ3Bi5r5xm3n+92y3gCnB3MWqnRDdvfkRGxhKtbBRNgg==" - }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "engines": { - "node": "*" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/axios": { - "version": "1.6.8", - "resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "node_modules/bech32": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/bech32/-/bech32-2.0.0.tgz", - "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", - "dependencies": { - "base-x": "^4.0.0" - } - }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmmirror.com/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dependencies": { - "get-func-name": "^2.0.2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/code-block-writer": { - "version": "13.0.1", - "resolved": "https://registry.npmmirror.com/code-block-writer/-/code-block-writer-13.0.1.tgz", - "integrity": "sha512-c5or4P6erEA69TxaxTNcHUNcIn+oyxSRTOWV+pSYF+z4epXqNvwvJ70XPGjPNgue83oAFAPBRQYwpAJ/Hpe/Sg==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/computeds": { - "version": "0.0.1", - "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" - }, - "node_modules/confbox": { - "version": "0.1.7", - "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz", - "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/esbuild": { - "version": "0.17.19", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", - "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" - } - }, - "node_modules/esrun": { - "version": "3.2.26", - "resolved": "https://registry.npmmirror.com/esrun/-/esrun-3.2.26.tgz", - "integrity": "sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==", - "dependencies": { - "@digitak/grubber": "^3.1.4", - "chokidar": "^3.5.1", - "esbuild": "^0.17.4" - }, - "bin": { - "esrun": "bin.js" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmmirror.com/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - } - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "engines": { - "node": "*" - } - }, - "node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "engines": { - "node": ">=16" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/gql.tada": { - "version": "1.5.5", - "resolved": "https://registry.npmmirror.com/gql.tada/-/gql.tada-1.5.5.tgz", - "integrity": "sha512-S9pA96CmOv25MTPqyDT/BA5yQBbCzfY64ltM/POxeR+NLftNh6hP4wIm2Hu1KCpS94I94naWbETD0c+mwiBlwA==", - "dependencies": { - "@0no-co/graphql.web": "^1.0.5", - "@gql.tada/cli-utils": "1.1.1", - "@gql.tada/internal": "0.2.1" - }, - "bin": { - "gql-tada": "bin/cli.js", - "gql.tada": "bin/cli.js" - }, - "peerDependencies": { - "typescript": "^5.0.0" - } - }, - "node_modules/graphql": { - "version": "16.8.1", - "resolved": "https://registry.npmmirror.com/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", - "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, - "node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/js-tokens": { - "version": "9.0.0", - "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz", - "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/local-pkg": { - "version": "0.5.0", - "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz", - "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", - "dependencies": { - "mlly": "^1.4.2", - "pkg-types": "^1.0.3" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmmirror.com/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dependencies": { - "get-func-name": "^2.0.1" - } - }, - "node_modules/magic-string": { - "version": "0.30.10", - "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", - "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" - }, - "node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mlly": { - "version": "1.6.1", - "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.6.1.tgz", - "integrity": "sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==", - "dependencies": { - "acorn": "^8.11.3", - "pathe": "^1.1.2", - "pkg-types": "^1.0.3", - "ufo": "^1.3.2" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/muggle-string": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz", - "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/navi-sdk": { - "version": "1.1.20", - "resolved": "https://registry.npmmirror.com/navi-sdk/-/navi-sdk-1.1.20.tgz", - "integrity": "sha512-SX27OeGWQpCT4TFBVbx8yi0ik5jhOaytmqsZnezmfTDDcGLfBZFuWySDkxSad5w//NR5vu0UjGsLQHuRiMJ6Gg==", - "dependencies": { - "@mysten/sui.js": "^0.50.1", - "axios": "^1.6.7", - "esrun": "^3.2.26", - "tsconfig-paths": "^4.2.0", - "vitest": "^1.3.1" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/p-limit": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-5.0.0.tgz", - "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/pathe": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "engines": { - "node": "*" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - } - }, - "node_modules/pkg-types": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.0.tgz", - "integrity": "sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==", - "dependencies": { - "confbox": "^0.1.7", - "mlly": "^1.6.1", - "pathe": "^1.1.2" - } - }, - "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rollup": { - "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.16.1.tgz", - "integrity": "sha512-5CaD3MPDlPKfhqzRvWXK96G6ELJfPZNb3LHiZxTHgDdC6jvwfGz2E8nY+9g1ONk4ttHsK1WaFP19Js4PSr1E3g==", - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.16.1", - "@rollup/rollup-android-arm64": "4.16.1", - "@rollup/rollup-darwin-arm64": "4.16.1", - "@rollup/rollup-darwin-x64": "4.16.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.16.1", - "@rollup/rollup-linux-arm-musleabihf": "4.16.1", - "@rollup/rollup-linux-arm64-gnu": "4.16.1", - "@rollup/rollup-linux-arm64-musl": "4.16.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.16.1", - "@rollup/rollup-linux-riscv64-gnu": "4.16.1", - "@rollup/rollup-linux-s390x-gnu": "4.16.1", - "@rollup/rollup-linux-x64-gnu": "4.16.1", - "@rollup/rollup-linux-x64-musl": "4.16.1", - "@rollup/rollup-win32-arm64-msvc": "4.16.1", - "@rollup/rollup-win32-ia32-msvc": "4.16.1", - "@rollup/rollup-win32-x64-msvc": "4.16.1", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/siginfo": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - } - }, - "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmmirror.com/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" - }, - "node_modules/std-env": { - "version": "3.7.0", - "resolved": "https://registry.npmmirror.com/std-env/-/std-env-3.7.0.tgz", - "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/strip-literal": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz", - "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", - "dependencies": { - "js-tokens": "^9.0.0" - } - }, - "node_modules/superstruct": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/superstruct/-/superstruct-1.0.4.tgz", - "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tinybench": { - "version": "2.8.0", - "resolved": "https://registry.npmmirror.com/tinybench/-/tinybench-2.8.0.tgz", - "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==" - }, - "node_modules/tinypool": { - "version": "0.8.4", - "resolved": "https://registry.npmmirror.com/tinypool/-/tinypool-0.8.4.tgz", - "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tinyspy": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/tinyspy/-/tinyspy-2.2.1.tgz", - "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/ts-morph": { - "version": "22.0.0", - "resolved": "https://registry.npmmirror.com/ts-morph/-/ts-morph-22.0.0.tgz", - "integrity": "sha512-M9MqFGZREyeb5fTl6gNHKZLqBQA0TjA1lea+CR48R8EBTDuWrNqW6ccC5QvjNR4s6wDumD3LTCjOFSp9iwlzaw==", - "dependencies": { - "@ts-morph/common": "~0.23.0", - "code-block-writer": "^13.0.1" - } - }, - "node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/ufo": { - "version": "1.5.3", - "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz", - "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" - }, - "node_modules/vite": { - "version": "5.2.10", - "resolved": "https://registry.npmmirror.com/vite/-/vite-5.2.10.tgz", - "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", - "dependencies": { - "esbuild": "^0.20.1", - "postcss": "^8.4.38", - "rollup": "^4.13.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-node": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/vite-node/-/vite-node-1.5.0.tgz", - "integrity": "sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==", - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.3.4", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "vite": "^5.0.0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", - "cpu": [ - "loong64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", - "cpu": [ - "mips64el" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - } - }, - "node_modules/vitest": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/vitest/-/vitest-1.5.0.tgz", - "integrity": "sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==", - "dependencies": { - "@vitest/expect": "1.5.0", - "@vitest/runner": "1.5.0", - "@vitest/snapshot": "1.5.0", - "@vitest/spy": "1.5.0", - "@vitest/utils": "1.5.0", - "acorn-walk": "^8.3.2", - "chai": "^4.3.10", - "debug": "^4.3.4", - "execa": "^8.0.1", - "local-pkg": "^0.5.0", - "magic-string": "^0.30.5", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "std-env": "^3.5.0", - "strip-literal": "^2.0.0", - "tinybench": "^2.5.1", - "tinypool": "^0.8.3", - "vite": "^5.0.0", - "vite-node": "1.5.0", - "why-is-node-running": "^2.2.2" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "1.5.0", - "@vitest/ui": "1.5.0", - "happy-dom": "*", - "jsdom": "*" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - } - } - }, - "node_modules/vue-template-compiler": { - "version": "2.7.16", - "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", - "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/why-is-node-running": { - "version": "2.2.2", - "resolved": "https://registry.npmmirror.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz", - "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", - "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - }, - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "engines": { - "node": ">=12.20" - } - } - } -} +{ + "name": "w626w", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "w626w", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "navi-sdk": "^1.1.20" + } + }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, + "node_modules/@0no-co/graphqlsp": { + "version": "1.10.3", + "resolved": "https://registry.npmmirror.com/@0no-co/graphqlsp/-/graphqlsp-1.10.3.tgz", + "integrity": "sha512-8XHFj1efXLywmutSYfzHaqMU2lgfo7onugNj9LZN5kiQNEXIDPPeRqecZukkt4FqHe4J9MBUdn13NVLa3a6JiQ==", + "dependencies": { + "@gql.tada/internal": "^0.1.2", + "graphql": "^16.8.1", + "node-fetch": "^2.0.0" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/@0no-co/graphqlsp/node_modules/@gql.tada/internal": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/@gql.tada/internal/-/internal-0.1.3.tgz", + "integrity": "sha512-wIvykBId7O0gaizmSl5n5AhbQsgJVLTUsFBm3RsfQ9dVfpmT+Fhy2yHX+yNgiVECg2EimXMhs4ltcE4EuZ2WOA==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^16.8.1", + "typescript": "^5.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.4", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.4.tgz", + "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@digitak/grubber": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/@digitak/grubber/-/grubber-3.1.4.tgz", + "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@gql.tada/cli-utils": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@gql.tada/cli-utils/-/cli-utils-1.1.1.tgz", + "integrity": "sha512-h+6p6kQYma5eAMayn0FV3UtCCRFcyZp8zfbl4qYTzFSzQ1zrQIxuSaTmskdGBD3rgPnxrOkXHYzk9xgL1IeXkQ==", + "dependencies": { + "@0no-co/graphqlsp": "^1.10.0", + "@gql.tada/internal": "0.2.1", + "@vue/language-core": "^2.0.13", + "graphql": "^16.8.1", + "ts-morph": "~22.0.0" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/@gql.tada/internal": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/@gql.tada/internal/-/internal-0.2.1.tgz", + "integrity": "sha512-Nn+vcvIOUliUFaQwl+URNvqBnWd1MuDjvQo63Hy8+DkV3rbRSa0OCVXIR55EQRpIT7ZmPMzYyMQ2Bmj9Mk37vQ==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^16.8.1", + "typescript": "^5.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmmirror.com/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "dependencies": { + "@noble/hashes": "1.4.0" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.1.tgz", + "integrity": "sha512-92/y0TqNLRYOTXpm6Z7mnpvKAG9P7qmK7yJeRJSdzElNCUnsgbpAsGqerUboYRIQKzgfq4pWu9xVkgpWLfmNsw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.16.1.tgz", + "integrity": "sha512-ttWB6ZCfRLuDIUiE0yiu5gcqOsYjA5F7kEV1ggHMj20FwLZ8A1FMeahZJFl/pnOmcnD2QL0z4AcDuo27utGU8A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.16.1.tgz", + "integrity": "sha512-QLDvPLetbqjHojTGFw9+nuSP3YY/iz2k1cep6crYlr97sS+ZJ0W43b8Z0zC00+lnFZj6JSNxiA4DjboNQMuh1A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.16.1.tgz", + "integrity": "sha512-TAUK/D8khRrRIa1KwRzo8JNKk3tcqaeXWdtsiLgA8zmACWwlWLjPCJ4DULGHQrMkeBjp1Cd3Yuwx04lZgFx5Vg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.16.1.tgz", + "integrity": "sha512-KO+WGZjrh6zyFTD1alIFkfdtxf8B4BC+hqd3kBZHscPLvE5FR/6QKsyuCT0JlERxxYBSUKNUQ/UHyX5uwO1x2A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.16.1.tgz", + "integrity": "sha512-NqxbllzIB1WoAo4ThUXVtd21iiM5IHMTTXmXySKBLVcZvkU0HIZmatlP7hLzb5yQubcmdIeWmncd2NdsjocEiw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.16.1.tgz", + "integrity": "sha512-snma5NvV8y7IECQ5rq0sr0f3UUu+92NVmG/913JXJMcXo84h9ak9TA5UI9Cl2XRM9j3m37QwDBtEYnJzRkSmxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.16.1.tgz", + "integrity": "sha512-KOvqGprlD84ueivhCi2flvcUwDRD20mAsE3vxQNVEI2Di9tnPGAfEu6UcrSPZbM+jG2w1oSr43hrPo0RNg6GGg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.16.1.tgz", + "integrity": "sha512-/gsNwtiGLqYwN4vP+EIdUC6Q6LTlpupWqokqIndvZcjn9ig/5P01WyaYCU2wvfL/2Z82jp5kX8c1mDBOvCP3zg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.16.1.tgz", + "integrity": "sha512-uU8zuGkQfGqfD9w6VRJZI4IuG4JIfNxxJgEmLMAmPVHREKGsxFVfgHy5c6CexQF2vOfgjB33OsET3Vdn2lln9A==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.16.1.tgz", + "integrity": "sha512-lsjLtDgtcGFEuBP6yrXwkRN5/wKlvUZtfbKZZu0yaoNpiBL4epgnO21osAALIspVRnl4qZgyLFd8xjCYYWgwfw==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.1.tgz", + "integrity": "sha512-N2ZizKhUryqqrMfdCnjhJhZRgv61C6gK+hwVtCIKC8ts8J+go+vqENnGexwg21nHIOvLN5mBM8a7DI2vlyIOPg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.1.tgz", + "integrity": "sha512-5ICeMxqg66FrOA2AbnBQ2TJVxfvZsKLxmof0ibvPLaYtbsJqnTUtJOofgWb46Gjd4uZcA4rdsp4JCxegzQPqCg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.16.1.tgz", + "integrity": "sha512-1vIP6Ce02L+qWD7uZYRiFiuAJo3m9kARatWmFSnss0gZnVj2Id7OPUU9gm49JPGasgcR3xMqiH3fqBJ8t00yVg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.16.1.tgz", + "integrity": "sha512-Y3M92DcVsT6LoP+wrKpoUWPaazaP1fzbNkp0a0ZSj5Y//+pQVfVe/tQdsYQQy7dwXR30ZfALUIc9PCh9Izir6w==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.16.1.tgz", + "integrity": "sha512-x0fvpHMuF7fK5r8oZxSi8VYXkrVmRgubXpO/wcf15Lk3xZ4Jvvh5oG+u7Su1776A7XzVKZhD2eRc4t7H50gL3w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@scure/base": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/@scure/base/-/base-1.1.6.tgz", + "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==" + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "node_modules/@ts-morph/common": { + "version": "0.23.0", + "resolved": "https://registry.npmmirror.com/@ts-morph/common/-/common-0.23.0.tgz", + "integrity": "sha512-m7Lllj9n/S6sOkCkRftpM7L24uvmfXQFedlW/4hENcuJH1HHm9u5EgxZb9uVjQSCGrbBWBkOGgcTxNg36r6ywA==", + "dependencies": { + "fast-glob": "^3.3.2", + "minimatch": "^9.0.3", + "mkdirp": "^3.0.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@vitest/expect": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/@vitest/expect/-/expect-1.5.0.tgz", + "integrity": "sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==", + "dependencies": { + "@vitest/spy": "1.5.0", + "@vitest/utils": "1.5.0", + "chai": "^4.3.10" + } + }, + "node_modules/@vitest/runner": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/@vitest/runner/-/runner-1.5.0.tgz", + "integrity": "sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==", + "dependencies": { + "@vitest/utils": "1.5.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/@vitest/snapshot/-/snapshot-1.5.0.tgz", + "integrity": "sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==", + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + } + }, + "node_modules/@vitest/spy": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/@vitest/spy/-/spy-1.5.0.tgz", + "integrity": "sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==", + "dependencies": { + "tinyspy": "^2.2.0" + } + }, + "node_modules/@vitest/utils": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/@vitest/utils/-/utils-1.5.0.tgz", + "integrity": "sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + } + }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.2.0-alpha.10", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.2.0-alpha.10.tgz", + "integrity": "sha512-njVJLtpu0zMvDaEk7K5q4BRpOgbyEUljU++un9TfJoJNhxG0z/hWwpwgTRImO42EKvwIxF3XUzeMk+qatAFy7Q==", + "dependencies": { + "@volar/source-map": "2.2.0-alpha.10" + } + }, + "node_modules/@volar/source-map": { + "version": "2.2.0-alpha.10", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-2.2.0-alpha.10.tgz", + "integrity": "sha512-nrdWApVkP5cksAnDEyy1JD9rKdwOJsEq1B+seWO4vNXmZNcxQQCx4DULLBvKt7AzRUAQiAuw5aQkb9RBaSqdVA==", + "dependencies": { + "muggle-string": "^0.4.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.23", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.23.tgz", + "integrity": "sha512-HAFmuVEwNqNdmk+w4VCQ2pkLk1Vw4XYiiyxEp3z/xvl14aLTUBw2OfVH3vBcx+FtGsynQLkkhK410Nah1N2yyQ==", + "dependencies": { + "@babel/parser": "^7.24.1", + "@vue/shared": "3.4.23", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.23", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.23.tgz", + "integrity": "sha512-t0b9WSTnCRrzsBGrDd1LNR5HGzYTr7LX3z6nNBG+KGvZLqrT0mY6NsMzOqlVMBKKXKVuusbbB5aOOFgTY+senw==", + "dependencies": { + "@vue/compiler-core": "3.4.23", + "@vue/shared": "3.4.23" + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-2.0.14.tgz", + "integrity": "sha512-3q8mHSNcGTR7sfp2X6jZdcb4yt8AjBXAfKk0qkZIh7GAJxOnoZ10h5HToZglw4ToFvAnq+xu/Z2FFbglh9Icag==", + "dependencies": { + "@volar/language-core": "2.2.0-alpha.10", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.4.23", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.23.tgz", + "integrity": "sha512-wBQ0gvf+SMwsCQOyusNw/GoXPV47WGd1xB5A1Pgzy0sQ3Bi5r5xm3n+92y3gCnB3MWqnRDdvfkRGxhKtbBRNgg==" + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/code-block-writer": { + "version": "13.0.1", + "resolved": "https://registry.npmmirror.com/code-block-writer/-/code-block-writer-13.0.1.tgz", + "integrity": "sha512-c5or4P6erEA69TxaxTNcHUNcIn+oyxSRTOWV+pSYF+z4epXqNvwvJ70XPGjPNgue83oAFAPBRQYwpAJ/Hpe/Sg==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/esrun": { + "version": "3.2.26", + "resolved": "https://registry.npmmirror.com/esrun/-/esrun-3.2.26.tgz", + "integrity": "sha512-gDjP87qj4RW0BryZXPY3/L161hPo9uG6luBTjLsuHG3cKnhSMrzB7eNzSzvDyBLg7OgugyvzSgB2ov7mZ/oa7Q==", + "dependencies": { + "@digitak/grubber": "^3.1.4", + "chokidar": "^3.5.1", + "esbuild": "^0.17.4" + }, + "bin": { + "esrun": "bin.js" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "engines": { + "node": "*" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "engines": { + "node": ">=16" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gql.tada": { + "version": "1.5.5", + "resolved": "https://registry.npmmirror.com/gql.tada/-/gql.tada-1.5.5.tgz", + "integrity": "sha512-S9pA96CmOv25MTPqyDT/BA5yQBbCzfY64ltM/POxeR+NLftNh6hP4wIm2Hu1KCpS94I94naWbETD0c+mwiBlwA==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5", + "@gql.tada/cli-utils": "1.1.1", + "@gql.tada/internal": "0.2.1" + }, + "bin": { + "gql-tada": "bin/cli.js", + "gql.tada": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmmirror.com/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmmirror.com/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mlly": { + "version": "1.6.1", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.6.1.tgz", + "integrity": "sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.0.3", + "ufo": "^1.3.2" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/navi-sdk": { + "version": "1.1.20", + "resolved": "https://registry.npmmirror.com/navi-sdk/-/navi-sdk-1.1.20.tgz", + "integrity": "sha512-SX27OeGWQpCT4TFBVbx8yi0ik5jhOaytmqsZnezmfTDDcGLfBZFuWySDkxSad5w//NR5vu0UjGsLQHuRiMJ6Gg==", + "dependencies": { + "@mysten/sui.js": "^0.50.1", + "axios": "^1.6.7", + "esrun": "^3.2.26", + "tsconfig-paths": "^4.2.0", + "vitest": "^1.3.1" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pkg-types": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.0.tgz", + "integrity": "sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.6.1", + "pathe": "^1.1.2" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.16.1", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.16.1.tgz", + "integrity": "sha512-5CaD3MPDlPKfhqzRvWXK96G6ELJfPZNb3LHiZxTHgDdC6jvwfGz2E8nY+9g1ONk4ttHsK1WaFP19Js4PSr1E3g==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.16.1", + "@rollup/rollup-android-arm64": "4.16.1", + "@rollup/rollup-darwin-arm64": "4.16.1", + "@rollup/rollup-darwin-x64": "4.16.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.16.1", + "@rollup/rollup-linux-arm-musleabihf": "4.16.1", + "@rollup/rollup-linux-arm64-gnu": "4.16.1", + "@rollup/rollup-linux-arm64-musl": "4.16.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.16.1", + "@rollup/rollup-linux-riscv64-gnu": "4.16.1", + "@rollup/rollup-linux-s390x-gnu": "4.16.1", + "@rollup/rollup-linux-x64-gnu": "4.16.1", + "@rollup/rollup-linux-x64-musl": "4.16.1", + "@rollup/rollup-win32-arm64-msvc": "4.16.1", + "@rollup/rollup-win32-ia32-msvc": "4.16.1", + "@rollup/rollup-win32-x64-msvc": "4.16.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dependencies": { + "js-tokens": "^9.0.0" + } + }, + "node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==" + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/ts-morph": { + "version": "22.0.0", + "resolved": "https://registry.npmmirror.com/ts-morph/-/ts-morph-22.0.0.tgz", + "integrity": "sha512-M9MqFGZREyeb5fTl6gNHKZLqBQA0TjA1lea+CR48R8EBTDuWrNqW6ccC5QvjNR4s6wDumD3LTCjOFSp9iwlzaw==", + "dependencies": { + "@ts-morph/common": "~0.23.0", + "code-block-writer": "^13.0.1" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" + }, + "node_modules/vite": { + "version": "5.2.10", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.2.10.tgz", + "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/vite-node/-/vite-node-1.5.0.tgz", + "integrity": "sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/vitest": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/vitest/-/vitest-1.5.0.tgz", + "integrity": "sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==", + "dependencies": { + "@vitest/expect": "1.5.0", + "@vitest/runner": "1.5.0", + "@vitest/snapshot": "1.5.0", + "@vitest/spy": "1.5.0", + "@vitest/utils": "1.5.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.5.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.5.0", + "@vitest/ui": "1.5.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "engines": { + "node": ">=12.20" + } + } + } +} diff --git a/mover/w626w/code/task6/package.json b/mover/w626w/code/task6/package.json index 13ff0810f..1f0584ddf 100644 --- a/mover/w626w/code/task6/package.json +++ b/mover/w626w/code/task6/package.json @@ -1,17 +1,17 @@ -{ - "name": "w626w", - "version": "1.0.0", - "description": "", - "main": "index.js", - "type": "module", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "start":"node index.js" - - }, - "author": "", - "license": "ISC", - "dependencies": { - "navi-sdk": "^1.1.20" - } -} +{ + "name": "w626w", + "version": "1.0.0", + "description": "", + "main": "index.js", + "type": "module", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start":"node index.js" + + }, + "author": "", + "license": "ISC", + "dependencies": { + "navi-sdk": "^1.1.20" + } +} diff --git a/mover/w626w/notes/pop.png b/mover/w626w/notes/pop.png new file mode 100644 index 000000000..3c112d1bf Binary files /dev/null and b/mover/w626w/notes/pop.png differ diff --git a/mover/w626w/readme.md b/mover/w626w/readme.md index d68058c43..73ee11b44 100644 --- a/mover/w626w/readme.md +++ b/mover/w626w/readme.md @@ -1,36 +1,44 @@ -## 基本信息 -- Sui钱包地址: `0x472478f05c79a17b04f2a201e845cd6b7d82099bad3d23397ab254c5a5fa6486` -> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 -- github: `w626w` - -## 个人简介 -- 工作经验: 0年 -- 技术栈: `java` `C++` -- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 -- 联系方式: tg: `14708266023` - -## 任务 - -## 01 hello move -- [x] package id: 0x56e28c9bb3b80b39ea847dd306b753cffd4b6ba15494019cc08f3ee849ab493e - -## 02 move coin -- [x] My Coin package id : 0x47cf688dff2f021c693de8bba024d89d1be4552703d951f273884a11a9964cc4 -- [x] Faucet package id : 0x47cf688dff2f021c693de8bba024d89d1be4552703d951f273884a11a9964cc4 -- [x] 转账 `My Coin` hash:Fen34FGHbzYuG2Uymy41y1LexU8o6Xa353L9XmD6kwa7 - -## 03 move NFT -- [x] nft package id :0x581d4d7726bd1878cbd617e2bcf205923ede197d09a158809767c567ce128194 -- [x] nft object id : 0x5f4c447290d7a2db15ee3f4ec70f38eb228da19394e7d60595265590a9513a73 -- [x] 转账 nft hash:Em2ee3XpTVG3vGDCcxtWtFLQQUT9HkJvB6GANDQrMhAi - -## 04 Move Game -- [x] game package id :0x788a3e00567606027e012bd3b73256aacb20e81082076fbe9c1f9b4a061a8e33 -- [x] call game hash:AdegAiWcfdSkmfu5bvBhxyT6RpPytr7i4LkVisKwXovT - -## 05 Move Swap -- [x] swap package id :0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 -- [x] call swap hash:4z67RvQRtfc9oTZkRQfcSfj4Ss5HiQN1DX6zmVXqQof - -## 06 SDK PTB -- [x] save hash :BQ4UxfvYNhsngy8mBEnfDGk2yUqubcPvMxjQNFJw44cy +## 基本信息 +- Sui钱包地址: `0x472478f05c79a17b04f2a201e845cd6b7d82099bad3d23397ab254c5a5fa6486` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `w626w` + +## 个人简介 +- 工作经验: 0年 +- 技术栈: `java` `C++` +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `14708266023` + +## 任务 + +## 01 hello move +- [x] package id: 0x56e28c9bb3b80b39ea847dd306b753cffd4b6ba15494019cc08f3ee849ab493e + +## 02 move coin +- [x] My Coin package id : 0x47cf688dff2f021c693de8bba024d89d1be4552703d951f273884a11a9964cc4 +- [x] Faucet package id : 0x47cf688dff2f021c693de8bba024d89d1be4552703d951f273884a11a9964cc4 +- [x] 转账 `My Coin` hash:Fen34FGHbzYuG2Uymy41y1LexU8o6Xa353L9XmD6kwa7 + +## 03 move NFT +- [x] nft package id :0x581d4d7726bd1878cbd617e2bcf205923ede197d09a158809767c567ce128194 +- [x] nft object id : 0x5f4c447290d7a2db15ee3f4ec70f38eb228da19394e7d60595265590a9513a73 +- [x] 转账 nft hash:Em2ee3XpTVG3vGDCcxtWtFLQQUT9HkJvB6GANDQrMhAi + +## 04 Move Game +- [x] game package id :0x788a3e00567606027e012bd3b73256aacb20e81082076fbe9c1f9b4a061a8e33 +- [x] call game hash:AdegAiWcfdSkmfu5bvBhxyT6RpPytr7i4LkVisKwXovT + +## 05 Move Swap +- [x] swap package id :0xd6f4b1d25a401c678fcccdb72680866abc45f1c737c48e3bad2a08f83b8a0317 +- [x] call swap hash:4z67RvQRtfc9oTZkRQfcSfj4Ss5HiQN1DX6zmVXqQof + +## 06 SDK PTB +- [x] save hash :BQ4UxfvYNhsngy8mBEnfDGk2yUqubcPvMxjQNFJw44cy + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./notes/pop.png) +- [] flag hash :F2rEFg3PLPkZSn8xVxEXTHYR6f6xASkgTw7iCBtnsk9u + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : \ No newline at end of file diff --git a/mover/wahack/code/dapp/.eslintrc.json b/mover/wahack/code/dapp/.eslintrc.json new file mode 100644 index 000000000..bffb357a7 --- /dev/null +++ b/mover/wahack/code/dapp/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/mover/wahack/code/dapp/.gitignore b/mover/wahack/code/dapp/.gitignore new file mode 100644 index 000000000..fd3dbb571 --- /dev/null +++ b/mover/wahack/code/dapp/.gitignore @@ -0,0 +1,36 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/mover/wahack/code/dapp/README.md b/mover/wahack/code/dapp/README.md new file mode 100644 index 000000000..c4033664f --- /dev/null +++ b/mover/wahack/code/dapp/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/mover/wahack/code/dapp/next.config.mjs b/mover/wahack/code/dapp/next.config.mjs new file mode 100644 index 000000000..4678774e6 --- /dev/null +++ b/mover/wahack/code/dapp/next.config.mjs @@ -0,0 +1,4 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = {}; + +export default nextConfig; diff --git a/mover/wahack/code/dapp/package.json b/mover/wahack/code/dapp/package.json new file mode 100644 index 000000000..2f80f53e5 --- /dev/null +++ b/mover/wahack/code/dapp/package.json @@ -0,0 +1,34 @@ +{ + "name": "move-dapp", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@chakra-ui/next-js": "^2.2.0", + "@chakra-ui/react": "^2.8.2", + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.11.5", + "@mysten/dapp-kit": "^0.14.10", + "@mysten/sui": "^1.2.0", + "@tanstack/react-query": "^5.49.2", + "framer-motion": "^11.2.12", + "next": "14.2.4", + "react": "^18", + "react-dom": "^18" + }, + "devDependencies": { + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "eslint": "^8", + "eslint-config-next": "14.2.4", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "typescript": "^5" + } +} diff --git a/mover/wahack/code/dapp/pnpm-lock.yaml b/mover/wahack/code/dapp/pnpm-lock.yaml new file mode 100644 index 000000000..4110fe659 --- /dev/null +++ b/mover/wahack/code/dapp/pnpm-lock.yaml @@ -0,0 +1,5737 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@chakra-ui/next-js': + specifier: ^2.2.0 + version: 2.2.0(@chakra-ui/react@2.8.2)(@emotion/react@11.11.4)(next@14.2.4)(react@18.3.1) + '@chakra-ui/react': + specifier: ^2.8.2 + version: 2.8.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.3)(framer-motion@11.2.12)(react-dom@18.3.1)(react@18.3.1) + '@emotion/react': + specifier: ^11.11.4 + version: 11.11.4(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': + specifier: ^11.11.5 + version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1) + '@mysten/dapp-kit': + specifier: ^0.14.10 + version: 0.14.10(@tanstack/react-query@5.49.2)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(svelte@4.2.18)(typescript@5.5.2) + '@mysten/sui': + specifier: ^1.2.0 + version: 1.2.0(svelte@4.2.18)(typescript@5.5.2) + '@tanstack/react-query': + specifier: ^5.49.2 + version: 5.49.2(react@18.3.1) + framer-motion: + specifier: ^11.2.12 + version: 11.2.12(react-dom@18.3.1)(react@18.3.1) + next: + specifier: 14.2.4 + version: 14.2.4(react-dom@18.3.1)(react@18.3.1) + react: + specifier: ^18 + version: 18.3.1 + react-dom: + specifier: ^18 + version: 18.3.1(react@18.3.1) + +devDependencies: + '@types/node': + specifier: ^20 + version: 20.14.9 + '@types/react': + specifier: ^18 + version: 18.3.3 + '@types/react-dom': + specifier: ^18 + version: 18.3.0 + eslint: + specifier: ^8 + version: 8.57.0 + eslint-config-next: + specifier: 14.2.4 + version: 14.2.4(eslint@8.57.0)(typescript@5.5.2) + postcss: + specifier: ^8 + version: 8.4.39 + tailwindcss: + specifier: ^3.4.1 + version: 3.4.4 + typescript: + specifier: ^5 + version: 5.5.2 + +packages: + + /@0no-co/graphql.web@1.0.7(graphql@16.9.0): + resolution: {integrity: sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + graphql: + optional: true + dependencies: + graphql: 16.9.0 + dev: false + + /@0no-co/graphqlsp@1.12.10(graphql@16.9.0)(typescript@5.5.2): + resolution: {integrity: sha512-PrkGVc+XhSjU+7ALSjd4ANlyRZkKOdmOGqj7bqPcKI6C+opuN5MeXSBWKE9383EW27/+MkY+/U1LAaCoZKtkfQ==} + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + typescript: ^5.0.0 + dependencies: + '@gql.tada/internal': 1.0.2(graphql@16.9.0)(typescript@5.5.2) + graphql: 16.9.0 + typescript: 5.5.2 + dev: false + + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: true + + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + dev: false + + /@babel/code-frame@7.24.7: + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 + dev: false + + /@babel/generator@7.24.7: + resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.7 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + dev: false + + /@babel/helper-environment-visitor@7.24.7: + resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.7 + dev: false + + /@babel/helper-function-name@7.24.7: + resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 + dev: false + + /@babel/helper-hoist-variables@7.24.7: + resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.7 + dev: false + + /@babel/helper-module-imports@7.24.7: + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/helper-split-export-declaration@7.24.7: + resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.7 + dev: false + + /@babel/helper-string-parser@7.24.7: + resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/helper-validator-identifier@7.24.7: + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/highlight@7.24.7: + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 + dev: false + + /@babel/parser@7.24.7: + resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.24.7 + dev: false + + /@babel/runtime@7.24.7: + resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + dev: false + + /@babel/template@7.24.7: + resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + dev: false + + /@babel/traverse@7.24.7: + resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + debug: 4.3.5 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/types@7.24.7: + resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + dev: false + + /@chakra-ui/accordion@2.3.1(@chakra-ui/system@2.6.2)(framer-motion@11.2.12)(react@18.3.1): + resolution: {integrity: sha512-FSXRm8iClFyU+gVaXisOSEw0/4Q+qZbFRiuhIAkVU6Boj0FxAMrlo9a8AV5TuF77rgaHytCdHk0Ng+cyUijrag==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/descendant': 3.1.0(react@18.3.1) + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + '@chakra-ui/transition': 2.1.0(framer-motion@11.2.12)(react@18.3.1) + framer-motion: 11.2.12(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/alert@2.2.2(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-jHg4LYMRNOJH830ViLuicjb3F+v6iriE/2G5T+Sd0Hna04nukNJ1MxUmBPE+vI22me2dIflfelu2v9wdB6Pojw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/anatomy@2.2.2: + resolution: {integrity: sha512-MV6D4VLRIHr4PkW4zMyqfrNS1mPlCTiCXwvYGtDFQYr+xHFfonhAuf9WjsSc0nyp2m0OdkSLnzmVKkZFLo25Tg==} + dev: false + + /@chakra-ui/avatar@2.3.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-8gKSyLfygnaotbJbDMHDiJoF38OHXUYVme4gGxZ1fLnQEdPVEaIWfH+NndIjOM0z8S+YEFnT9KyGMUtvPrBk3g==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/image': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/react-children-utils': 2.0.6(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/breadcrumb@2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-4cWCG24flYBxjruRi4RJREWTGF74L/KzI2CognAW/d/zWR0CjiScuJhf37Am3LFbCySP6WSoyBOtTIoTA4yLEA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-children-utils': 2.0.6(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/breakpoint-utils@2.0.8: + resolution: {integrity: sha512-Pq32MlEX9fwb5j5xx8s18zJMARNHlQZH2VH1RZgfgRDpp7DcEgtRW5AInfN5CfqdHLO1dGxA7I3MqEuL5JnIsA==} + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + dev: false + + /@chakra-ui/button@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-95CplwlRKmmUXkdEp/21VkEWgnwcx2TOBG6NfYlsuLBDHSLlo5FKIiE2oSi4zXc4TLcopGcWPNcm/NDaSC5pvA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/card@2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-xUB/k5MURj4CtPAhdSoXZidUbm8j3hci9vnc+eZJVDqhDOShNlD6QeniQNRPRys4lWAQLCbFcrwL29C8naDi6g==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/checkbox@2.3.2(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-85g38JIXMEv6M+AcyIGLh7igNtfpAN6KGQFYxY9tBj0eWvWk4NKQxvqqyVta0bSAyIl1rixNIIezNpNWk2iO4g==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + '@chakra-ui/visually-hidden': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@zag-js/focus-visible': 0.16.0 + react: 18.3.1 + dev: false + + /@chakra-ui/clickable@2.1.0(react@18.3.1): + resolution: {integrity: sha512-flRA/ClPUGPYabu+/GLREZVZr9j2uyyazCAUHAdrTUEdDYCr31SVGhgh7dgKdtq23bOvAQJpIJjw/0Bs0WvbXw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + react: 18.3.1 + dev: false + + /@chakra-ui/close-button@2.1.1(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-gnpENKOanKexswSVpVz7ojZEALl2x5qjLYNqSQGbxz+aP9sOXPfUS56ebyBrre7T7exuWGiFeRwnM0oVeGPaiw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/color-mode@2.2.0(react@18.3.1): + resolution: {integrity: sha512-niTEA8PALtMWRI9wJ4LL0CSBDo8NBfLNp4GD6/0hstcm3IlbBHTVKxN6HwSaoNYfphDQLxCjT4yG+0BJA5tFpg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/control-box@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-gVrRDyXFdMd8E7rulL0SKeoljkLQiPITFnsyMO8EFHNZ+AHt5wK4LIguYVEq88APqAGZGfHFWXr79RYrNiE3Mg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/counter@2.1.0(react@18.3.1): + resolution: {integrity: sha512-s6hZAEcWT5zzjNz2JIWUBzRubo9la/oof1W7EKZVVfPYHERnl5e16FmBC79Yfq8p09LQ+aqFKm/etYoJMMgghw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/number-utils': 2.0.7 + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + react: 18.3.1 + dev: false + + /@chakra-ui/css-reset@2.3.0(@emotion/react@11.11.4)(react@18.3.1): + resolution: {integrity: sha512-cQwwBy5O0jzvl0K7PLTLgp8ijqLPKyuEMiDXwYzl95seD3AoeuoCLyzZcJtVqaUZ573PiBdAbY/IlZcwDOItWg==} + peerDependencies: + '@emotion/react': '>=10.0.35' + react: '>=18' + dependencies: + '@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/descendant@3.1.0(react@18.3.1): + resolution: {integrity: sha512-VxCIAir08g5w27klLyi7PVo8BxhW4tgU/lxQyujkmi4zx7hT9ZdrcQLAted/dAa+aSIZ14S1oV0Q9lGjsAdxUQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/dom-utils@2.1.0: + resolution: {integrity: sha512-ZmF2qRa1QZ0CMLU8M1zCfmw29DmPNtfjR9iTo74U5FPr3i1aoAh7fbJ4qAlZ197Xw9eAW28tvzQuoVWeL5C7fQ==} + dev: false + + /@chakra-ui/editable@3.1.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-j2JLrUL9wgg4YA6jLlbU88370eCRyor7DZQD9lzpY95tSOXpTljeg3uF9eOmDnCs6fxp3zDWIfkgMm/ExhcGTg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-focus-on-pointer-down': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/event-utils@2.0.8: + resolution: {integrity: sha512-IGM/yGUHS+8TOQrZGpAKOJl/xGBrmRYJrmbHfUE7zrG3PpQyXvbLDP1M+RggkCFVgHlJi2wpYIf0QtQlU0XZfw==} + dev: false + + /@chakra-ui/focus-lock@2.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-EmGx4PhWGjm4dpjRqM4Aa+rCWBxP+Rq8Uc/nAVnD4YVqkEhBkrPTpui2lnjsuxqNaZ24fIAZ10cF1hlpemte/w==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.1.0 + react: 18.3.1 + react-focus-lock: 2.12.1(@types/react@18.3.3)(react@18.3.1) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@chakra-ui/form-control@2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-wehLC1t4fafCVJ2RvJQT2jyqsAwX7KymmiGqBu7nQoQz8ApTkGABWpo/QwDh3F/dBLrouHDoOvGmYTqft3Mirw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/hooks@2.2.1(react@18.3.1): + resolution: {integrity: sha512-RQbTnzl6b1tBjbDPf9zGRo9rf/pQMholsOudTxjy4i9GfTfz6kgp5ValGjQm2z7ng6Z31N1cnjZ1AlSzQ//ZfQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-utils': 2.0.12(react@18.3.1) + '@chakra-ui/utils': 2.0.15 + compute-scroll-into-view: 3.0.3 + copy-to-clipboard: 3.3.3 + react: 18.3.1 + dev: false + + /@chakra-ui/icon@3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-xxjGLvlX2Ys4H0iHrI16t74rG9EBcpFvJ3Y3B7KMQTrnW34Kf7Da/UC8J67Gtx85mTHW020ml85SVPKORWNNKQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/image@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-bskumBYKLiLMySIWDGcz0+D9Th0jPvmX6xnRMs4o92tT3Od/bW26lahmV2a2Op2ItXeCmRMY+XxJH5Gy1i46VA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/input@2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-GiBbb3EqAA8Ph43yGa6Mc+kUPjh4Spmxp1Pkelr8qtudpc3p2PJOOebLpd90mcqw8UePPa+l6YhhPtp6o0irhw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/object-utils': 2.1.0 + '@chakra-ui/react-children-utils': 2.0.6(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/layout@2.3.1(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-nXuZ6WRbq0WdgnRgLw+QuxWAHuhDtVX8ElWqcTK+cSMFg/52eVP47czYBE5F35YhnoW2XBwfNoNgZ7+e8Z01Rg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/breakpoint-utils': 2.0.8 + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/object-utils': 2.1.0 + '@chakra-ui/react-children-utils': 2.0.6(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/lazy-utils@2.0.5: + resolution: {integrity: sha512-UULqw7FBvcckQk2n3iPO56TMJvDsNv0FKZI6PlUNJVaGsPbsYxK/8IQ60vZgaTVPtVcjY6BE+y6zg8u9HOqpyg==} + dev: false + + /@chakra-ui/live-region@2.1.0(react@18.3.1): + resolution: {integrity: sha512-ZOxFXwtaLIsXjqnszYYrVuswBhnIHHP+XIgK1vC6DePKtyK590Wg+0J0slDwThUAd4MSSIUa/nNX84x1GMphWw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.3.1 + dev: false + + /@chakra-ui/media-query@3.3.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-IsTGgFLoICVoPRp9ykOgqmdMotJG0CnPsKvGQeSFOB/dZfIujdVb14TYxDU4+MURXry1MhJ7LzZhv+Ml7cr8/g==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/breakpoint-utils': 2.0.8 + '@chakra-ui/react-env': 3.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/menu@2.2.1(@chakra-ui/system@2.6.2)(framer-motion@11.2.12)(react@18.3.1): + resolution: {integrity: sha512-lJS7XEObzJxsOwWQh7yfG4H8FzFPRP5hVPN/CL+JzytEINCSBvsCDHrYPQGp7jzpCi8vnTqQQGQe0f8dwnXd2g==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/clickable': 2.1.0(react@18.3.1) + '@chakra-ui/descendant': 3.1.0(react@18.3.1) + '@chakra-ui/lazy-utils': 2.0.5 + '@chakra-ui/popper': 3.1.0(react@18.3.1) + '@chakra-ui/react-children-utils': 2.0.6(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-animation-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-disclosure': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-focus-effect': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-outside-click': 2.2.0(react@18.3.1) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + '@chakra-ui/transition': 2.1.0(framer-motion@11.2.12)(react@18.3.1) + framer-motion: 11.2.12(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/modal@2.3.1(@chakra-ui/system@2.6.2)(@types/react@18.3.3)(framer-motion@11.2.12)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-TQv1ZaiJMZN+rR9DK0snx/OPwmtaGH1HbZtlYt4W4s6CzyK541fxLRTjIXfEzIGpvNW+b6VFuFjbcR78p4DEoQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/focus-lock': 2.1.0(@types/react@18.3.3)(react@18.3.1) + '@chakra-ui/portal': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + '@chakra-ui/transition': 2.1.0(framer-motion@11.2.12)(react@18.3.1) + aria-hidden: 1.2.4 + framer-motion: 11.2.12(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.5.10(@types/react@18.3.3)(react@18.3.1) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@chakra-ui/next-js@2.2.0(@chakra-ui/react@2.8.2)(@emotion/react@11.11.4)(next@14.2.4)(react@18.3.1): + resolution: {integrity: sha512-brCz0UEOlImX4Np2jDIaljZJkW6kiDSuXG5erxvYjZlklLhmti1zj0o1sSjt5yff1xndfgHoOJb+BYG5wx+vDg==} + peerDependencies: + '@chakra-ui/react': '>=2.4.0' + '@emotion/react': '>=11' + next: '>=13' + react: '>=18' + dependencies: + '@chakra-ui/react': 2.8.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.3)(framer-motion@11.2.12)(react-dom@18.3.1)(react@18.3.1) + '@emotion/cache': 11.11.0 + '@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1) + next: 14.2.4(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/number-input@2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-pfOdX02sqUN0qC2ysuvgVDiws7xZ20XDIlcNhva55Jgm095xjm8eVdIBfNm3SFbSUNxyXvLTW/YQanX74tKmuA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/counter': 2.1.0(react@18.3.1) + '@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-event-listener': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-interval': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/number-utils@2.0.7: + resolution: {integrity: sha512-yOGxBjXNvLTBvQyhMDqGU0Oj26s91mbAlqKHiuw737AXHt0aPllOthVUqQMeaYLwLCjGMg0jtI7JReRzyi94Dg==} + dev: false + + /@chakra-ui/object-utils@2.1.0: + resolution: {integrity: sha512-tgIZOgLHaoti5PYGPTwK3t/cqtcycW0owaiOXoZOcpwwX/vlVb+H1jFsQyWiiwQVPt9RkoSLtxzXamx+aHH+bQ==} + dev: false + + /@chakra-ui/pin-input@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-x4vBqLStDxJFMt+jdAHHS8jbh294O53CPQJoL4g228P513rHylV/uPscYUHrVJXRxsHfRztQO9k45jjTYaPRMw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/descendant': 3.1.0(react@18.3.1) + '@chakra-ui/react-children-utils': 2.0.6(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/popover@2.2.1(@chakra-ui/system@2.6.2)(framer-motion@11.2.12)(react@18.3.1): + resolution: {integrity: sha512-K+2ai2dD0ljvJnlrzesCDT9mNzLifE3noGKZ3QwLqd/K34Ym1W/0aL1ERSynrcG78NKoXS54SdEzkhCZ4Gn/Zg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/lazy-utils': 2.0.5 + '@chakra-ui/popper': 3.1.0(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-animation-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-disclosure': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-focus-effect': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-focus-on-pointer-down': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + framer-motion: 11.2.12(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/popper@3.1.0(react@18.3.1): + resolution: {integrity: sha512-ciDdpdYbeFG7og6/6J8lkTFxsSvwTdMLFkpVylAF6VNC22jssiWfquj2eyD4rJnzkRFPvIWJq8hvbfhsm+AjSg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@popperjs/core': 2.11.8 + react: 18.3.1 + dev: false + + /@chakra-ui/portal@2.1.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-9q9KWf6SArEcIq1gGofNcFPSWEyl+MfJjEUg/un1SMlQjaROOh3zYr+6JAwvcORiX7tyHosnmWC3d3wI2aPSQg==} + peerDependencies: + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@chakra-ui/progress@2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-qUXuKbuhN60EzDD9mHR7B67D7p/ZqNS2Aze4Pbl1qGGZfulPW0PY8Rof32qDtttDQBkzQIzFGE8d9QpAemToIQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/provider@2.4.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-w0Tef5ZCJK1mlJorcSjItCSbyvVuqpvyWdxZiVQmE6fvSJR83wZof42ux0+sfWD+I7rHSfj+f9nzhNaEWClysw==} + peerDependencies: + '@emotion/react': ^11.0.0 + '@emotion/styled': ^11.0.0 + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/css-reset': 2.3.0(@emotion/react@11.11.4)(react@18.3.1) + '@chakra-ui/portal': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/react-env': 3.1.0(react@18.3.1) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + '@chakra-ui/utils': 2.0.15 + '@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@chakra-ui/radio@2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-n10M46wJrMGbonaghvSRnZ9ToTv/q76Szz284gv4QUWvyljQACcGrXIONUnQ3BIwbOfkRqSk7Xl/JgZtVfll+w==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + '@zag-js/focus-visible': 0.16.0 + react: 18.3.1 + dev: false + + /@chakra-ui/react-children-utils@2.0.6(react@18.3.1): + resolution: {integrity: sha512-QVR2RC7QsOsbWwEnq9YduhpqSFnZGvjjGREV8ygKi8ADhXh93C8azLECCUVgRJF2Wc+So1fgxmjLcbZfY2VmBA==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.3.1 + dev: false + + /@chakra-ui/react-context@2.1.0(react@18.3.1): + resolution: {integrity: sha512-iahyStvzQ4AOwKwdPReLGfDesGG+vWJfEsn0X/NoGph/SkN+HXtv2sCfYFFR9k7bb+Kvc6YfpLlSuLvKMHi2+w==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.3.1 + dev: false + + /@chakra-ui/react-env@3.1.0(react@18.3.1): + resolution: {integrity: sha512-Vr96GV2LNBth3+IKzr/rq1IcnkXv+MLmwjQH6C8BRtn3sNskgDFD5vLkVXcEhagzZMCh8FR3V/bzZPojBOyNhw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/react-types@2.0.7(react@18.3.1): + resolution: {integrity: sha512-12zv2qIZ8EHwiytggtGvo4iLT0APris7T0qaAWqzpUGS0cdUtR8W+V1BJ5Ocq+7tA6dzQ/7+w5hmXih61TuhWQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-animation-state@2.1.0(react@18.3.1): + resolution: {integrity: sha512-CFZkQU3gmDBwhqy0vC1ryf90BVHxVN8cTLpSyCpdmExUEtSEInSCGMydj2fvn7QXsz/za8JNdO2xxgJwxpLMtg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.1.0 + '@chakra-ui/react-use-event-listener': 2.1.0(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-callback-ref@2.1.0(react@18.3.1): + resolution: {integrity: sha512-efnJrBtGDa4YaxDzDE90EnKD3Vkh5a1t3w7PhnRQmsphLy3g2UieasoKTlT2Hn118TwDjIv5ZjHJW6HbzXA9wQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-controllable-state@2.1.0(react@18.3.1): + resolution: {integrity: sha512-QR/8fKNokxZUs4PfxjXuwl0fj/d71WPrmLJvEpCTkHjnzu7LnYvzoe2wB867IdooQJL0G1zBxl0Dq+6W1P3jpg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-disclosure@2.1.0(react@18.3.1): + resolution: {integrity: sha512-Ax4pmxA9LBGMyEZJhhUZobg9C0t3qFE4jVF1tGBsrLDcdBeLR9fwOogIPY9Hf0/wqSlAryAimICbr5hkpa5GSw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-event-listener@2.1.0(react@18.3.1): + resolution: {integrity: sha512-U5greryDLS8ISP69DKDsYcsXRtAdnTQT+jjIlRYZ49K/XhUR/AqVZCK5BkR1spTDmO9H8SPhgeNKI70ODuDU/Q==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-focus-effect@2.1.0(react@18.3.1): + resolution: {integrity: sha512-xzVboNy7J64xveLcxTIJ3jv+lUJKDwRM7Szwn9tNzUIPD94O3qwjV7DDCUzN2490nSYDF4OBMt/wuDBtaR3kUQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.1.0 + '@chakra-ui/react-use-event-listener': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-focus-on-pointer-down@2.1.0(react@18.3.1): + resolution: {integrity: sha512-2jzrUZ+aiCG/cfanrolsnSMDykCAbv9EK/4iUyZno6BYb3vziucmvgKuoXbMPAzWNtwUwtuMhkby8rc61Ue+Lg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-event-listener': 2.1.0(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-interval@2.1.0(react@18.3.1): + resolution: {integrity: sha512-8iWj+I/+A0J08pgEXP1J1flcvhLBHkk0ln7ZvGIyXiEyM6XagOTJpwNhiu+Bmk59t3HoV/VyvyJTa+44sEApuw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-latest-ref@2.1.0(react@18.3.1): + resolution: {integrity: sha512-m0kxuIYqoYB0va9Z2aW4xP/5b7BzlDeWwyXCH6QpT2PpW3/281L3hLCm1G0eOUcdVlayqrQqOeD6Mglq+5/xoQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-merge-refs@2.1.0(react@18.3.1): + resolution: {integrity: sha512-lERa6AWF1cjEtWSGjxWTaSMvneccnAVH4V4ozh8SYiN9fSPZLlSG3kNxfNzdFvMEhM7dnP60vynF7WjGdTgQbQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-outside-click@2.2.0(react@18.3.1): + resolution: {integrity: sha512-PNX+s/JEaMneijbgAM4iFL+f3m1ga9+6QK0E5Yh4s8KZJQ/bLwZzdhMz8J/+mL+XEXQ5J0N8ivZN28B82N1kNw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-pan-event@2.1.0(react@18.3.1): + resolution: {integrity: sha512-xmL2qOHiXqfcj0q7ZK5s9UjTh4Gz0/gL9jcWPA6GVf+A0Od5imEDa/Vz+533yQKWiNSm1QGrIj0eJAokc7O4fg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/event-utils': 2.0.8 + '@chakra-ui/react-use-latest-ref': 2.1.0(react@18.3.1) + framesync: 6.1.2 + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-previous@2.1.0(react@18.3.1): + resolution: {integrity: sha512-pjxGwue1hX8AFcmjZ2XfrQtIJgqbTF3Qs1Dy3d1krC77dEsiCUbQ9GzOBfDc8pfd60DrB5N2tg5JyHbypqh0Sg==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-safe-layout-effect@2.1.0(react@18.3.1): + resolution: {integrity: sha512-Knbrrx/bcPwVS1TorFdzrK/zWA8yuU/eaXDkNj24IrKoRlQrSBFarcgAEzlCHtzuhufP3OULPkELTzz91b0tCw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-size@2.1.0(react@18.3.1): + resolution: {integrity: sha512-tbLqrQhbnqOjzTaMlYytp7wY8BW1JpL78iG7Ru1DlV4EWGiAmXFGvtnEt9HftU0NJ0aJyjgymkxfVGI55/1Z4A==} + peerDependencies: + react: '>=18' + dependencies: + '@zag-js/element-size': 0.10.5 + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-timeout@2.1.0(react@18.3.1): + resolution: {integrity: sha512-cFN0sobKMM9hXUhyCofx3/Mjlzah6ADaEl/AXl5Y+GawB5rgedgAcu2ErAgarEkwvsKdP6c68CKjQ9dmTQlJxQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/react-use-update-effect@2.1.0(react@18.3.1): + resolution: {integrity: sha512-ND4Q23tETaR2Qd3zwCKYOOS1dfssojPLJMLvUtUbW5M9uW1ejYWgGUobeAiOVfSplownG8QYMmHTP86p/v0lbA==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.3.1 + dev: false + + /@chakra-ui/react-utils@2.0.12(react@18.3.1): + resolution: {integrity: sha512-GbSfVb283+YA3kA8w8xWmzbjNWk14uhNpntnipHCftBibl0lxtQ9YqMFQLwuFOO0U2gYVocszqqDWX+XNKq9hw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/utils': 2.0.15 + react: 18.3.1 + dev: false + + /@chakra-ui/react@2.8.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.3)(framer-motion@11.2.12)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-Hn0moyxxyCDKuR9ywYpqgX8dvjqwu9ArwpIb9wHNYjnODETjLwazgNIliCVBRcJvysGRiV51U2/JtJVrpeCjUQ==} + peerDependencies: + '@emotion/react': ^11.0.0 + '@emotion/styled': ^11.0.0 + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/accordion': 2.3.1(@chakra-ui/system@2.6.2)(framer-motion@11.2.12)(react@18.3.1) + '@chakra-ui/alert': 2.2.2(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/avatar': 2.3.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/breadcrumb': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/button': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/card': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/checkbox': 2.3.2(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/control-box': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/counter': 2.1.0(react@18.3.1) + '@chakra-ui/css-reset': 2.3.0(@emotion/react@11.11.4)(react@18.3.1) + '@chakra-ui/editable': 3.1.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/focus-lock': 2.1.0(@types/react@18.3.3)(react@18.3.1) + '@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/hooks': 2.2.1(react@18.3.1) + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/image': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/input': 2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/layout': 2.3.1(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/live-region': 2.1.0(react@18.3.1) + '@chakra-ui/media-query': 3.3.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/menu': 2.2.1(@chakra-ui/system@2.6.2)(framer-motion@11.2.12)(react@18.3.1) + '@chakra-ui/modal': 2.3.1(@chakra-ui/system@2.6.2)(@types/react@18.3.3)(framer-motion@11.2.12)(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/number-input': 2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/pin-input': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/popover': 2.2.1(@chakra-ui/system@2.6.2)(framer-motion@11.2.12)(react@18.3.1) + '@chakra-ui/popper': 3.1.0(react@18.3.1) + '@chakra-ui/portal': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/progress': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/provider': 2.4.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/radio': 2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/react-env': 3.1.0(react@18.3.1) + '@chakra-ui/select': 2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/skeleton': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/skip-nav': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/slider': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/stat': 2.1.1(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/stepper': 2.3.1(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/styled-system': 2.9.2 + '@chakra-ui/switch': 2.1.2(@chakra-ui/system@2.6.2)(framer-motion@11.2.12)(react@18.3.1) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + '@chakra-ui/table': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/tabs': 3.0.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/tag': 3.1.1(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/textarea': 2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/theme': 3.3.1(@chakra-ui/styled-system@2.9.2) + '@chakra-ui/theme-utils': 2.0.21 + '@chakra-ui/toast': 7.0.2(@chakra-ui/system@2.6.2)(framer-motion@11.2.12)(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/tooltip': 2.3.1(@chakra-ui/system@2.6.2)(framer-motion@11.2.12)(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/transition': 2.1.0(framer-motion@11.2.12)(react@18.3.1) + '@chakra-ui/utils': 2.0.15 + '@chakra-ui/visually-hidden': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1) + framer-motion: 11.2.12(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@chakra-ui/select@2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-ZwCb7LqKCVLJhru3DXvKXpZ7Pbu1TDZ7N0PdQ0Zj1oyVLJyrpef1u9HR5u0amOpqcH++Ugt0f5JSmirjNlctjA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/shared-utils@2.0.5: + resolution: {integrity: sha512-4/Wur0FqDov7Y0nCXl7HbHzCg4aq86h+SXdoUeuCMD3dSj7dpsVnStLYhng1vxvlbUnLpdF4oz5Myt3i/a7N3Q==} + dev: false + + /@chakra-ui/skeleton@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-JNRuMPpdZGd6zFVKjVQ0iusu3tXAdI29n4ZENYwAJEMf/fN0l12sVeirOxkJ7oEL0yOx2AgEYFSKdbcAgfUsAQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/media-query': 3.3.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/react-use-previous': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/skip-nav@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-Hk+FG+vadBSH0/7hwp9LJnLjkO0RPGnx7gBJWI4/SpoJf3e4tZlWYtwGj0toYY4aGKl93jVghuwGbDBEMoHDug==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/slider@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-lUOBcLMCnFZiA/s2NONXhELJh6sY5WtbRykPtclGfynqqOo47lwWJx+VP7xaeuhDOPcWSSecWc9Y1BfPOCz9cQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/number-utils': 2.0.7 + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-latest-ref': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-pan-event': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-size': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/spinner@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-hczbnoXt+MMv/d3gE+hjQhmkzLiKuoTo42YhUG7Bs9OSv2lg1fZHW1fGNRFP3wTi6OIbD044U1P9HK+AOgFH3g==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/stat@2.1.1(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-LDn0d/LXQNbAn2KaR3F1zivsZCewY4Jsy1qShmfBMKwn6rI8yVlbvu6SiA3OpHS0FhxbsZxQI6HefEoIgtqY6Q==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/stepper@2.3.1(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-ky77lZbW60zYkSXhYz7kbItUpAQfEdycT0Q4bkHLxfqbuiGMf8OmgZOQkOB9uM4v0zPwy2HXhe0vq4Dd0xa55Q==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/styled-system@2.9.2: + resolution: {integrity: sha512-To/Z92oHpIE+4nk11uVMWqo2GGRS86coeMmjxtpnErmWRdLcp1WVCVRAvn+ZwpLiNR+reWFr2FFqJRsREuZdAg==} + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + csstype: 3.1.3 + lodash.mergewith: 4.6.2 + dev: false + + /@chakra-ui/switch@2.1.2(@chakra-ui/system@2.6.2)(framer-motion@11.2.12)(react@18.3.1): + resolution: {integrity: sha512-pgmi/CC+E1v31FcnQhsSGjJnOE2OcND4cKPyTE+0F+bmGm48Q/b5UmKD9Y+CmZsrt/7V3h8KNczowupfuBfIHA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/checkbox': 2.3.2(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + framer-motion: 11.2.12(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/system@2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1): + resolution: {integrity: sha512-EGtpoEjLrUu4W1fHD+a62XR+hzC5YfsWm+6lO0Kybcga3yYEij9beegO0jZgug27V+Rf7vns95VPVP6mFd/DEQ==} + peerDependencies: + '@emotion/react': ^11.0.0 + '@emotion/styled': ^11.0.0 + react: '>=18' + dependencies: + '@chakra-ui/color-mode': 2.2.0(react@18.3.1) + '@chakra-ui/object-utils': 2.1.0 + '@chakra-ui/react-utils': 2.0.12(react@18.3.1) + '@chakra-ui/styled-system': 2.9.2 + '@chakra-ui/theme-utils': 2.0.21 + '@chakra-ui/utils': 2.0.15 + '@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1) + react: 18.3.1 + react-fast-compare: 3.2.2 + dev: false + + /@chakra-ui/table@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-o5OrjoHCh5uCLdiUb0Oc0vq9rIAeHSIRScc2ExTC9Qg/uVZl2ygLrjToCaKfaaKl1oQexIeAcZDKvPG8tVkHyQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/tabs@3.0.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-6Mlclp8L9lqXmsGWF5q5gmemZXOiOYuh0SGT/7PgJVNPz3LXREXlXg2an4MBUD8W5oTkduCX+3KTMCwRrVrDYw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/clickable': 2.1.0(react@18.3.1) + '@chakra-ui/descendant': 3.1.0(react@18.3.1) + '@chakra-ui/lazy-utils': 2.0.5 + '@chakra-ui/react-children-utils': 2.0.6(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/tag@3.1.1(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-Bdel79Dv86Hnge2PKOU+t8H28nm/7Y3cKd4Kfk9k3lOpUh4+nkSGe58dhRzht59lEqa4N9waCgQiBdkydjvBXQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/textarea@2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-ip7tvklVCZUb2fOHDb23qPy/Fr2mzDOGdkrpbNi50hDCiV4hFX02jdQJdi3ydHZUyVgZVBKPOJ+lT9i7sKA2wA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/theme-tools@2.1.2(@chakra-ui/styled-system@2.9.2): + resolution: {integrity: sha512-Qdj8ajF9kxY4gLrq7gA+Azp8CtFHGO9tWMN2wfF9aQNgG9AuMhPrUzMq9AMQ0MXiYcgNq/FD3eegB43nHVmXVA==} + peerDependencies: + '@chakra-ui/styled-system': '>=2.0.0' + dependencies: + '@chakra-ui/anatomy': 2.2.2 + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/styled-system': 2.9.2 + color2k: 2.0.3 + dev: false + + /@chakra-ui/theme-utils@2.0.21: + resolution: {integrity: sha512-FjH5LJbT794r0+VSCXB3lT4aubI24bLLRWB+CuRKHijRvsOg717bRdUN/N1fEmEpFnRVrbewttWh/OQs0EWpWw==} + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/styled-system': 2.9.2 + '@chakra-ui/theme': 3.3.1(@chakra-ui/styled-system@2.9.2) + lodash.mergewith: 4.6.2 + dev: false + + /@chakra-ui/theme@3.3.1(@chakra-ui/styled-system@2.9.2): + resolution: {integrity: sha512-Hft/VaT8GYnItGCBbgWd75ICrIrIFrR7lVOhV/dQnqtfGqsVDlrztbSErvMkoPKt0UgAkd9/o44jmZ6X4U2nZQ==} + peerDependencies: + '@chakra-ui/styled-system': '>=2.8.0' + dependencies: + '@chakra-ui/anatomy': 2.2.2 + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/styled-system': 2.9.2 + '@chakra-ui/theme-tools': 2.1.2(@chakra-ui/styled-system@2.9.2) + dev: false + + /@chakra-ui/toast@7.0.2(@chakra-ui/system@2.6.2)(framer-motion@11.2.12)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-yvRP8jFKRs/YnkuE41BVTq9nB2v/KDRmje9u6dgDmE5+1bFt3bwjdf9gVbif4u5Ve7F7BGk5E093ARRVtvLvXA==} + peerDependencies: + '@chakra-ui/system': 2.6.2 + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/alert': 2.2.2(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2)(react@18.3.1) + '@chakra-ui/portal': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/react-context': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-timeout': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/styled-system': 2.9.2 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + '@chakra-ui/theme': 3.3.1(@chakra-ui/styled-system@2.9.2) + framer-motion: 11.2.12(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@chakra-ui/tooltip@2.3.1(@chakra-ui/system@2.6.2)(framer-motion@11.2.12)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-Rh39GBn/bL4kZpuEMPPRwYNnccRCL+w9OqamWHIB3Qboxs6h8cOyXfIdGxjo72lvhu1QI/a4KFqkM3St+WfC0A==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.1.0 + '@chakra-ui/popper': 3.1.0(react@18.3.1) + '@chakra-ui/portal': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@chakra-ui/react-types': 2.0.7(react@18.3.1) + '@chakra-ui/react-use-disclosure': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-event-listener': 2.1.0(react@18.3.1) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + framer-motion: 11.2.12(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@chakra-ui/transition@2.1.0(framer-motion@11.2.12)(react@18.3.1): + resolution: {integrity: sha512-orkT6T/Dt+/+kVwJNy7zwJ+U2xAZ3EU7M3XCs45RBvUnZDr/u9vdmaM/3D/rOpmQJWgQBwKPJleUXrYWUagEDQ==} + peerDependencies: + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + framer-motion: 11.2.12(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + dev: false + + /@chakra-ui/utils@2.0.15: + resolution: {integrity: sha512-El4+jL0WSaYYs+rJbuYFDbjmfCcfGDmRY95GO4xwzit6YAPZBLcR65rOEwLps+XWluZTy1xdMrusg/hW0c1aAA==} + dependencies: + '@types/lodash.mergewith': 4.6.7 + css-box-model: 1.2.1 + framesync: 6.1.2 + lodash.mergewith: 4.6.2 + dev: false + + /@chakra-ui/visually-hidden@2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1): + resolution: {integrity: sha512-KmKDg01SrQ7VbTD3+cPWf/UfpF5MSwm3v7MWi0n5t8HnnadT13MF0MJCDSXbBWnzLv1ZKJ6zlyAOeARWX+DpjQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1) + react: 18.3.1 + dev: false + + /@emotion/babel-plugin@11.11.0: + resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} + dependencies: + '@babel/helper-module-imports': 7.24.7 + '@babel/runtime': 7.24.7 + '@emotion/hash': 0.9.1 + '@emotion/memoize': 0.8.1 + '@emotion/serialize': 1.1.4 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@emotion/cache@11.11.0: + resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==} + dependencies: + '@emotion/memoize': 0.8.1 + '@emotion/sheet': 1.2.2 + '@emotion/utils': 1.2.1 + '@emotion/weak-memoize': 0.3.1 + stylis: 4.2.0 + dev: false + + /@emotion/hash@0.9.1: + resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} + dev: false + + /@emotion/is-prop-valid@1.2.2: + resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==} + dependencies: + '@emotion/memoize': 0.8.1 + dev: false + + /@emotion/memoize@0.8.1: + resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} + dev: false + + /@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==} + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.7 + '@emotion/babel-plugin': 11.11.0 + '@emotion/cache': 11.11.0 + '@emotion/serialize': 1.1.4 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1) + '@emotion/utils': 1.2.1 + '@emotion/weak-memoize': 0.3.1 + '@types/react': 18.3.3 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@emotion/serialize@1.1.4: + resolution: {integrity: sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==} + dependencies: + '@emotion/hash': 0.9.1 + '@emotion/memoize': 0.8.1 + '@emotion/unitless': 0.8.1 + '@emotion/utils': 1.2.1 + csstype: 3.1.3 + dev: false + + /@emotion/sheet@1.2.2: + resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} + dev: false + + /@emotion/styled@11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==} + peerDependencies: + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.7 + '@emotion/babel-plugin': 11.11.0 + '@emotion/is-prop-valid': 1.2.2 + '@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1) + '@emotion/serialize': 1.1.4 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1) + '@emotion/utils': 1.2.1 + '@types/react': 18.3.3 + react: 18.3.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@emotion/unitless@0.8.1: + resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} + dev: false + + /@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.3.1): + resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.3.1 + dev: false + + /@emotion/utils@1.2.1: + resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==} + dev: false + + /@emotion/weak-memoize@0.3.1: + resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} + dev: false + + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.11.0: + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.5 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@floating-ui/core@1.6.4: + resolution: {integrity: sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==} + dependencies: + '@floating-ui/utils': 0.2.4 + dev: false + + /@floating-ui/dom@1.6.7: + resolution: {integrity: sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==} + dependencies: + '@floating-ui/core': 1.6.4 + '@floating-ui/utils': 0.2.4 + dev: false + + /@floating-ui/react-dom@2.1.1(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': 1.6.7 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@floating-ui/utils@0.2.4: + resolution: {integrity: sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==} + dev: false + + /@gql.tada/cli-utils@1.4.0(@0no-co/graphqlsp@1.12.10)(graphql@16.9.0)(svelte@4.2.18)(typescript@5.5.2): + resolution: {integrity: sha512-8CeKMsUHQSj2MVTJqb6LRfanfhfDrPyfmiYuLY75/aKnRBk70Oe3m7YuBc6/QzatLjj6egxPezNdt25MTluSpg==} + peerDependencies: + '@0no-co/graphqlsp': ^1.12.9 + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + typescript: ^5.0.0 + dependencies: + '@0no-co/graphqlsp': 1.12.10(graphql@16.9.0)(typescript@5.5.2) + '@gql.tada/internal': 1.0.2(graphql@16.9.0)(typescript@5.5.2) + '@vue/compiler-dom': 3.4.31 + '@vue/language-core': 2.0.24(typescript@5.5.2) + graphql: 16.9.0 + svelte2tsx: 0.7.13(svelte@4.2.18)(typescript@5.5.2) + typescript: 5.5.2 + transitivePeerDependencies: + - svelte + dev: false + + /@gql.tada/internal@1.0.2(graphql@16.9.0)(typescript@5.5.2): + resolution: {integrity: sha512-5PH+l47yRpz97YCuKiBdIyLRRCM9fJ56J7yEnwMny1RIR8U4CV39eT0VokvHUjFY6x2Kxh4fH4KeJYezssiOXw==} + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + typescript: ^5.0.0 + dependencies: + '@0no-co/graphql.web': 1.0.7(graphql@16.9.0) + graphql: 16.9.0 + typescript: 5.5.2 + dev: false + + /@graphql-typed-document-node/core@3.2.0(graphql@16.9.0): + resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + graphql: 16.9.0 + dev: false + + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.5 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@2.0.3: + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + dev: true + + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + + /@mysten/bcs@1.0.2: + resolution: {integrity: sha512-haHT0km/9yIIe8lwo8gDFxGLnoxfRF4WmEVCz4lDXbEVQRsZkF0zB97kukiwMjDuFBaGVUhrOMCLz6td8tSMaQ==} + dependencies: + bs58: 5.0.0 + dev: false + + /@mysten/dapp-kit@0.14.10(@tanstack/react-query@5.49.2)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(svelte@4.2.18)(typescript@5.5.2): + resolution: {integrity: sha512-IjCRND4pgr8nr2fLg9XLEACtyxTO1Y4/Fl8/5taxZyhb09kTfS7hcpHkRw3xPmJ/b83DOQW3X0/l/d213k4OVQ==} + peerDependencies: + '@tanstack/react-query': ^5.0.0 + react: '*' + dependencies: + '@mysten/sui': 1.2.0(svelte@4.2.18)(typescript@5.5.2) + '@mysten/wallet-standard': 0.12.10(svelte@4.2.18)(typescript@5.5.2) + '@mysten/zksend': 0.9.10(svelte@4.2.18)(typescript@5.5.2) + '@radix-ui/react-dialog': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-dropdown-menu': 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@tanstack/react-query': 5.49.2(react@18.3.1) + '@vanilla-extract/css': 1.15.3 + '@vanilla-extract/dynamic': 2.1.1 + '@vanilla-extract/recipes': 0.5.3(@vanilla-extract/css@1.15.3) + clsx: 2.1.1 + react: 18.3.1 + zustand: 4.5.4(@types/react@18.3.3)(react@18.3.1) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - babel-plugin-macros + - immer + - react-dom + - svelte + - typescript + dev: false + + /@mysten/sui@1.2.0(svelte@4.2.18)(typescript@5.5.2): + resolution: {integrity: sha512-USDOckZPGcwi2QAuKHEcieoVuW8Xgsm8vtKyXaRrhVLG2t2q3hCEigquiLXh7S3okBbD/P35xjvhR9PdUeqweA==} + engines: {node: '>=18'} + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + '@mysten/bcs': 1.0.2 + '@noble/curves': 1.4.0 + '@noble/hashes': 1.4.0 + '@scure/bip32': 1.4.0 + '@scure/bip39': 1.3.0 + '@suchipi/femver': 1.0.0 + bech32: 2.0.0 + gql.tada: 1.8.0(graphql@16.9.0)(svelte@4.2.18)(typescript@5.5.2) + graphql: 16.9.0 + tweetnacl: 1.0.3 + valibot: 0.25.0 + transitivePeerDependencies: + - svelte + - typescript + dev: false + + /@mysten/wallet-standard@0.12.10(svelte@4.2.18)(typescript@5.5.2): + resolution: {integrity: sha512-hwy9S63D/J9llrGHDRqmJTauUcAL2tKeiRut9NdePCe4BJphzowwZxTLZTsyam4fT2K2yvufyVZwp4Ij4FII6Q==} + dependencies: + '@mysten/sui': 1.2.0(svelte@4.2.18)(typescript@5.5.2) + '@wallet-standard/core': 1.0.3 + transitivePeerDependencies: + - svelte + - typescript + dev: false + + /@mysten/zksend@0.9.10(svelte@4.2.18)(typescript@5.5.2): + resolution: {integrity: sha512-ExKtKZT9bL3BKTQZww1zOv8gFDju/40rx2kqjO+qy2Ju+0Mc3jmtoR7NYpCdPK19DvvOl0eKGs6f2P+LN0+rlQ==} + dependencies: + '@mysten/sui': 1.2.0(svelte@4.2.18)(typescript@5.5.2) + '@mysten/wallet-standard': 0.12.10(svelte@4.2.18)(typescript@5.5.2) + mitt: 3.0.1 + nanostores: 0.9.5 + valibot: 0.25.0 + transitivePeerDependencies: + - svelte + - typescript + dev: false + + /@next/env@14.2.4: + resolution: {integrity: sha512-3EtkY5VDkuV2+lNmKlbkibIJxcO4oIHEhBWne6PaAp+76J9KoSsGvNikp6ivzAT8dhhBMYrm6op2pS1ApG0Hzg==} + dev: false + + /@next/eslint-plugin-next@14.2.4: + resolution: {integrity: sha512-svSFxW9f3xDaZA3idQmlFw7SusOuWTpDTAeBlO3AEPDltrraV+lqs7mAc6A27YdnpQVVIA3sODqUAAHdWhVWsA==} + dependencies: + glob: 10.3.10 + dev: true + + /@next/swc-darwin-arm64@14.2.4: + resolution: {integrity: sha512-AH3mO4JlFUqsYcwFUHb1wAKlebHU/Hv2u2kb1pAuRanDZ7pD/A/KPD98RHZmwsJpdHQwfEc/06mgpSzwrJYnNg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-darwin-x64@14.2.4: + resolution: {integrity: sha512-QVadW73sWIO6E2VroyUjuAxhWLZWEpiFqHdZdoQ/AMpN9YWGuHV8t2rChr0ahy+irKX5mlDU7OY68k3n4tAZTg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-gnu@14.2.4: + resolution: {integrity: sha512-KT6GUrb3oyCfcfJ+WliXuJnD6pCpZiosx2X3k66HLR+DMoilRb76LpWPGb4tZprawTtcnyrv75ElD6VncVamUQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-musl@14.2.4: + resolution: {integrity: sha512-Alv8/XGSs/ytwQcbCHwze1HmiIkIVhDHYLjczSVrf0Wi2MvKn/blt7+S6FJitj3yTlMwMxII1gIJ9WepI4aZ/A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-gnu@14.2.4: + resolution: {integrity: sha512-ze0ShQDBPCqxLImzw4sCdfnB3lRmN3qGMB2GWDRlq5Wqy4G36pxtNOo2usu/Nm9+V2Rh/QQnrRc2l94kYFXO6Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-musl@14.2.4: + resolution: {integrity: sha512-8dwC0UJoc6fC7PX70csdaznVMNr16hQrTDAMPvLPloazlcaWfdPogq+UpZX6Drqb1OBlwowz8iG7WR0Tzk/diQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-arm64-msvc@14.2.4: + resolution: {integrity: sha512-jxyg67NbEWkDyvM+O8UDbPAyYRZqGLQDTPwvrBBeOSyVWW/jFQkQKQ70JDqDSYg1ZDdl+E3nkbFbq8xM8E9x8A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-ia32-msvc@14.2.4: + resolution: {integrity: sha512-twrmN753hjXRdcrZmZttb/m5xaCBFa48Dt3FbeEItpJArxriYDunWxJn+QFXdJ3hPkm4u7CKxncVvnmgQMY1ag==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-x64-msvc@14.2.4: + resolution: {integrity: sha512-tkLrjBzqFTP8DVrAAQmZelEahfR9OxWpFR++vAI9FBhCiIxtwHwBHC23SBHCTURBtwB4kc/x44imVOnkKGNVGg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@noble/curves@1.4.0: + resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==} + dependencies: + '@noble/hashes': 1.4.0 + dev: false + + /@noble/hashes@1.4.0: + resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} + engines: {node: '>= 16'} + dev: false + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + dev: true + + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + + /@popperjs/core@2.11.8: + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + dev: false + + /@radix-ui/primitive@1.1.0: + resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==} + dev: false + + /@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-context@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-dialog@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + aria-hidden: 1.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.5.7(@types/react@18.3.3)(react@18.3.1) + dev: false + + /@radix-ui/react-direction@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-dropdown-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-y8E+x9fBq9qvteD2Zwa4397pUVhYsh9iq44b5RD5qu1GMJWBCBuVg1hMyItbc6+zH00TxGRqd9Iot4wzf3OoBQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-menu': 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-focus-guards@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-id@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-oa3mXRRVjHi6DZu/ghuzdylyjaMXLymx83irM7hTxutQbD+7IhPKdMdRHD26Rm+kHRrWcrUkkRPv5pd47a2xFQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + aria-hidden: 1.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.5.7(@types/react@18.3.3)(react@18.3.1) + dev: false + + /@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@floating-ui/react-dom': 2.1.1(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/rect': 1.1.0 + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-portal@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-slot@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-use-rect@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/rect': 1.1.0 + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-use-size@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/rect@1.1.0: + resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} + dev: false + + /@rushstack/eslint-patch@1.10.3: + resolution: {integrity: sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==} + dev: true + + /@scure/base@1.1.7: + resolution: {integrity: sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==} + dev: false + + /@scure/bip32@1.4.0: + resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} + dependencies: + '@noble/curves': 1.4.0 + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.7 + dev: false + + /@scure/bip39@1.3.0: + resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} + dependencies: + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.7 + dev: false + + /@suchipi/femver@1.0.0: + resolution: {integrity: sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==} + dev: false + + /@swc/counter@0.1.3: + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + dev: false + + /@swc/helpers@0.5.5: + resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} + dependencies: + '@swc/counter': 0.1.3 + tslib: 2.6.3 + dev: false + + /@tanstack/query-core@5.49.1: + resolution: {integrity: sha512-JnC9ndmD1KKS01Rt/ovRUB1tmwO7zkyXAyIxN9mznuJrcNtOrkmOnQqdJF2ib9oHzc2VxHomnEG7xyfo54Npkw==} + dev: false + + /@tanstack/react-query@5.49.2(react@18.3.1): + resolution: {integrity: sha512-6rfwXDK9BvmHISbNFuGd+wY3P44lyW7lWiA9vIFGT/T0P9aHD1VkjTvcM4SDAIbAQ9ygEZZoLt7dlU1o3NjMVA==} + peerDependencies: + react: ^18.0.0 + dependencies: + '@tanstack/query-core': 5.49.1 + react: 18.3.1 + dev: false + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: false + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/lodash.mergewith@4.6.7: + resolution: {integrity: sha512-3m+lkO5CLRRYU0fhGRp7zbsGi6+BZj0uTVSwvcKU+nSlhjA9/QRNfuSGnD2mX6hQA7ZbmcCkzk5h4ZYGOtk14A==} + dependencies: + '@types/lodash': 4.17.6 + dev: false + + /@types/lodash@4.17.6: + resolution: {integrity: sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA==} + dev: false + + /@types/node@20.14.9: + resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==} + dependencies: + undici-types: 5.26.5 + dev: true + + /@types/parse-json@4.0.2: + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + dev: false + + /@types/prop-types@15.7.12: + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + + /@types/react-dom@18.3.0: + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + dependencies: + '@types/react': 18.3.3 + + /@types/react@18.3.3: + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} + dependencies: + '@types/prop-types': 15.7.12 + csstype: 3.1.3 + + /@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2): + resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 7.2.0 + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.2) + '@typescript-eslint/visitor-keys': 7.2.0 + debug: 4.3.5 + eslint: 8.57.0 + typescript: 5.5.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@7.2.0: + resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/visitor-keys': 7.2.0 + dev: true + + /@typescript-eslint/types@7.2.0: + resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/typescript-estree@7.2.0(typescript@5.5.2): + resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/visitor-keys': 7.2.0 + debug: 4.3.5 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@5.5.2) + typescript: 5.5.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/visitor-keys@7.2.0: + resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 7.2.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + + /@vanilla-extract/css@1.15.3: + resolution: {integrity: sha512-mxoskDAxdQAspbkmQRxBvolUi1u1jnyy9WZGm+GeH8V2wwhEvndzl1QoK7w8JfA0WFevTxbev5d+i+xACZlPhA==} + dependencies: + '@emotion/hash': 0.9.1 + '@vanilla-extract/private': 1.0.5 + css-what: 6.1.0 + cssesc: 3.0.0 + csstype: 3.1.3 + dedent: 1.5.3 + deep-object-diff: 1.1.9 + deepmerge: 4.3.1 + media-query-parser: 2.0.2 + modern-ahocorasick: 1.0.1 + picocolors: 1.0.1 + transitivePeerDependencies: + - babel-plugin-macros + dev: false + + /@vanilla-extract/dynamic@2.1.1: + resolution: {integrity: sha512-iqf736036ujEIKsIq28UsBEMaLC2vR2DhwKyrG3NDb/fRy9qL9FKl1TqTtBV4daU30Uh3saeik4vRzN8bzQMbw==} + dependencies: + '@vanilla-extract/private': 1.0.5 + dev: false + + /@vanilla-extract/private@1.0.5: + resolution: {integrity: sha512-6YXeOEKYTA3UV+RC8DeAjFk+/okoNz/h88R+McnzA2zpaVqTR/Ep+vszkWYlGBcMNO7vEkqbq5nT/JMMvhi+tw==} + dev: false + + /@vanilla-extract/recipes@0.5.3(@vanilla-extract/css@1.15.3): + resolution: {integrity: sha512-SPREq1NmaoKuvJeOV0pppOkwy3pWZUoDufsyQ6iHrbkHhAU7XQqG9o0iZSmg5JoVgDLIiOr9djQb0x9wuxig7A==} + peerDependencies: + '@vanilla-extract/css': ^1.0.0 + dependencies: + '@vanilla-extract/css': 1.15.3 + dev: false + + /@volar/language-core@2.4.0-alpha.2: + resolution: {integrity: sha512-BmVAHEHO6n8g958n1/S6cR9uf76YGlrp/D6rYSTBtdLKrS4CVK9A2MjKf+gpbj+A8JCGVA/16N4atPZZmI7kVw==} + dependencies: + '@volar/source-map': 2.4.0-alpha.2 + dev: false + + /@volar/source-map@2.4.0-alpha.2: + resolution: {integrity: sha512-hnCOUx/zuvpDeh0YNC2bnQDEzzIr+tYzphpwTvUV4o4wXCAmyjNYqBR8ElR1s9O9pQF3n9CqLlYRYOe7RQnTHg==} + dev: false + + /@vue/compiler-core@3.4.31: + resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==} + dependencies: + '@babel/parser': 7.24.7 + '@vue/shared': 3.4.31 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + dev: false + + /@vue/compiler-dom@3.4.31: + resolution: {integrity: sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==} + dependencies: + '@vue/compiler-core': 3.4.31 + '@vue/shared': 3.4.31 + dev: false + + /@vue/language-core@2.0.24(typescript@5.5.2): + resolution: {integrity: sha512-997YD6Lq/66LXr3ZOLNxDCmyn13z9NP8LU1UZn9hGCDWhzlbXAIP0hOgL3w3x4RKEaWTaaRtsHP9DzHvmduruQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@volar/language-core': 2.4.0-alpha.2 + '@vue/compiler-dom': 3.4.31 + '@vue/shared': 3.4.31 + computeds: 0.0.1 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + typescript: 5.5.2 + vue-template-compiler: 2.7.16 + dev: false + + /@vue/shared@3.4.31: + resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==} + dev: false + + /@wallet-standard/app@1.0.1: + resolution: {integrity: sha512-LnLYq2Vy2guTZ8GQKKSXQK3+FRGPil75XEdkZqE6fiLixJhZJoJa5hT7lXxwe0ykVTt9LEThdTbOpT7KadS26Q==} + engines: {node: '>=16'} + dependencies: + '@wallet-standard/base': 1.0.1 + dev: false + + /@wallet-standard/base@1.0.1: + resolution: {integrity: sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w==} + engines: {node: '>=16'} + dev: false + + /@wallet-standard/core@1.0.3: + resolution: {integrity: sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==} + engines: {node: '>=16'} + dependencies: + '@wallet-standard/app': 1.0.1 + '@wallet-standard/base': 1.0.1 + '@wallet-standard/features': 1.0.3 + '@wallet-standard/wallet': 1.0.1 + dev: false + + /@wallet-standard/features@1.0.3: + resolution: {integrity: sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==} + engines: {node: '>=16'} + dependencies: + '@wallet-standard/base': 1.0.1 + dev: false + + /@wallet-standard/wallet@1.0.1: + resolution: {integrity: sha512-qkhJeuQU2afQTZ02yMZE5SFc91Fo3hyFjFkpQglHudENNyiSG0oUKcIjky8X32xVSaumgTZSQUAzpXnCTWHzKQ==} + engines: {node: '>=16'} + dependencies: + '@wallet-standard/base': 1.0.1 + dev: false + + /@zag-js/dom-query@0.16.0: + resolution: {integrity: sha512-Oqhd6+biWyKnhKwFFuZrrf6lxBz2tX2pRQe6grUnYwO6HJ8BcbqZomy2lpOdr+3itlaUqx+Ywj5E5ZZDr/LBfQ==} + dev: false + + /@zag-js/element-size@0.10.5: + resolution: {integrity: sha512-uQre5IidULANvVkNOBQ1tfgwTQcGl4hliPSe69Fct1VfYb2Fd0jdAcGzqQgPhfrXFpR62MxLPB7erxJ/ngtL8w==} + dev: false + + /@zag-js/focus-visible@0.16.0: + resolution: {integrity: sha512-a7U/HSopvQbrDU4GLerpqiMcHKEkQkNPeDZJWz38cw/6Upunh41GjHetq5TB84hxyCaDzJ6q2nEdNoBQfC0FKA==} + dependencies: + '@zag-js/dom-query': 0.16.0 + dev: false + + /acorn-jsx@5.3.2(acorn@8.12.0): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.12.0 + dev: true + + /acorn@8.12.0: + resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + engines: {node: '>=0.4.0'} + hasBin: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: false + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /aria-hidden@1.2.4: + resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} + engines: {node: '>=10'} + dependencies: + tslib: 2.6.3 + dev: false + + /aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + dependencies: + deep-equal: 2.2.3 + dev: true + + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + dev: false + + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + dev: true + + /array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + is-string: 1.0.7 + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.toreversed@1.1.2: + resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + dev: true + + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + dev: true + + /ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + dev: true + + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + dependencies: + possible-typed-array-names: 1.0.0 + dev: true + + /axe-core@4.9.1: + resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==} + engines: {node: '>=4'} + dev: true + + /axobject-query@3.1.1: + resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} + dependencies: + deep-equal: 2.2.3 + dev: true + + /axobject-query@4.0.0: + resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} + dependencies: + dequal: 2.0.3 + dev: false + + /babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + dependencies: + '@babel/runtime': 7.24.7 + cosmiconfig: 7.1.0 + resolve: 1.22.8 + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /base-x@4.0.0: + resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==} + dev: false + + /bech32@2.0.0: + resolution: {integrity: sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==} + dev: false + + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.1.1 + dev: true + + /bs58@5.0.0: + resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==} + dependencies: + base-x: 4.0.0 + dev: false + + /busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + dependencies: + streamsearch: 1.1.0 + dev: false + + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true + + /caniuse-lite@1.0.30001638: + resolution: {integrity: sha512-5SuJUJ7cZnhPpeLHaH0c/HPAnAHZvS6ElWyHK9GSIbVOQABLzowiI2pjmpvZ1WEbkyz46iFd4UXlOHR5SqgfMQ==} + dev: false + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: false + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + dev: false + + /clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + dev: false + + /code-red@1.0.4: + resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + '@types/estree': 1.0.5 + acorn: 8.12.0 + estree-walker: 3.0.3 + periscopic: 3.1.0 + dev: false + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: false + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: false + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /color2k@2.0.3: + resolution: {integrity: sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==} + dev: false + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + + /compute-scroll-into-view@3.0.3: + resolution: {integrity: sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A==} + dev: false + + /computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + dev: false + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: false + + /copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + dependencies: + toggle-selection: 1.0.6 + dev: false + + /cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: false + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-box-model@1.2.1: + resolution: {integrity: sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==} + dependencies: + tiny-invariant: 1.3.3 + dev: false + + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.0 + dev: false + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: false + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + /damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: true + + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + dev: false + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /dedent-js@1.0.1: + resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} + dev: false + + /dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + dev: false + + /deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.4 + is-arguments: 1.1.1 + is-array-buffer: 3.0.4 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + isarray: 2.0.5 + object-is: 1.1.6 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + side-channel: 1.0.6 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /deep-object-diff@1.1.9: + resolution: {integrity: sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==} + dev: false + + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: false + + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + dev: true + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + dev: true + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + + /detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + dev: false + + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /enhanced-resolve@5.17.0: + resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: false + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: false + + /es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.2 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + dev: true + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: true + + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.3 + is-set: 2.0.3 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: true + + /es-iterator-helpers@1.0.19: + resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.2 + dev: true + + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + dev: true + + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + dev: true + + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + dependencies: + hasown: 2.0.2 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: false + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + /eslint-config-next@14.2.4(eslint@8.57.0)(typescript@5.5.2): + resolution: {integrity: sha512-Qr0wMgG9m6m4uYy2jrYJmyuNlYZzPRQq5Kvb9IDlYwn+7yq6W6sfMNFgb+9guM1KYwuIo6TIaiFhZJ6SnQ/Efw==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@next/eslint-plugin-next': 14.2.4 + '@rushstack/eslint-patch': 1.10.3 + '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.2) + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0) + eslint-plugin-react: 7.34.3(eslint@8.57.0) + eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) + typescript: 5.5.2 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7 + is-core-module: 2.14.0 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.5 + enhanced-resolve: 5.17.0 + eslint: 8.57.0 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + fast-glob: 3.3.2 + get-tsconfig: 4.7.5 + is-core-module: 2.14.0 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.2) + debug: 3.2.7 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.2) + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + hasown: 2.0.2 + is-core-module: 2.14.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jsx-a11y@6.9.0(eslint@8.57.0): + resolution: {integrity: sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + aria-query: 5.1.3 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.8 + axe-core: 4.9.1 + axobject-query: 3.1.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + es-iterator-helpers: 1.0.19 + eslint: 8.57.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + safe-regex-test: 1.0.3 + string.prototype.includes: 2.0.0 + dev: true + + /eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): + resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.57.0 + dev: true + + /eslint-plugin-react@7.34.3(eslint@8.57.0): + resolution: {integrity: sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.2 + array.prototype.toreversed: 1.1.2 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.19 + eslint: 8.57.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.hasown: 1.1.4 + object.values: 1.2.0 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.11 + dev: true + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.11.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.5 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.12.0 + acorn-jsx: 5.3.2(acorn@8.12.0) + eslint-visitor-keys: 3.4.3 + dev: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: false + + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.5 + dev: false + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.7 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + dependencies: + reusify: 1.0.4 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.2.0 + dev: true + + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + dev: false + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + dev: true + + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + dev: true + + /focus-lock@1.3.5: + resolution: {integrity: sha512-QFaHbhv9WPUeLYBDe/PAuLKJ4Dd9OPvKs9xZBr3yLXnUrDNaVXKu2baDBXe3naPY30hgHYSsf2JW4jzas2mDEQ==} + engines: {node: '>=10'} + dependencies: + tslib: 2.6.3 + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /foreground-child@3.2.1: + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + + /framer-motion@11.2.12(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-lCjkV4nA9rWOy2bhR4RZzkp2xpB++kFmUZ6D44V9VQaxk+JDmbDd5lq+u58DjJIIllE8AZEXp9OG/TyDN4FB/w==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 + react-dom: ^18.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.6.3 + dev: false + + /framesync@6.1.2: + resolution: {integrity: sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==} + dependencies: + tslib: 2.4.0 + dev: false + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + dev: true + + /get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + dev: false + + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + dev: true + + /get-tsconfig@4.7.5: + resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.2.1 + jackspeak: 2.3.6 + minimatch: 9.0.5 + minipass: 7.1.2 + path-scurry: 1.11.1 + dev: true + + /glob@10.4.2: + resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} + engines: {node: '>=16 || 14 >=14.18'} + hasBin: true + dependencies: + foreground-child: 3.2.1 + jackspeak: 3.4.0 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: false + + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + gopd: 1.0.1 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /gql.tada@1.8.0(graphql@16.9.0)(svelte@4.2.18)(typescript@5.5.2): + resolution: {integrity: sha512-BsdmtWPmCb3oorPnU6DidBNsIDTjbvRc7P5LUZ43ISMz9dNsl2vFvT7i1AEsbK2xV5AtdjgywPKAFHJd4dQr6Q==} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + dependencies: + '@0no-co/graphql.web': 1.0.7(graphql@16.9.0) + '@0no-co/graphqlsp': 1.12.10(graphql@16.9.0)(typescript@5.5.2) + '@gql.tada/cli-utils': 1.4.0(@0no-co/graphqlsp@1.12.10)(graphql@16.9.0)(svelte@4.2.18)(typescript@5.5.2) + '@gql.tada/internal': 1.0.2(graphql@16.9.0)(typescript@5.5.2) + typescript: 5.5.2 + transitivePeerDependencies: + - graphql + - svelte + dev: false + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + + /graphql@16.9.0: + resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + dev: false + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: false + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + dev: true + + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: false + + /hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + dependencies: + react-is: 16.13.1 + dev: false + + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 + dev: true + + /invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + dev: true + + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: false + + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.3.0 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module@2.14.0: + resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} + engines: {node: '>= 0.4'} + dependencies: + hasown: 2.0.2 + + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + dependencies: + is-typed-array: 1.1.13 + dev: true + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.7 + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + dev: true + + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + dependencies: + '@types/estree': 1.0.5 + dev: false + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + dev: true + + /is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + dev: true + + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.15 + dev: true + + /is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.7 + dev: true + + /is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 + dev: true + + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true + + /jackspeak@3.4.0: + resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true + + /jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: false + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.2.0 + dev: true + + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: true + + /language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + dev: true + + /language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + dependencies: + language-subtag-registry: 0.3.23 + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + + /lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + /locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + dev: false + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + dev: false + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.6.3 + dev: false + + /lru-cache@10.3.0: + resolution: {integrity: sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==} + engines: {node: 14 || >=16.14} + dev: true + + /magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: false + + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: false + + /media-query-parser@2.0.2: + resolution: {integrity: sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==} + dependencies: + '@babel/runtime': 7.24.7 + dev: false + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + dev: false + + /modern-ahocorasick@1.0.1: + resolution: {integrity: sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==} + dev: false + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + dev: false + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /nanostores@0.9.5: + resolution: {integrity: sha512-Z+p+g8E7yzaWwOe5gEUB2Ox0rCEeXWYIZWmYvw/ajNYX8DlXdMvMDj8DWfM/subqPAcsf8l8Td4iAwO1DeIIRQ==} + engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} + dev: false + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /next@14.2.4(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-R8/V7vugY+822rsQGQCjoLhMuC9oFj9SOi4Cl4b2wjDrseD0LRZ10W7R6Czo4w9ZznVSshKjuIomsRjvm9EKJQ==} + engines: {node: '>=18.17.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + sass: + optional: true + dependencies: + '@next/env': 14.2.4 + '@swc/helpers': 0.5.5 + busboy: 1.6.0 + caniuse-lite: 1.0.30001638 + graceful-fs: 4.2.11 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.1(react@18.3.1) + optionalDependencies: + '@next/swc-darwin-arm64': 14.2.4 + '@next/swc-darwin-x64': 14.2.4 + '@next/swc-linux-arm64-gnu': 14.2.4 + '@next/swc-linux-arm64-musl': 14.2.4 + '@next/swc-linux-x64-gnu': 14.2.4 + '@next/swc-linux-x64-musl': 14.2.4 + '@next/swc-win32-arm64-msvc': 14.2.4 + '@next/swc-win32-ia32-msvc': 14.2.4 + '@next/swc-win32-x64-msvc': 14.2.4 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + dev: false + + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: 2.6.3 + dev: false + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: true + + /object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + dev: true + + /object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + + /object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: true + + /object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + dev: true + + /object.hasown@1.1.4: + resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: true + + /object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.24.7 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: false + + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.3 + dev: false + + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + dependencies: + lru-cache: 10.3.0 + minipass: 7.1.2 + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + dependencies: + '@types/estree': 1.0.5 + estree-walker: 3.0.3 + is-reference: 3.0.2 + dev: false + + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: true + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: true + + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + dev: true + + /postcss-import@15.1.0(postcss@8.4.39): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.39 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + dev: true + + /postcss-js@4.0.1(postcss@8.4.39): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.39 + dev: true + + /postcss-load-config@4.0.2(postcss@8.4.39): + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 3.1.2 + postcss: 8.4.39 + yaml: 2.4.5 + dev: true + + /postcss-nested@6.0.1(postcss@8.4.39): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.39 + postcss-selector-parser: 6.1.0 + dev: true + + /postcss-selector-parser@6.1.0: + resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + dev: false + + /postcss@8.4.39: + resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /react-clientside-effect@1.2.6(react@18.3.1): + resolution: {integrity: sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==} + peerDependencies: + react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.24.7 + react: 18.3.1 + dev: false + + /react-dom@18.3.1(react@18.3.1): + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + dev: false + + /react-fast-compare@3.2.2: + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + dev: false + + /react-focus-lock@2.12.1(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-lfp8Dve4yJagkHiFrC1bGtib3mF2ktqwPJw4/WGcgPW+pJ/AVQA5X2vI7xgp13FcxFEpYBBHpXai/N2DBNC0Jw==} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.7 + '@types/react': 18.3.3 + focus-lock: 1.3.5 + prop-types: 15.8.1 + react: 18.3.1 + react-clientside-effect: 1.2.6(react@18.3.1) + use-callback-ref: 1.3.2(@types/react@18.3.3)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1) + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + /react-remove-scroll-bar@2.3.6(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) + tslib: 2.6.3 + dev: false + + /react-remove-scroll@2.5.10(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-m3zvBRANPBw3qxVVjEIPEQinkcwlFZ4qyomuWVpNJdv4c6MvHfXV0C3L9Jx5rr3HeBHKNRX+1jreB5QloDIJjA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + react-remove-scroll-bar: 2.3.6(@types/react@18.3.3)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) + tslib: 2.6.3 + use-callback-ref: 1.3.2(@types/react@18.3.3)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1) + dev: false + + /react-remove-scroll@2.5.7(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + react-remove-scroll-bar: 2.3.6(@types/react@18.3.3)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) + tslib: 2.6.3 + use-callback-ref: 1.3.2(@types/react@18.3.3)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1) + dev: false + + /react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 18.3.1 + tslib: 2.6.3 + dev: false + + /react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + dev: false + + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + which-builtin-type: 1.1.3 + dev: true + + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + dev: false + + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.14.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + dependencies: + is-core-module: 2.14.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + dev: true + + /scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + dev: true + + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + dev: true + + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + dev: false + + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.7 + dev: true + + /streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + dev: false + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + + /string.prototype.includes@2.0.0: + resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + dev: true + + /string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.0.6 + dev: true + + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: true + + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /styled-jsx@5.1.1(react@18.3.1): + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + dependencies: + client-only: 0.0.1 + react: 18.3.1 + dev: false + + /stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + dev: false + + /sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.4.2 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: false + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /svelte2tsx@0.7.13(svelte@4.2.18)(typescript@5.5.2): + resolution: {integrity: sha512-aObZ93/kGAiLXA/I/kP+x9FriZM+GboB/ReOIGmLNbVGEd2xC+aTCppm3mk1cc9I/z60VQf7b2QDxC3jOXu3yw==} + peerDependencies: + svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 + typescript: ^4.9.4 || ^5.0.0 + dependencies: + dedent-js: 1.0.1 + pascal-case: 3.1.2 + svelte: 4.2.18 + typescript: 5.5.2 + dev: false + + /svelte@4.2.18: + resolution: {integrity: sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==} + engines: {node: '>=16'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + '@types/estree': 1.0.5 + acorn: 8.12.0 + aria-query: 5.3.0 + axobject-query: 4.0.0 + code-red: 1.0.4 + css-tree: 2.3.1 + estree-walker: 3.0.3 + is-reference: 3.0.2 + locate-character: 3.0.0 + magic-string: 0.30.10 + periscopic: 3.1.0 + dev: false + + /tailwindcss@3.4.4: + resolution: {integrity: sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.6 + lilconfig: 2.1.0 + micromatch: 4.0.7 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.1 + postcss: 8.4.39 + postcss-import: 15.1.0(postcss@8.4.39) + postcss-js: 4.0.1(postcss@8.4.39) + postcss-load-config: 4.0.2(postcss@8.4.39) + postcss-nested: 6.0.1(postcss@8.4.39) + postcss-selector-parser: 6.1.0 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + dev: true + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + + /tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + dev: false + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: false + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + dev: false + + /ts-api-utils@1.3.0(typescript@5.5.2): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.5.2 + dev: true + + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tslib@2.4.0: + resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + dev: false + + /tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + dev: false + + /tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + dev: false + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + dev: true + + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + dev: true + + /typescript@5.5.2: + resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} + engines: {node: '>=14.17'} + hasBin: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.7 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + dev: true + + /use-callback-ref@1.3.2(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + tslib: 2.6.3 + dev: false + + /use-sidecar@1.1.2(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + detect-node-es: 1.1.0 + react: 18.3.1 + tslib: 2.6.3 + dev: false + + /use-sync-external-store@1.2.0(react@18.3.1): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.3.1 + dev: false + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /valibot@0.25.0: + resolution: {integrity: sha512-cmD0ca15oyAbT75iYLNW6uU6doAeIwYfOshpXka/E1Bx4frzbkrgb7gvkI7K0YK/DVOksei4FfxWfRoBP3NFTg==} + dev: false + + /vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: false + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + dev: true + + /which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 + dev: true + + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: false + + /yaml@2.4.5: + resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + engines: {node: '>= 14'} + hasBin: true + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /zustand@4.5.4(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0.6' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + use-sync-external-store: 1.2.0(react@18.3.1) + dev: false diff --git a/mover/wahack/code/dapp/postcss.config.mjs b/mover/wahack/code/dapp/postcss.config.mjs new file mode 100644 index 000000000..1a69fd2a4 --- /dev/null +++ b/mover/wahack/code/dapp/postcss.config.mjs @@ -0,0 +1,8 @@ +/** @type {import('postcss-load-config').Config} */ +const config = { + plugins: { + tailwindcss: {}, + }, +}; + +export default config; diff --git a/mover/wahack/code/dapp/public/next.svg b/mover/wahack/code/dapp/public/next.svg new file mode 100644 index 000000000..5174b28c5 --- /dev/null +++ b/mover/wahack/code/dapp/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mover/wahack/code/dapp/public/vercel.svg b/mover/wahack/code/dapp/public/vercel.svg new file mode 100644 index 000000000..d2f842227 --- /dev/null +++ b/mover/wahack/code/dapp/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mover/wahack/code/dapp/src/app/favicon.ico b/mover/wahack/code/dapp/src/app/favicon.ico new file mode 100644 index 000000000..718d6fea4 Binary files /dev/null and b/mover/wahack/code/dapp/src/app/favicon.ico differ diff --git a/mover/wahack/code/dapp/src/app/globals.css b/mover/wahack/code/dapp/src/app/globals.css new file mode 100644 index 000000000..bd6213e1d --- /dev/null +++ b/mover/wahack/code/dapp/src/app/globals.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; \ No newline at end of file diff --git a/mover/wahack/code/dapp/src/app/layout.tsx b/mover/wahack/code/dapp/src/app/layout.tsx new file mode 100644 index 000000000..7a3e182c3 --- /dev/null +++ b/mover/wahack/code/dapp/src/app/layout.tsx @@ -0,0 +1,40 @@ +"use client" +import { Inter } from "next/font/google"; +import "./globals.css"; +import { Providers } from './providers' +import {Box, Flex, Spacer} from "@chakra-ui/react"; +import {ConnectButton} from "@mysten/dapp-kit"; + +const inter = Inter({ subsets: ["latin"] }); + +// export const metadata: Metadata = { +// title: "Lets Move", +// description: "learn move with @the_web3", +// }; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + + + + + Lets Learning Move + + + + + + + {children} + + + + + ); +} diff --git a/mover/wahack/code/dapp/src/app/page.tsx b/mover/wahack/code/dapp/src/app/page.tsx new file mode 100644 index 000000000..a90390544 --- /dev/null +++ b/mover/wahack/code/dapp/src/app/page.tsx @@ -0,0 +1,57 @@ +'use client'; + +import {Button, Container, Tabs, TabList, Tab, TabPanels,Box, TabPanel, HStack} from "@chakra-ui/react"; +import Task2 from '@/components/task2-coins'; +import Task1 from '@/components/task1-hello'; +import { ConnectButton, useCurrentWallet } from '@mysten/dapp-kit'; + +export default function Home() { + const { currentWallet, connectionStatus } = useCurrentWallet(); + + return ( + + + + {connectionStatus === 'connected' ? ( +
+

Current wallet: {currentWallet.name}

+ + Accounts: +
    + {currentWallet.accounts.map((account) => ( +
  • {account.address}
  • + ))} +
+
+
+ ) : ( +
Connection status: {connectionStatus}
+ )} +
+ + + ✅Task1 + ✅Task2 + Task3 + Task4 + + + + + + + + + + +

wait

+
+ +

wait

+
+
+
+
+ + ); +} diff --git a/mover/wahack/code/dapp/src/app/providers.tsx b/mover/wahack/code/dapp/src/app/providers.tsx new file mode 100644 index 000000000..2f0922805 --- /dev/null +++ b/mover/wahack/code/dapp/src/app/providers.tsx @@ -0,0 +1,25 @@ +'use client' + +import { ChakraProvider } from '@chakra-ui/react' +import { SuiClientProvider,WalletProvider } from '@mysten/dapp-kit'; +import { getFullnodeUrl } from '@mysten/sui/client'; +import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; +import '@mysten/dapp-kit/dist/index.css'; + +const queryClient = new QueryClient(); +const networks = { + testnet: { url: getFullnodeUrl('testnet') }, + mainnet: { url: getFullnodeUrl('mainnet') }, + }; + +export function Providers({ children }: { children: React.ReactNode }) { + return + + + + {children} + + + + +} \ No newline at end of file diff --git a/mover/wahack/code/dapp/src/components/task1-hello.tsx b/mover/wahack/code/dapp/src/components/task1-hello.tsx new file mode 100644 index 000000000..2974fcc00 --- /dev/null +++ b/mover/wahack/code/dapp/src/components/task1-hello.tsx @@ -0,0 +1,63 @@ +import {Box, HStack, InputLeftAddon, Button, InputGroup, Input, useToast} from '@chakra-ui/react'; +import { Transaction } from '@mysten/sui/transactions'; +import { useCurrentAccount, useSuiClient,useConnectWallet,useWallets, useSignTransaction } from '@mysten/dapp-kit'; +import {useCallback, useState} from "react"; + + +export default function Task2() { + const { mutateAsync: signTransaction } = useSignTransaction(); + const client = useSuiClient(); + const wallets = useWallets(); + const currentAccount = useCurrentAccount(); + const { mutate: connect } = useConnectWallet(); + const toast = useToast() + const [packageId, setPackageId] = useState('0xf373db4f4c46273e778a9eab2fa3f779f8ece3762aa2d053d6ed648254a8d37a') + async function sayHello () { + if (!currentAccount) { + return connect({ + wallet: wallets[0] + }) + } + const tx = new Transaction(); + tx.moveCall({ + package: packageId, + module:"hello_move", + function: "say_hello" + }) + toast({ + status: "loading", + title: "waiting for execute transaction", + position: "top" + }) + const { bytes, signature, reportTransactionEffects } = await signTransaction({ + transaction: tx, + chain: 'sui:testnet', + }); + const {objectChanges, digest} = await client.executeTransactionBlock({ + transactionBlock: bytes, + signature, + requestType: "WaitForLocalExecution", + options: { + showObjectChanges: true, + showRawEffects: true + }, + }); + if (!objectChanges) return; + const object = objectChanges.find(i => i.type === "created") + object && toast({ + status: "success", + title: "object created!", + description: `digest: ${digest}, objectId: ${object.objectId}`, + isClosable: true + }) + } + return + + + PackageId + setPackageId(e.target.value)} /> + + + + +} \ No newline at end of file diff --git a/mover/wahack/code/dapp/src/components/task2-coins.tsx b/mover/wahack/code/dapp/src/components/task2-coins.tsx new file mode 100644 index 000000000..ef024573f --- /dev/null +++ b/mover/wahack/code/dapp/src/components/task2-coins.tsx @@ -0,0 +1,76 @@ +import {Box, HStack, InputLeftAddon, Button, InputGroup, Input, useToast} from '@chakra-ui/react'; +import { Transaction } from '@mysten/sui/transactions'; +import { useCurrentAccount, useSuiClient,useConnectWallet,useWallets, useSignTransaction } from '@mysten/dapp-kit'; +import {useState} from "react"; +export default function Task2() { + const { mutateAsync: signTransaction } = useSignTransaction(); + const client = useSuiClient(); + const wallets = useWallets(); + const currentAccount = useCurrentAccount(); + const { mutate: connect } = useConnectWallet(); + const toast = useToast() + const [packageId, setPackageId] = useState('0xc4957097f97d71e4250739bbb277e3991a4a15fdc244e10b019f9506a983e2e5') + +// 0xa78c995d56ad9e0a7a3f5cee6c1fdd62987e650678243c596acc90932a51dc76 + async function mintMyToken () { + const tx = new Transaction(); + tx.moveCall({ + package: packageId, + module:"my_coin", + function: "mint", + arguments: [tx.object('0x242a0c8e9084e40cc2e3ef090ce6faff08573922b3e60473f3c185374386f4ad'), tx.pure.u64(100), tx.pure.address(currentAccount!.address)] + }) + toast({ + status: "loading", + title: "waiting for execute transaction", + position: "top" + }) + const { bytes, signature, reportTransactionEffects } = await signTransaction({ + transaction: tx, + chain: 'sui:testnet', + }); + const {objectChanges, digest} = await client.executeTransactionBlock({ + transactionBlock: bytes, + signature, + requestType: "WaitForLocalExecution", + options: { + showObjectChanges: true, + showRawEffects: true + }, + }); + if (!objectChanges) return; + const object = objectChanges.find(i => i.type === "created") + object && toast({ + status: "success", + title: "object created!", + description: `digest: ${digest}, objectId: ${object.objectId}`, + isClosable: true + }) + } + + return + + + PackageId + setPackageId(e.target.value)} /> + + + + + MyCoin + + + + + +
+ + + FaucetCoin + + + + + +
+} \ No newline at end of file diff --git a/mover/wahack/code/dapp/tailwind.config.ts b/mover/wahack/code/dapp/tailwind.config.ts new file mode 100644 index 000000000..e9a0944e7 --- /dev/null +++ b/mover/wahack/code/dapp/tailwind.config.ts @@ -0,0 +1,20 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + content: [ + "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", + "./src/components/**/*.{js,ts,jsx,tsx,mdx}", + "./src/app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + extend: { + backgroundImage: { + "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", + "gradient-conic": + "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", + }, + }, + }, + plugins: [], +}; +export default config; diff --git a/mover/wahack/code/dapp/tsconfig.json b/mover/wahack/code/dapp/tsconfig.json new file mode 100644 index 000000000..7b2858930 --- /dev/null +++ b/mover/wahack/code/dapp/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/mover/wahack/code/readme.md b/mover/wahack/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/wahack/code/task1/hello_move.move b/mover/wahack/code/task1/hello_move.move new file mode 100644 index 000000000..e484c077a --- /dev/null +++ b/mover/wahack/code/task1/hello_move.move @@ -0,0 +1,16 @@ +/// Module: hello_move +module hello_move::hello_move { + use std::string::{Self, String}; + public struct Hello has key, store { + id: UID, + name: String, + } + + public entry fun say_hello(ctx: &mut TxContext) { + let word = Hello { + id: object::new(ctx), + name: string::utf8(b"hello from wahack") + }; + transfer::public_transfer(word, tx_context::sender(ctx)) + } +} diff --git a/mover/wahack/code/task2/Move.toml b/mover/wahack/code/task2/Move.toml new file mode 100644 index 000000000..c1006da00 --- /dev/null +++ b/mover/wahack/code/task2/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "move_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/testnet" } +#Sui = { local = "../sui/crates/sui-framework/packages/sui-framework"} +# 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] +move_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/wahack/code/task2/sources/faucet_coin.move b/mover/wahack/code/task2/sources/faucet_coin.move new file mode 100644 index 000000000..5d36a985c --- /dev/null +++ b/mover/wahack/code/task2/sources/faucet_coin.move @@ -0,0 +1,33 @@ +/// Module: faucet_coin +module move_coin::faucet_coin { + use sui::coin; + use sui::coin::{TreasuryCap, Coin}; + + public struct FAUCET_COIN has drop{ + + } + + fun init (witness: FAUCET_COIN, ctx: &mut TxContext) { + let ( + treasurycap, coin_meta + ) = coin::create_currency(witness, 6, b"faucet_token", b"faucet_token", b"", option::none(), ctx); + transfer::public_freeze_object(coin_meta); + transfer::public_share_object(treasurycap) + } + + #[test_only] + public fun test_init (ctx: &mut TxContext) { + init(FAUCET_COIN{}, ctx) + } + + + public entry fun mint (treasury_cap: &mut TreasuryCap, amount: u64, receipt: address, ctx: &mut TxContext) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, receipt); + } + + public entry fun burn (treasury_cap: &mut TreasuryCap, coin: Coin): u64 { + coin::burn(treasury_cap, coin) + } + +} \ No newline at end of file diff --git a/mover/wahack/code/task2/sources/my_coin.move b/mover/wahack/code/task2/sources/my_coin.move new file mode 100644 index 000000000..f6be9822a --- /dev/null +++ b/mover/wahack/code/task2/sources/my_coin.move @@ -0,0 +1,33 @@ +/// Module: move_coin +module move_coin::my_coin { + use sui::coin; + use sui::coin::{TreasuryCap, Coin}; + + public struct MY_COIN has drop{ + + } + + fun init (witness: MY_COIN, ctx: &mut TxContext) { + let ( + treasurycap, coin_meta + ) = coin::create_currency(witness, 6, b"my_token", b"my_token", b"", option::none(), ctx); + transfer::public_freeze_object(coin_meta); + transfer::public_transfer(treasurycap, tx_context::sender(ctx)) + } + + #[test_only] + public fun test_init (ctx: &mut TxContext) { + init(MY_COIN{}, ctx) + } + + + public entry fun mint (treasury_cap: &mut TreasuryCap, amount: u64, receipt: address, ctx: &mut TxContext) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, receipt); + } + + public entry fun burn (treasury_cap: &mut TreasuryCap, coin: Coin): u64 { + coin::burn(treasury_cap, coin) + } + +} \ No newline at end of file diff --git a/mover/wahack/code/task2/tests/faucet_coin_tests.move b/mover/wahack/code/task2/tests/faucet_coin_tests.move new file mode 100644 index 000000000..46ab5bf5e --- /dev/null +++ b/mover/wahack/code/task2/tests/faucet_coin_tests.move @@ -0,0 +1,46 @@ +#[test_only] +module move_coin::faucet_coin_tests { + use move_coin::faucet_coin; + use sui::test_scenario; + use sui::coin; + + #[test] + fun test_init() { + // Initialize a mock sender address + let addr1 = @0xA; + // Begins a multi-transaction scenario with addr1 as the sender + let mut scenario = test_scenario::begin(addr1); + faucet_coin::test_init(test_scenario::ctx(&mut scenario)); + test_scenario::end(scenario); + } + + #[test] + fun test_mint() { + let deployer_address = @0xA; + let other_address: address = @0xB; + + let mut scenario = test_scenario::begin(deployer_address); + let dummy_address = @0xCAFE; + + faucet_coin::test_init(test_scenario::ctx(&mut scenario)); + + test_scenario::next_tx(&mut scenario, deployer_address); + + test_scenario::end(scenario); + + let mut scenario = test_scenario::begin(other_address); + + let mut treasurycap = test_scenario::take_shared>(&mut scenario); + faucet_coin::mint(&mut treasurycap, 100, other_address, test_scenario::ctx(&mut scenario)); + + test_scenario::next_tx(&mut scenario, other_address); + + let mut faucet_coin = test_scenario::take_from_address>(&scenario, other_address); + + assert!(coin::value(&faucet_coin) == 100, 0); + transfer::public_transfer(faucet_coin, dummy_address); + transfer::public_transfer(treasurycap, dummy_address); + test_scenario::end(scenario); + } + +} \ No newline at end of file diff --git a/mover/wahack/code/task2/tests/my_coin_tests.move b/mover/wahack/code/task2/tests/my_coin_tests.move new file mode 100644 index 000000000..b3a9274db --- /dev/null +++ b/mover/wahack/code/task2/tests/my_coin_tests.move @@ -0,0 +1,94 @@ +#[test_only] +module move_coin::my_coin_tests { + use move_coin::my_coin; + use sui::test_scenario; + use sui::coin; + + #[test] + fun test_init() { + // Initialize a mock sender address + let addr1 = @0xA; + // Begins a multi-transaction scenario with addr1 as the sender + let mut scenario = test_scenario::begin(addr1); + my_coin::test_init(test_scenario::ctx(&mut scenario)); + test_scenario::end(scenario); + } + + #[test] + fun test_mint() { + let deployer_address = @0xA; + let mut scenario = test_scenario::begin(deployer_address); + let dummy_address = @0xCAFE; + + my_coin::test_init(test_scenario::ctx(&mut scenario)); + + test_scenario::next_tx(&mut scenario, deployer_address); + + let mut treasurycap = test_scenario::take_from_sender>(&scenario); + my_coin::mint(&mut treasurycap, 100, deployer_address, test_scenario::ctx(&mut scenario)); + + test_scenario::next_tx(&mut scenario, deployer_address); + + test_scenario::return_to_address>(deployer_address, treasurycap); + let mut my_coin = test_scenario::take_from_address>(&scenario, deployer_address); + + assert!(coin::value(&my_coin) == 100, 0); + transfer::public_transfer(my_coin, dummy_address); + test_scenario::end(scenario); + } + + #[test, expected_failure] + fun test_mint_fail() { + let deployer_address = @0xA; + let other_address: address = @0xB; + let mut scenario = test_scenario::begin(deployer_address); + let dummy_address = @0xCAFE; + + my_coin::test_init(test_scenario::ctx(&mut scenario)); + + test_scenario::next_tx(&mut scenario, deployer_address); + test_scenario::end(scenario); + + let mut scenario = test_scenario::begin(other_address); + + let mut treasurycap = test_scenario::take_from_sender>(&scenario); + my_coin::mint(&mut treasurycap, 100, other_address, test_scenario::ctx(&mut scenario)); + test_scenario::next_tx(&mut scenario, other_address); + transfer::public_transfer(treasurycap, dummy_address); + test_scenario::end(scenario); + } + + fun test_burn () { + let deployer_address = @0xA; + let mut scenario = test_scenario::begin(deployer_address); + let dummy_address = @0xCAFE; + + my_coin::test_init(test_scenario::ctx(&mut scenario)); + + test_scenario::next_tx(&mut scenario, deployer_address); + + let mut treasurycap = test_scenario::take_from_sender>(&scenario); + my_coin::mint(&mut treasurycap, 100, deployer_address, test_scenario::ctx(&mut scenario)); + + test_scenario::next_tx(&mut scenario, deployer_address); + + // test_scenario::return_to_address>(deployer_address, &treasurycap); + let mut my_coin = test_scenario::take_from_address>(&scenario, deployer_address); + + assert!(coin::value(&my_coin) == 100, 0); + + + my_coin::burn(&mut treasurycap, my_coin); + + test_scenario::next_tx(&mut scenario, deployer_address); + + let mut my_coin = test_scenario::take_from_address>(&scenario, deployer_address); + assert!(coin::value(&my_coin) == 0, 0); + + + transfer::public_transfer(my_coin, dummy_address); + transfer::public_transfer(treasurycap, dummy_address); + test_scenario::end(scenario); + } + +} \ No newline at end of file diff --git a/mover/wahack/images/task1.png b/mover/wahack/images/task1.png new file mode 100644 index 000000000..4e5a6d05a Binary files /dev/null and b/mover/wahack/images/task1.png differ diff --git a/mover/wahack/images/wallet.png b/mover/wahack/images/wallet.png new file mode 100644 index 000000000..d9f5aebc0 Binary files /dev/null and b/mover/wahack/images/wallet.png differ diff --git a/mover/wahack/notes/readme.md b/mover/wahack/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/wahack/readme.md b/mover/wahack/readme.md new file mode 100644 index 000000000..76f9da7e5 --- /dev/null +++ b/mover/wahack/readme.md @@ -0,0 +1,52 @@ +## 基本信息 +- Sui钱包地址: `0x32288f3553497570ddcc66920aa787a9e3102551c5bbe9acdf98fe7d731dd13d` +- github: `wahack` + +## 个人简介 +- 工作经验: 5年 +- 技术栈: `typescript` `rust` +- 多年web2开发经验,对Move特别感兴趣 +- 联系方式: tg: `wahack` + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.27.0 +- [x] Sui钱包截图: ![Sui钱包截图](./images/wallet.png) +- [x] package id: `0xf373db4f4c46273e778a9eab2fa3f779f8ece3762aa2d053d6ed648254a8d37a` +- [x] package id 在 scan上的查看截图:![Scan截图](./images/task1.png) + +## 02 move coin +- [x] My Coin package id : `0xc4957097f97d71e4250739bbb277e3991a4a15fdc244e10b019f9506a983e2e5` +- [x] Faucet package id : `0xc4957097f97d71e4250739bbb277e3991a4a15fdc244e10b019f9506a983e2e5` +- [x] 转账 `My Coin` hash: `3KSe4Q7qkFSds969PNDk44W7zEquUnyeA2242vezBaC8` +- [x] `Faucet Coin` address1 mint hash: `N6gjK43Zh9Z6RdyHBmgU87h8Ev2hECbRT5w4BTYRdSw` +- [x] `Faucet Coin` address2 mint hash: `FjHQWhMN3wSpZ3FWN8jiAWGXWrCCV1CNkujXwbi9oCdL` + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/wangLi007/notes/readme.md b/mover/wangLi007/notes/readme.md index 15343f31e..c28de8906 100644 --- a/mover/wangLi007/notes/readme.md +++ b/mover/wangLi007/notes/readme.md @@ -6,7 +6,7 @@ iex (iwr "https://gist.githubusercontent.com/WGB5445/73b3b54f8293125d4ba74260ea5 ## sui用到的命令 ```shell sui --version -sui client publish --gas-budget 100000000 部署到链上,网络的配置可以去user/.sui、sui_config/client.yaml文件去修改 +sui client publish 部署到链上,网络的配置可以去user/.sui、sui_config/client.yaml文件去修改 sui move build sui move new hello_world ``` diff --git a/mover/wangtl175/code/readme.md b/mover/wangtl175/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/wangtl175/code/task1/hello_world/Move.lock b/mover/wangtl175/code/task1/hello_world/Move.lock new file mode 100644 index 000000000..b7f93c212 --- /dev/null +++ b/mover/wangtl175/code/task1/hello_world/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "62650CC83E12AA0796D567B2EA37F227F5743EE8129DB9C8FE99B308CC5A8DC7" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x197472affb1fac5007ff6e65835f765ae8fd56ce66147d1259a931b1301ec0db" +latest-published-id = "0x197472affb1fac5007ff6e65835f765ae8fd56ce66147d1259a931b1301ec0db" +published-version = "1" diff --git a/mover/wangtl175/code/task1/hello_world/Move.toml b/mover/wangtl175/code/task1/hello_world/Move.toml new file mode 100644 index 000000000..483ccb9ba --- /dev/null +++ b/mover/wangtl175/code/task1/hello_world/Move.toml @@ -0,0 +1,10 @@ +[package] +name = "hello_world" +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] +hello_world = "0x0" diff --git a/mover/wangtl175/code/task1/hello_world/sources/hello.move b/mover/wangtl175/code/task1/hello_world/sources/hello.move new file mode 100644 index 000000000..4a49cc192 --- /dev/null +++ b/mover/wangtl175/code/task1/hello_world/sources/hello.move @@ -0,0 +1,19 @@ +module hello_world::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"wangtl175"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/wangtl175/code/task2/faucet_coin/Move.lock b/mover/wangtl175/code/task2/faucet_coin/Move.lock new file mode 100644 index 000000000..b67789133 --- /dev/null +++ b/mover/wangtl175/code/task2/faucet_coin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "396C2D05701131BDFA66073857B3F1922A8EE53A031CFE51D62BEBF4F39CF1F2" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x1081fc463f9d18030cad82f7cad2126f13472fdecbf56d8634dbd0162c5a08e3" +latest-published-id = "0x1081fc463f9d18030cad82f7cad2126f13472fdecbf56d8634dbd0162c5a08e3" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x6e7a5fb185ccaa392e21db2fb42a68f1c635a75d2677fc6aefb2d9985e140a1c" +latest-published-id = "0x6e7a5fb185ccaa392e21db2fb42a68f1c635a75d2677fc6aefb2d9985e140a1c" +published-version = "1" diff --git a/mover/wangtl175/code/task2/faucet_coin/Move.toml b/mover/wangtl175/code/task2/faucet_coin/Move.toml new file mode 100644 index 000000000..ce62a246c --- /dev/null +++ b/mover/wangtl175/code/task2/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://github.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] +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/wangtl175/code/task2/faucet_coin/sources/faucet_coin.move b/mover/wangtl175/code/task2/faucet_coin/sources/faucet_coin.move new file mode 100644 index 000000000..b3de730f0 --- /dev/null +++ b/mover/wangtl175/code/task2/faucet_coin/sources/faucet_coin.move @@ -0,0 +1,31 @@ +/// Module: faucet_coin +module faucet_coin::faucet_coin { + use sui::coin::{Self, TreasuryCap}; + + public struct FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: FAUCET_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 8, + b"FAUCET_COIN", + b"FAUCET_COIN", + b"FAUCET_COIN", + option::none(), + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury); + } + + public entry fun mint( + treasry: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasry, amount, recipient, ctx); + } +} diff --git a/mover/wangtl175/code/task2/faucet_coin/tests/faucet_coin_tests.move b/mover/wangtl175/code/task2/faucet_coin/tests/faucet_coin_tests.move new file mode 100644 index 000000000..88a42bf8e --- /dev/null +++ b/mover/wangtl175/code/task2/faucet_coin/tests/faucet_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[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/wangtl175/code/task2/my_coin/Move.lock b/mover/wangtl175/code/task2/my_coin/Move.lock new file mode 100644 index 000000000..a0317cafb --- /dev/null +++ b/mover/wangtl175/code/task2/my_coin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "F736B510287895B9E312F466011986BB6BE314FD8023E38FFD53560AA5EFBB84" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x41322a487f086e447c34b2744675f73e3a8267496e6c5010d6f1b1f7d60900af" +latest-published-id = "0x41322a487f086e447c34b2744675f73e3a8267496e6c5010d6f1b1f7d60900af" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xba9f79ebc5c551fb0b23e740e8c3af328ab7342c819b0ebf2ea3878ebfc8e1ce" +latest-published-id = "0xba9f79ebc5c551fb0b23e740e8c3af328ab7342c819b0ebf2ea3878ebfc8e1ce" +published-version = "1" diff --git a/mover/wangtl175/code/task2/my_coin/Move.toml b/mover/wangtl175/code/task2/my_coin/Move.toml new file mode 100644 index 000000000..a51b96f89 --- /dev/null +++ b/mover/wangtl175/code/task2/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://github.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_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/wangtl175/code/task2/my_coin/sources/my_coin.move b/mover/wangtl175/code/task2/my_coin/sources/my_coin.move new file mode 100644 index 000000000..fc23f22ff --- /dev/null +++ b/mover/wangtl175/code/task2/my_coin/sources/my_coin.move @@ -0,0 +1,29 @@ +/// Module: my_coin +module my_coin::my_coin { + use sui::coin; + + public struct MY_COIN has drop {} + + fun init(witness: MY_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency( + witness, + 8, + b"My Coin", + b"My Coin", + b"My Coin", + option::none(), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury, tx_context::sender(ctx)); + } + + public entry fun mint( + treasury_cap: &mut coin::TreasuryCap, + amount: u64, + recipent: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipent, ctx); + } +} diff --git a/mover/wangtl175/code/task2/my_coin/tests/my_coin_tests.move b/mover/wangtl175/code/task2/my_coin/tests/my_coin_tests.move new file mode 100644 index 000000000..4be556acf --- /dev/null +++ b/mover/wangtl175/code/task2/my_coin/tests/my_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[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/wangtl175/images/task01_scan.png b/mover/wangtl175/images/task01_scan.png new file mode 100644 index 000000000..261defd5d Binary files /dev/null and b/mover/wangtl175/images/task01_scan.png differ diff --git a/mover/wangtl175/images/task01_sui_wallet.png b/mover/wangtl175/images/task01_sui_wallet.png new file mode 100644 index 000000000..36ffdf9a8 Binary files /dev/null and b/mover/wangtl175/images/task01_sui_wallet.png differ diff --git a/mover/wangtl175/images/task07.png b/mover/wangtl175/images/task07.png new file mode 100644 index 000000000..fa74689fe Binary files /dev/null and b/mover/wangtl175/images/task07.png differ diff --git a/mover/wangtl175/notes/readme.md b/mover/wangtl175/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/wangtl175/readme.md b/mover/wangtl175/readme.md new file mode 100644 index 000000000..08a52fe4b --- /dev/null +++ b/mover/wangtl175/readme.md @@ -0,0 +1,52 @@ +## 基本信息 +- Sui钱包地址: `0x2945c280c97e24ff95cbcf92ebb6b25a0830d327dbfe6daa0afd9ac70ba1f12f` +- github: `wangtl175` + +## 个人简介 +- 工作经验: 2年 +- 技术栈: `Rust` `C++` +- 中山大学毕业,毕业后一直在互联网大厂工作,对web3感兴趣,希望通过学习Move入门 +- 联系方式: tg: `@loon_w` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.27.0-e5f080922d56-dirty +- [x] Sui钱包截图: ![Sui钱包截图](./images/task01_sui_wallet.png) +- [x] package id: 0x197472affb1fac5007ff6e65835f765ae8fd56ce66147d1259a931b1301ec0db +- [x] package id 在 scan上的查看截图:![Scan截图](./images/task01_scan.png) + +## 02 move coin +- [x] My Coin package id : 0xba9f79ebc5c551fb0b23e740e8c3af328ab7342c819b0ebf2ea3878ebfc8e1ce +- [x] Faucet package id : 0x6e7a5fb185ccaa392e21db2fb42a68f1c635a75d2677fc6aefb2d9985e140a1c +- [x] 转账 `My Coin` hash: 4JinANJMrEeqQsSJwzmSAYuHN9WX4p5bdpmV8H3vh9SZ +- [x] `Faucet Coin` address1 mint hash: uytpT6NvQ4SrTUZfvVGQkBj8sJmJ76c22TqUhFHc4HB +- [x] `Faucet Coin` address2 mint hash: HvQyiWZATEK1PZEcXHCeVtSyqpcAg7DeJtnACnhQbMoq + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./images/task07.png) +- [x] flag hash :7hGhymj727fzk6wqEEY6Y4ZQ77VD987gqZYaADNHdxi7 + +## 08 Move CTF Lets Move +- [x] proof : `[11,13,132,205,190,193,54,98]` +- [x] flag hash : HAFhwTjMjGSKngh9xpJ1WEwDA8AzjUyx4JUK8YaCprHE diff --git a/mover/wangxiaowang01/code/hello/Move.lock b/mover/wangxiaowang01/code/hello/Move.lock new file mode 100644 index 000000000..46302a7ee --- /dev/null +++ b/mover/wangxiaowang01/code/hello/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "23C730475A68F1E6BEDDB2CD78A3EB131C4A59425643F732B34CA8F439B08D68" +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.28.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x9c023c114bab453220106b1a2221d9e0611b6fd75472c7996e3834dc9eaf6edd" +latest-published-id = "0x9c023c114bab453220106b1a2221d9e0611b6fd75472c7996e3834dc9eaf6edd" +published-version = "1" diff --git a/mover/wangxiaowang01/code/hello/Move.toml b/mover/wangxiaowang01/code/hello/Move.toml new file mode 100644 index 000000000..f6bf62a02 --- /dev/null +++ b/mover/wangxiaowang01/code/hello/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello" +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] +hello = "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/wangxiaowang01/code/hello/sources/hello.move b/mover/wangxiaowang01/code/hello/sources/hello.move new file mode 100644 index 000000000..e3148bc33 --- /dev/null +++ b/mover/wangxiaowang01/code/hello/sources/hello.move @@ -0,0 +1,16 @@ +module hello::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + public struct Hello has key{ + id:UID, + say: String + } + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"wangxiaowang01"), + }; + transfer(hello_move, sender(ctx)); + }} \ No newline at end of file diff --git a/mover/wangxiaowang01/code/hello/tests/hello_tests.move b/mover/wangxiaowang01/code/hello/tests/hello_tests.move new file mode 100644 index 000000000..34dfcfb57 --- /dev/null +++ b/mover/wangxiaowang01/code/hello/tests/hello_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello::hello_tests { + // uncomment this line to import the module + // use hello::hello; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello() { + // pass + } + + #[test, expected_failure(abort_code = ::hello::hello_tests::ENotImplemented)] + fun test_hello_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/wangxiaowang01/code/readme.md b/mover/wangxiaowang01/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/wangxiaowang01/images/2024-07-01_21-54.png b/mover/wangxiaowang01/images/2024-07-01_21-54.png new file mode 100644 index 000000000..b5860238b Binary files /dev/null and b/mover/wangxiaowang01/images/2024-07-01_21-54.png differ diff --git a/mover/wangxiaowang01/images/2024-07-01_21-57.png b/mover/wangxiaowang01/images/2024-07-01_21-57.png new file mode 100644 index 000000000..245c0a674 Binary files /dev/null and b/mover/wangxiaowang01/images/2024-07-01_21-57.png differ diff --git a/mover/wangxiaowang01/images/2024-07-01_22-02.png b/mover/wangxiaowang01/images/2024-07-01_22-02.png new file mode 100644 index 000000000..c53527dd8 Binary files /dev/null and b/mover/wangxiaowang01/images/2024-07-01_22-02.png differ diff --git a/mover/wangxiaowang01/images/2024-07-01_22-07.png b/mover/wangxiaowang01/images/2024-07-01_22-07.png new file mode 100644 index 000000000..1ffa3db58 Binary files /dev/null and b/mover/wangxiaowang01/images/2024-07-01_22-07.png differ diff --git a/mover/wangxiaowang01/notes/readme.md b/mover/wangxiaowang01/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/wangxiaowang01/readme.md b/mover/wangxiaowang01/readme.md new file mode 100644 index 000000000..72f176163 --- /dev/null +++ b/mover/wangxiaowang01/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xd6a00995db029a7cea10487e8a2afb7db5b2372e6a122295c3b7eeb8e71b4a43` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `wangxiaowang01` + +## 个人简介 +- 工作经验: 6年 +- 技术栈: `Rust` `python` `go` +> 重要提示 请认真写自己的简介 +- web3行业从业者,对Move特别感兴趣,想通过Move深入了解智能合约 +- 联系方式: tg: `@Williamswang` + +## 任务 + +## 01 hello move +- [x] Sui cli version: `sui 1.28.0-f58faa4c5bbf` ![Sui cli version](./images/2024-07-01_22-07.png) +- [x] Sui钱包截图: ![Sui钱包截图](./images/2024-07-01_22-02.png) +- [x] package id: `0x9c023c114bab453220106b1a2221d9e0611b6fd75472c7996e3834dc9eaf6edd` +- [x] package id 在 scan上的查看截图:![Scan截图](./images/2024-07-01_21-54.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/wasd845/code/readme.md b/mover/wasd845/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/wasd845/code/task1/HelloMove/Move.lock b/mover/wasd845/code/task1/HelloMove/Move.lock new file mode 100644 index 000000000..5724471ea --- /dev/null +++ b/mover/wasd845/code/task1/HelloMove/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "D5EDEAFDDE5D5222CD6E0111A755BFED9E8CCA7C84C18CEA36E6DEB6FB5C5F17" +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.29.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xa8376a9a796495e42a8f8a8d7aacd98d51aef349f10d02d5bbca3cb3ebcbefbc" +latest-published-id = "0xa8376a9a796495e42a8f8a8d7aacd98d51aef349f10d02d5bbca3cb3ebcbefbc" +published-version = "1" diff --git a/mover/wasd845/code/task1/HelloMove/Move.toml b/mover/wasd845/code/task1/HelloMove/Move.toml new file mode 100644 index 000000000..45fa6891c --- /dev/null +++ b/mover/wasd845/code/task1/HelloMove/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "HelloMove" +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] +hellomove = "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/wasd845/code/task1/HelloMove/sources/hellomove.move b/mover/wasd845/code/task1/HelloMove/sources/hellomove.move new file mode 100644 index 000000000..0654438ef --- /dev/null +++ b/mover/wasd845/code/task1/HelloMove/sources/hellomove.move @@ -0,0 +1,18 @@ +/// Module: hellomove +module hellomove::hellomove { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + public struct Hello has key{ + id:UID, + say: String + } + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"wasd845"), + }; + transfer(hello_move, sender(ctx)); + }} + diff --git a/mover/wasd845/code/task1/HelloMove/tests/hellomove_tests.move b/mover/wasd845/code/task1/HelloMove/tests/hellomove_tests.move new file mode 100644 index 000000000..2eb514e2f --- /dev/null +++ b/mover/wasd845/code/task1/HelloMove/tests/hellomove_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hellomove::hellomove_tests { + // uncomment this line to import the module + // use hellomove::hellomove; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hellomove() { + // pass + } + + #[test, expected_failure(abort_code = ::hellomove::hellomove_tests::ENotImplemented)] + fun test_hellomove_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/wasd845/images/Screenshot.png b/mover/wasd845/images/Screenshot.png new file mode 100644 index 000000000..08b7ec4c6 Binary files /dev/null and b/mover/wasd845/images/Screenshot.png differ diff --git a/mover/wasd845/images/Screenshot2.png b/mover/wasd845/images/Screenshot2.png new file mode 100644 index 000000000..8d46e119d Binary files /dev/null and b/mover/wasd845/images/Screenshot2.png differ diff --git a/mover/wasd845/notes/readme.md b/mover/wasd845/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/wasd845/readme.md b/mover/wasd845/readme.md new file mode 100644 index 000000000..6081933a3 --- /dev/null +++ b/mover/wasd845/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x3a2e375a5f6febb1a19535cbc120cbee2890f9d11f8cf9f0fc04de0807628d7a` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `wasd845` + +## 个人简介 +- 工作经验: 6年 +- 技术栈: `C++` `Python` +> 重要提示 请认真写自己的简介 +- 多年C++开发经验,了解Solidity, 对Move感兴趣,想入门区块链和Web3开发. +- 联系方式: tg: `wegen23` + +## 任务 + +## 01 hello move +- [x] Sui cli version:'sui 1.29.1-0e22aedc6f26' +- [x] Sui钱包截图: ![Sui钱包截图](./images/Screenshot.png) +- [x] package id: 0xa8376a9a796495e42a8f8a8d7aacd98d51aef349f10d02d5bbca3cb3ebcbefbc +- [x] package id 在 scan上的查看截图:![Scan截图](./images/Screenshot2.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/web3CL/code/readme.md b/mover/web3CL/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/web3CL/code/task1/hello/Move.lock b/mover/web3CL/code/task1/hello/Move.lock new file mode 100644 index 000000000..433aa0a69 --- /dev/null +++ b/mover/web3CL/code/task1/hello/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "23C730475A68F1E6BEDDB2CD78A3EB131C4A59425643F732B34CA8F439B08D68" +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 = "0x33196c88aa463c55b114f782072298e135b574bd46570eb03ee41d144ed122ff" +latest-published-id = "0x33196c88aa463c55b114f782072298e135b574bd46570eb03ee41d144ed122ff" +published-version = "1" diff --git a/mover/web3CL/code/task1/hello/Move.toml b/mover/web3CL/code/task1/hello/Move.toml new file mode 100644 index 000000000..f6bf62a02 --- /dev/null +++ b/mover/web3CL/code/task1/hello/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello" +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] +hello = "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/web3CL/code/task1/hello/sources/hello.move b/mover/web3CL/code/task1/hello/sources/hello.move new file mode 100644 index 000000000..9817026f9 --- /dev/null +++ b/mover/web3CL/code/task1/hello/sources/hello.move @@ -0,0 +1,19 @@ +module hello::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"hello web3CL!"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/web3CL/code/task1/hello/tests/hello_tests.move b/mover/web3CL/code/task1/hello/tests/hello_tests.move new file mode 100644 index 000000000..34dfcfb57 --- /dev/null +++ b/mover/web3CL/code/task1/hello/tests/hello_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello::hello_tests { + // uncomment this line to import the module + // use hello::hello; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello() { + // pass + } + + #[test, expected_failure(abort_code = ::hello::hello_tests::ENotImplemented)] + fun test_hello_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/web3CL/code/task2/faucet_coin/Move.lock b/mover/web3CL/code/task2/faucet_coin/Move.lock new file mode 100644 index 000000000..871f809b7 --- /dev/null +++ b/mover/web3CL/code/task2/faucet_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "F8CFCF256E2F1BB7CD401C27799A09C40777C5C100F0DFA253E86DD7F0D4ED1B" +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.29.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x54c1d3f374a94596cc79e8691a4354e52e5112841b49b02ced6d721c68ac9ac0" +latest-published-id = "0x54c1d3f374a94596cc79e8691a4354e52e5112841b49b02ced6d721c68ac9ac0" +published-version = "1" diff --git a/mover/web3CL/code/task2/faucet_coin/Move.toml b/mover/web3CL/code/task2/faucet_coin/Move.toml new file mode 100644 index 000000000..1b517a2be --- /dev/null +++ b/mover/web3CL/code/task2/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://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] +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/web3CL/code/task2/faucet_coin/sources/faucet_coin.move b/mover/web3CL/code/task2/faucet_coin/sources/faucet_coin.move new file mode 100644 index 000000000..9cf81b525 --- /dev/null +++ b/mover/web3CL/code/task2/faucet_coin/sources/faucet_coin.move @@ -0,0 +1,29 @@ +module faucet_coin::faucet_coin { + use sui::coin::{Self, TreasuryCap}; + use sui::url::Url; + use sui::transfer::{public_freeze_object, public_share_object}; + + + public struct FAUCET_COIN has drop {} + + const MAX_MINT_AMOUNT: u64 = 1_000_000_000; + + fun init(witness: FAUCET_COIN, ctx: &mut TxContext) { + + let icon_url = option::none(); + + + let (treasury_cap, coin_metadata) = + coin::create_currency(witness, 8, b"web3CL+faucet", b"web3CL's faucet", b"this is a test faucet from web3CL", icon_url, ctx); + + public_freeze_object(coin_metadata); + + public_share_object(treasury_cap); + + } + + public entry fun mint(treasury_cap: &mut TreasuryCap, amount: u64, ctx: &mut TxContext) { + assert!(amount <= MAX_MINT_AMOUNT, 0); + coin::mint_and_transfer(treasury_cap, amount, tx_context::sender(ctx), ctx); + } +} \ No newline at end of file diff --git a/mover/web3CL/code/task2/faucet_coin/tests/faucet_coin_tests.move b/mover/web3CL/code/task2/faucet_coin/tests/faucet_coin_tests.move new file mode 100644 index 000000000..88a42bf8e --- /dev/null +++ b/mover/web3CL/code/task2/faucet_coin/tests/faucet_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[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/web3CL/code/task2/my_coin/Move.lock b/mover/web3CL/code/task2/my_coin/Move.lock new file mode 100644 index 000000000..3e52f06a1 --- /dev/null +++ b/mover/web3CL/code/task2/my_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "0A4652D38CF3C3FDB79EC6C1C98FCFF7B2E933E12B84A1DA267DB28F66AFECE3" +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.29.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x05b163c3a5d1fc4dbfde24163d59a1137d977fd320c964a8eacdab78e3e00f86" +latest-published-id = "0x05b163c3a5d1fc4dbfde24163d59a1137d977fd320c964a8eacdab78e3e00f86" +published-version = "1" diff --git a/mover/web3CL/code/task2/my_coin/Move.toml b/mover/web3CL/code/task2/my_coin/Move.toml new file mode 100644 index 000000000..b9ca003f8 --- /dev/null +++ b/mover/web3CL/code/task2/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://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] +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/web3CL/code/task2/my_coin/sources/my_coin.move b/mover/web3CL/code/task2/my_coin/sources/my_coin.move new file mode 100644 index 000000000..29a265e48 --- /dev/null +++ b/mover/web3CL/code/task2/my_coin/sources/my_coin.move @@ -0,0 +1,28 @@ + +/// Module: coin_test +module my_coin::my_coin { + use sui::coin; + use sui::url::Url; + use sui::transfer::{public_transfer, public_freeze_object}; + use sui::tx_context::sender; + + + + public struct MY_COIN has drop{} + + fun init(witness: MY_COIN, ctx: &mut TxContext) { + + let icon_url = option::none(); + + + let (treasury_cap, coin_metadata) = + coin::create_currency(witness, 8, b"web3CL_coin", b"web3CL's coin", b"this is a test coin from web3CL",icon_url, ctx); + + public_freeze_object(coin_metadata); + + public_transfer(treasury_cap, sender(ctx)); + + } + + +} diff --git a/mover/web3CL/code/task2/my_coin/tests/my_coin_tests.move b/mover/web3CL/code/task2/my_coin/tests/my_coin_tests.move new file mode 100644 index 000000000..4be556acf --- /dev/null +++ b/mover/web3CL/code/task2/my_coin/tests/my_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[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/web3CL/code/task3/my_nft/Move.lock b/mover/web3CL/code/task3/my_nft/Move.lock new file mode 100644 index 000000000..0028de55c --- /dev/null +++ b/mover/web3CL/code/task3/my_nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "4C9B47E7441289AA0D50D87EEB9836BD01CE3604E3B249490E7F2046EAEE3400" +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.29.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x7cc5b9f73d9aa4999556cabdcb6ffd730f2b3128d5c5753150528d6ed160cfbc" +latest-published-id = "0x7cc5b9f73d9aa4999556cabdcb6ffd730f2b3128d5c5753150528d6ed160cfbc" +published-version = "1" diff --git a/mover/web3CL/code/task3/my_nft/Move.toml b/mover/web3CL/code/task3/my_nft/Move.toml new file mode 100644 index 000000000..d40d13d2e --- /dev/null +++ b/mover/web3CL/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://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] +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/web3CL/code/task3/my_nft/sources/my_nft.move b/mover/web3CL/code/task3/my_nft/sources/my_nft.move new file mode 100644 index 000000000..9ac749398 --- /dev/null +++ b/mover/web3CL/code/task3/my_nft/sources/my_nft.move @@ -0,0 +1,132 @@ +module my_nft::Testnft { + use sui::package; + use sui::display; + use sui::url::{Self, Url}; + use std::string; + use sui::event; + + // 模块的单例标记 + public struct TESTNFT has drop {} + + public struct TestNetNFT has key, store { + id: UID, + name: string::String, + description: string::String, + url: Url, + } + + // ===== Events ===== 事件 + + public struct NFTMinted has copy, drop { + object_id: ID, + creator: address, + name: string::String, + } + + // ===== 初始化函数 ===== + + fun init(witness: TESTNFT, ctx: &mut TxContext) { + let keys = vector[ + string::utf8(b"name"), + string::utf8(b"description"), + string::utf8(b"image_url"), + ]; + let values = vector[ + string::utf8(b"{name}"), + string::utf8(b"{description}"), + string::utf8(b"{url}"), // 假设 url 字段也用作图片 URL + ]; + + let publisher = package::claim(witness, ctx); + let mut display = display::new_with_fields( + &publisher, keys, values, ctx + ); + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + // ===== Public view functions ===== 公共视图函数 + + public fun name(nft: &TestNetNFT): &string::String { + &nft.name + } + + public fun description(nft: &TestNetNFT): &string::String { + &nft.description + } + + public fun url(nft: &TestNetNFT): &Url { + &nft.url + } + + // ===== Entrypoints ===== 入口函数 + + public entry fun mint_to_sender( + name: vector, + description: vector, + url: vector, + ctx: &mut TxContext + ) { + let sender = tx_context::sender(ctx); + let nft = TestNetNFT { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + url: url::new_unsafe_from_bytes(url) + }; + + event::emit(NFTMinted { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + public entry fun mint_to_someone( + name: vector, + description: vector, + url: vector, + someone: address, + ctx: &mut TxContext + ) { + let sender = tx_context::sender(ctx); + let nft = TestNetNFT { + id: object::new(ctx), + name: string::utf8(name), + description: string::utf8(description), + url: url::new_unsafe_from_bytes(url) + }; + + event::emit(NFTMinted { + object_id: object::id(&nft), + creator: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, someone); + } + + + public entry fun transfer( + nft: TestNetNFT, recipient: address, _: &mut TxContext + ) { + transfer::public_transfer(nft, recipient) + } + + public entry fun update_description( + nft: &mut TestNetNFT, + new_description: vector, + _: &mut TxContext + ) { + nft.description = string::utf8(new_description) + } + + public entry fun burn(nft: TestNetNFT, _: &mut TxContext) { + let TestNetNFT { id, name: _, description: _, url: _ } = nft; + object::delete(id) + } +} \ No newline at end of file diff --git a/mover/web3CL/code/task3/my_nft/tests/my_nft_tests.move b/mover/web3CL/code/task3/my_nft/tests/my_nft_tests.move new file mode 100644 index 000000000..5d3a60230 --- /dev/null +++ b/mover/web3CL/code/task3/my_nft/tests/my_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[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/web3CL/code/task4/flip_coin/Move.lock b/mover/web3CL/code/task4/flip_coin/Move.lock new file mode 100644 index 000000000..5cc1831db --- /dev/null +++ b/mover/web3CL/code/task4/flip_coin/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "15E050FFC221C5B8110C558DC9427D0ED54155920BDCD56EBC379F95ED020177" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "faucet_coin" }, +] + +[[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.package]] +name = "faucet_coin" +source = { local = "../../task2/faucet_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.29.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xbfb2885ae5f2124f8106077135e1c90bbeb9beec4387b86999b7b5cb09469bef" +latest-published-id = "0xbfb2885ae5f2124f8106077135e1c90bbeb9beec4387b86999b7b5cb09469bef" +published-version = "1" diff --git a/mover/web3CL/code/task4/flip_coin/Move.toml b/mover/web3CL/code/task4/flip_coin/Move.toml new file mode 100644 index 000000000..168ee6a69 --- /dev/null +++ b/mover/web3CL/code/task4/flip_coin/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "flip_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://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } +faucet_coin = { local = "../../task2/faucet_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] +flip_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/web3CL/code/task4/flip_coin/sources/flip_coin.move b/mover/web3CL/code/task4/flip_coin/sources/flip_coin.move new file mode 100644 index 000000000..48b479674 --- /dev/null +++ b/mover/web3CL/code/task4/flip_coin/sources/flip_coin.move @@ -0,0 +1,94 @@ +module flip_coin::flip_coin { + use sui::balance; + use sui::balance::{Balance, zero}; + use sui::coin; + use sui::coin::{from_balance, into_balance}; + use sui::random; + use sui::random::Random; + use sui::transfer::{share_object, transfer, public_transfer}; + use sui::tx_context::sender; + use faucet_coin::faucet_coin::FAUCET_COIN; + + + public struct Game has key { + id: UID, + val: Balance + } + + public struct AdaminCap has key { + id: UID + } + + fun init(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + val: zero() + }; + share_object(game); + let admin = AdaminCap { + id: object::new(ctx) + }; + transfer(admin, sender(ctx)); + } + + + + #[allow(lint(public_random))] + public entry fun play( + game: &mut Game, + flip_value: bool, + in: coin::Coin, + rand: &Random, + ctx: &mut TxContext + ) { + let coin_value = coin::value(&in); + + let game_val = balance::value(&game.val); + + // 池子总量大于投注数量,防止给用户返还资金不够 + if (game_val < coin_value) { + abort 0 + }; + // 池子总量大于投注数量10倍,防止all in漏洞 + if (game_val < coin_value * 10) { + abort 1 + }; + + let mut gen = random::new_generator(rand, ctx); + + let flag = random::generate_bool(&mut gen); + + let player_address = sender(ctx); + + if (flip_value == flag) { + + let win_balance = balance::split(&mut game.val, coin_value); + let win_coin = from_balance(win_balance, ctx); + public_transfer(win_coin, player_address); + public_transfer(in, player_address); + } else { + let in_balance = into_balance(in); + balance::join(&mut game.val, in_balance); + } + } + + + + + public entry fun deposit( + game: &mut Game, + in: coin::Coin, + _ctx: &mut TxContext + ) { + let in_balance = into_balance(in); + balance::join(&mut game.val, in_balance); + } + + + + public entry fun withdraw(_: &AdaminCap, game: &mut Game, amt: u64, ctx: &mut TxContext) { + let win_balance = balance::split(&mut game.val, amt); + let win_coin = from_balance(win_balance, ctx); + public_transfer(win_coin, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/web3CL/code/task4/flip_coin/tests/flip_coin_tests.move b/mover/web3CL/code/task4/flip_coin/tests/flip_coin_tests.move new file mode 100644 index 000000000..cd0b3cdfd --- /dev/null +++ b/mover/web3CL/code/task4/flip_coin/tests/flip_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module flip_coin::flip_coin_tests { + // uncomment this line to import the module + // use flip_coin::flip_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_flip_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::flip_coin::flip_coin_tests::ENotImplemented)] + fun test_flip_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/web3CL/code/task5/web3cl_swap/Move.lock b/mover/web3CL/code/task5/web3cl_swap/Move.lock new file mode 100644 index 000000000..7430deb66 --- /dev/null +++ b/mover/web3CL/code/task5/web3cl_swap/Move.lock @@ -0,0 +1,52 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "7875B8FC53A2F798AC00A9CDDA944D35458F0C446667DB79C1CED7AFA76229C4" +deps_digest = "060AD7E57DFB13104F21BE5F5C3759D03F0553FC3229247D9A7A6B45F50D03A3" +dependencies = [ + { name = "Sui" }, + { name = "faucet_coin" }, + { name = "my_coin" }, +] + +[[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.package]] +name = "faucet_coin" +source = { local = "../../task2/faucet_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "my_coin" +source = { local = "../../task2/my_coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.29.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xc210bdd509d50c46e74ec3bd9577ae5dbe0d3d5091f3df7faf76b1333aca4680" +latest-published-id = "0xc210bdd509d50c46e74ec3bd9577ae5dbe0d3d5091f3df7faf76b1333aca4680" +published-version = "1" diff --git a/mover/web3CL/code/task5/web3cl_swap/Move.toml b/mover/web3CL/code/task5/web3cl_swap/Move.toml new file mode 100644 index 000000000..aa7888c78 --- /dev/null +++ b/mover/web3CL/code/task5/web3cl_swap/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "web3cl_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 (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" } +faucet_coin = { local = "../../task2/faucet_coin" } +my_coin = {local = "../../task2/my_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] +web3cl_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" + diff --git a/mover/web3CL/code/task5/web3cl_swap/sources/web3cl_swap.move b/mover/web3CL/code/task5/web3cl_swap/sources/web3cl_swap.move new file mode 100644 index 000000000..9ed806c33 --- /dev/null +++ b/mover/web3CL/code/task5/web3cl_swap/sources/web3cl_swap.move @@ -0,0 +1,96 @@ +module web3cl_swap::swap_task2coin { + + use sui::balance; + use sui::balance::Balance; + use sui::coin; + use sui::coin::{Coin, from_balance}; + use sui::transfer::{share_object, transfer, public_transfer}; + use sui::tx_context::sender; + use faucet_coin::faucet_coin::FAUCET_COIN; + use my_coin::my_coin::MY_COIN; + + public struct Bank has key { + id: object::UID, + coin1: Balance, + coin2: Balance, + } + + public struct AdminCap has key { + id: object::UID, + } + + fun init(ctx: &mut TxContext) { + let bank = Bank { + id: object::new(ctx), + coin1: balance::zero(), + coin2: balance::zero() + }; + share_object(bank); + + let admin_cap = AdminCap { + id: object::new(ctx) + }; + transfer(admin_cap, sender(ctx)); + } + + + public fun swap_coin1_coin2_(bank: &mut Bank, in:Coin,ctx: &mut TxContext):Coin{ + let in_value = coin::value(&in); + // the exchange rate is coin1:coin2 = 3:200 + let out_amt = in_value * 200u64 / 3u64; + + balance::join(&mut bank.coin1, coin::into_balance(in)); + let out_balance = balance::split(&mut bank.coin2, out_amt); + let out = from_balance(out_balance, ctx); + out + } + + public entry fun swap_coin1_coin2(bank: &mut Bank, in: Coin, ctx: &mut TxContext) { + let coin = swap_coin1_coin2_(bank, in, ctx); + public_transfer(coin, sender(ctx)); + } + + + public fun swap_coin2_coin1_(bank: &mut Bank,in:Coin, ctx: &mut TxContext):Coin{ + let in_value = coin::value(&in); + let out_amt = in_value * 3u64 / 200u64 ; + + balance::join(&mut bank.coin2, coin::into_balance(in)); + + let out_balance = balance::split(&mut bank.coin1, out_amt); + let out = from_balance(out_balance,ctx); + + out + } + + public entry fun swap_coin2_coin1(bank: &mut Bank, in: Coin, ctx: &mut TxContext) { + let coin = swap_coin2_coin1_(bank, in, ctx); + public_transfer(coin, sender(ctx)); + } + + + + public entry fun add_coin1(bank: &mut Bank, in: Coin, _ctx: &mut TxContext) { + let in_balance = coin::into_balance(in); + balance::join(&mut bank.coin1, in_balance); + } + + + public entry fun remove_coin1( _:&AdminCap, bank: &mut Bank,amt:u64, ctx: &mut TxContext) { + let out_balance = balance::split(&mut bank.coin1, amt); + let out = coin::from_balance(out_balance, ctx); + public_transfer(out, sender(ctx)); + } + + public entry fun add_coin2(bank: &mut Bank, in: Coin, _ctx: &mut TxContext) { + let in_balance = coin::into_balance(in); + balance::join(&mut bank.coin2, in_balance); + } + + public entry fun remove_coin2( _:&AdminCap, bank: &mut Bank,amt:u64, ctx: &mut TxContext) { + let out_balance = balance::split(&mut bank.coin2, amt); + let out = coin::from_balance(out_balance, ctx); + public_transfer(out, sender(ctx)); + } + +} \ No newline at end of file diff --git a/mover/web3CL/code/task5/web3cl_swap/tests/web3cl_swap_tests.move b/mover/web3CL/code/task5/web3cl_swap/tests/web3cl_swap_tests.move new file mode 100644 index 000000000..1f1adf3f9 --- /dev/null +++ b/mover/web3CL/code/task5/web3cl_swap/tests/web3cl_swap_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module web3cl_swap::web3cl_swap_tests { + // uncomment this line to import the module + // use web3cl_swap::web3cl_swap; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_web3cl_swap() { + // pass + } + + #[test, expected_failure(abort_code = ::web3cl_swap::web3cl_swap_tests::ENotImplemented)] + fun test_web3cl_swap_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/web3CL/images/task1_package.png b/mover/web3CL/images/task1_package.png new file mode 100644 index 000000000..20bf13a7e Binary files /dev/null and b/mover/web3CL/images/task1_package.png differ diff --git a/mover/web3CL/images/task3.png b/mover/web3CL/images/task3.png new file mode 100644 index 000000000..b8f57e66c Binary files /dev/null and b/mover/web3CL/images/task3.png differ diff --git a/mover/web3CL/images/wallet.png b/mover/web3CL/images/wallet.png new file mode 100644 index 000000000..c04b74f11 Binary files /dev/null and b/mover/web3CL/images/wallet.png differ diff --git a/mover/web3CL/notes/readme.md b/mover/web3CL/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/web3CL/readme.md b/mover/web3CL/readme.md new file mode 100644 index 000000000..1939bb4b3 --- /dev/null +++ b/mover/web3CL/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x692d481fd6fdac699387b4ecbbc7c74359487ec8a81567f4f96196c2ad44483a` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `web3CL` + +## 个人简介 +- 工作经验: 1年 +- 技术栈: `python`、`machine learning`、`solidity` +> 重要提示 请认真写自己的简介 +- 可以英语为工作语言,擅长数据分析、数据可视化,有以太坊MEV bots开发经验; +- 联系方式: tg: `@chenje.lyu` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui-client 1.27.2-homebrew +- [x] Sui钱包截图: ![Sui钱包截图](./images/wallet.png) +- [x] package id: `0x33196c88aa463c55b114f782072298e135b574bd46570eb03ee41d144ed122ff` +- [x] package id 在 scan上的查看截图:![Scan截图](./images/task1_package.png) + +## 02 move coin +- [x] My Coin package id : `0x05b163c3a5d1fc4dbfde24163d59a1137d977fd320c964a8eacdab78e3e00f86` +- [x] Faucet package id : `0x54c1d3f374a94596cc79e8691a4354e52e5112841b49b02ced6d721c68ac9ac0` +- [x] 转账 `My Coin` hash: `8krQgZ5DDgareifn7rYXSaEvumbyFwBqdrHGVchcXGuc` +- [x] `Faucet Coin` address1 mint hash: `CPbUmpSdg1wHi3bMZA8BL8r1e9nqxTR8oYRAcKT5G98B` +- [x] `Faucet Coin` address2 mint hash: `A6Tx3PUqu4jFzZBXZ3MQB3mz2ay9MmngkS4D2jb4Zguf` + +## 03 move NFT +- [x] nft package id : `0x7cc5b9f73d9aa4999556cabdcb6ffd730f2b3128d5c5753150528d6ed160cfbc` +- [x] nft object id : `0x495bc8268b2d5bce98f86a0f9a99fe5656d7b26fc5b769cd535242e8914cd0f1` +- [x] 转账 nft hash: `B314hT7sPfxxsmzv3RdjN8hf34SC58YWSPAz5iDfaC6V` +- [x] scan上的NFT截图:![Scan截图](./images/task3.png) + +## 04 Move Game +- [x] game package id : `0x66aa36a097fff9590cf4ffbdfaf6f2f5f01dd69fa2fdba21ab9e665389035b9f` +- [x] deposit Coin hash: `DkWMkaXXWXVfM9VZTi6viL5mRzh2LChcuU3MYjku65Mo` +- [x] withdraw `Coin` hash: `0x985fb494b2f77fc00a131320c8a7ba547adc40b60837b538194ed37ce9566222` +- [x] play game hash: `8QahiRwqDf5H1c51FaA5PxmvVMWsY8tAM8GPCxr1vGcr` + +## 05 Move Swap +- [x] swap package id : `0xc210bdd509d50c46e74ec3bd9577ae5dbe0d3d5091f3df7faf76b1333aca4680` +- [x] call swap CoinA-> CoinB hash : `2HbMxdvePfAUo9MFxXJUs5e38jYMngVmMEWQyP4nuRRS` +- [x] call swap CoinB-> CoinA hash : `3FASWdgL3ZB1z2pnDSCWXzyGE8nVhYyyWPfsc1W5GdFD` + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/william-spec/code/task1/Move.lock b/mover/william-spec/code/task1/Move.lock new file mode 100644 index 000000000..2717e7002 --- /dev/null +++ b/mover/william-spec/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "0D4694D75894912FF7FBB1D195C9837FE5766F35334250D162589DF8957FEFEA" +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.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xf86301feab284326c49427efb5bfa27810d028e424517e83cac886fa6ab9c987" +latest-published-id = "0xf86301feab284326c49427efb5bfa27810d028e424517e83cac886fa6ab9c987" +published-version = "1" diff --git a/mover/william-spec/code/task1/Move.toml b/mover/william-spec/code/task1/Move.toml new file mode 100644 index 000000000..a7fe16269 --- /dev/null +++ b/mover/william-spec/code/task1/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "task1" +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] +task1 = "0x0" +hello_move = "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/william-spec/code/task1/sources/task1.move b/mover/william-spec/code/task1/sources/task1.move new file mode 100644 index 000000000..0056b8b1d --- /dev/null +++ b/mover/william-spec/code/task1/sources/task1.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"william-spec"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/william-spec/code/task1/tests/task1_tests.move b/mover/william-spec/code/task1/tests/task1_tests.move new file mode 100644 index 000000000..31fb8c1ac --- /dev/null +++ b/mover/william-spec/code/task1/tests/task1_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task1::task1_tests { + // uncomment this line to import the module + // use task1::task1; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task1() { + // pass + } + + #[test, expected_failure(abort_code = ::task1::task1_tests::ENotImplemented)] + fun test_task1_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/william-spec/images/task7/image.png b/mover/william-spec/images/task7/image.png new file mode 100644 index 000000000..6afa5e9a8 Binary files /dev/null and b/mover/william-spec/images/task7/image.png differ diff --git a/mover/william-spec/readme.md b/mover/william-spec/readme.md new file mode 100644 index 000000000..ccbc2779d --- /dev/null +++ b/mover/william-spec/readme.md @@ -0,0 +1,17 @@ +## 基本信息 + +- Sui 钱包地址: 0xa444e76b79518804abb2ff32c75c6e13dc7a98b0aa7b4fe44cc8c44811c1696a + +- github: william-spec + +## 任务 + +## 01 hello move + +- [x] Sui cli version: 1.27.1 +- package id: 0xf86301feab284326c49427efb5bfa27810d028e424517e83cac886fa6ab9c987 + +## 07 + +- Transaction Digest: dK5itPK8mJsZhJKjAcnCkpXKmbGT1xezFaQvNygDjpJ +- 截图: images/task7/image.png diff --git a/mover/windynanzi/code/readme.md b/mover/windynanzi/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/windynanzi/images/sui-hello-world.png b/mover/windynanzi/images/sui-hello-world.png new file mode 100644 index 000000000..d39244179 Binary files /dev/null and b/mover/windynanzi/images/sui-hello-world.png differ diff --git a/mover/windynanzi/images/sui-wallet.jpg b/mover/windynanzi/images/sui-wallet.jpg new file mode 100644 index 000000000..8e011bfdd Binary files /dev/null and b/mover/windynanzi/images/sui-wallet.jpg differ diff --git a/mover/windynanzi/notes/readme.md b/mover/windynanzi/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/windynanzi/readme.md b/mover/windynanzi/readme.md new file mode 100644 index 000000000..bdfab8cbd --- /dev/null +++ b/mover/windynanzi/readme.md @@ -0,0 +1,53 @@ +## 基本信息 +- Sui钱包地址: `0xd1172b7d007f0fc94ba6473c761dbc05bfd85ce97d873295c937630b1edd6c7f` +- github: `windynanzi` + +## 个人简介 +- 工作经验: 3年 +- 技术栈: `ES6` `Vue` +> 重要提示 请认真写自己的简介 +- 3年前端经验,侧重于ES6,Vue. Nuxt,小程序,Node 也了解一二。 +- 联系方式: 微信: `hq_yuzhe` + +## 任务 + +## 01 hello move +- [] Sui cli version: sui 1.29.2-homebrew +- [] Sui钱包截图: ![Sui钱包截图](./images/sui-wallet.jpg) +- [] package id: 0x4e2b6e6c6dfa353941d9776e4312f9ca00340e8c988afefde94c16669b94515b +- [] package id 在 scan上的查看截图:![Scan截图](./images/sui-hello-world.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/windynanzi/scan.jpg b/mover/windynanzi/scan.jpg new file mode 100644 index 000000000..d16ebb649 Binary files /dev/null and b/mover/windynanzi/scan.jpg differ diff --git a/mover/windyund/code/task4/tset.md b/mover/windyund/code/task4/tset.md index f527e0b3c..4679410a9 100644 --- a/mover/windyund/code/task4/tset.md +++ b/mover/windyund/code/task4/tset.md @@ -44,7 +44,7 @@ play coin: 0xc5efea045b2a08a16fd4411c39c90da77912a90074f3833a9ab5392fe4c68f3b sui client call --package 0xc653c62991ffb78263bb0b4dc5314e6218bd1dc50b007d837e85a47701ea720f \ --module guess_number \ --function depoist \ - --gas-budget 100000000 \ + \ --args 0x740ce848cb02cf094cdf6fb322d09e07bc69159e6ccec4a0759c90de41d9ed00 0xa4fc7e772481e4ac56b343d6ba460aefd849c1c6d23ca23113f357dc15993bb5 @@ -55,7 +55,7 @@ sui client call --package 0xc653c62991ffb78263bb0b4dc5314e6218bd1dc50b007d837e85 sui client call --package 0xc653c62991ffb78263bb0b4dc5314e6218bd1dc50b007d837e85a47701ea720f\ --module guess_number \ --function play \ - --gas-budget 100000000 \ + \ --args 0xc5efea045b2a08a16fd4411c39c90da77912a90074f3833a9ab5392fe4c68f3b \ 0x740ce848cb02cf094cdf6fb322d09e07bc69159e6ccec4a0759c90de41d9ed00 \ 8 \ diff --git a/mover/windyund/notes/task5.md b/mover/windyund/notes/task5.md index a09c607d6..7d48bd240 100644 --- a/mover/windyund/notes/task5.md +++ b/mover/windyund/notes/task5.md @@ -58,7 +58,7 @@ packge id 0xbaaa252f382c7cc66c15376bfa035a138c3369bcb21c0fada91f325d3c0351c2 sui client call --package 0xca5cf766fee82ff53f7c3c1c3180e79dbf46090106c6ea14054c7653f864d5da\ --module mycoin \ --function mint \ - --gas-budget 100000000 \ + \ --args 0xf87debd42f8ee2da2d6467bc04477d03ca31093a394788afccc3413865f2ea7d \ 100 \ 0xe29fa8db4cb05d9b3b436784f146e1297f65fffdd5f69f7803844a5d81e0850c diff --git a/mover/wureny/code/readme.md b/mover/wureny/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/wureny/code/task1/Move.lock b/mover/wureny/code/task1/Move.lock new file mode 100644 index 000000000..53625121a --- /dev/null +++ b/mover/wureny/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C4C44B822EF179AE160CAC80B7613F1725FE4507D6BC68B5B64D5FE5854D7280" +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 = "0x32c601e3781a3d908bfbac3a77ae3f91184e4c841ade2c2d6ad758bf50175dc6" +latest-published-id = "0x32c601e3781a3d908bfbac3a77ae3f91184e4c841ade2c2d6ad758bf50175dc6" +published-version = "1" diff --git a/mover/wureny/code/task1/Move.toml b/mover/wureny/code/task1/Move.toml new file mode 100644 index 000000000..ef26a69ca --- /dev/null +++ b/mover/wureny/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "halo_world" +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] +halo_world = "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/wureny/code/task1/sources/task1.move b/mover/wureny/code/task1/sources/task1.move new file mode 100644 index 000000000..500f7bf76 --- /dev/null +++ b/mover/wureny/code/task1/sources/task1.move @@ -0,0 +1,20 @@ + +module halo_world::wureny_halo_world { + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct Wureny_HaloWorldObject has key,store { + id : UID, + msg : string::String + } + + public fun mint(ctx: &mut TxContext) { + let obj = Wureny_HaloWorldObject { + id: object::new(ctx), + msg: string::utf8(b"halo world") + }; + transfer::public_transfer(obj, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/wureny/code/task1/tests/task1_tests.move b/mover/wureny/code/task1/tests/task1_tests.move new file mode 100644 index 000000000..31fb8c1ac --- /dev/null +++ b/mover/wureny/code/task1/tests/task1_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task1::task1_tests { + // uncomment this line to import the module + // use task1::task1; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task1() { + // pass + } + + #[test, expected_failure(abort_code = ::task1::task1_tests::ENotImplemented)] + fun test_task1_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/wureny/code/task2/Move.lock b/mover/wureny/code/task2/Move.lock new file mode 100644 index 000000000..eac0055f4 --- /dev/null +++ b/mover/wureny/code/task2/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "0A4652D38CF3C3FDB79EC6C1C98FCFF7B2E933E12B84A1DA267DB28F66AFECE3" +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 = "0x98c18139f56b9fd888455a66deabd59a34e8d56e659d1205fb5dfaa6c1630ae9" +latest-published-id = "0x98c18139f56b9fd888455a66deabd59a34e8d56e659d1205fb5dfaa6c1630ae9" +published-version = "1" diff --git a/mover/wureny/code/task2/Move.toml b/mover/wureny/code/task2/Move.toml new file mode 100644 index 000000000..b9ca003f8 --- /dev/null +++ b/mover/wureny/code/task2/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://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] +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/wureny/code/task2/sources/coin1.move b/mover/wureny/code/task2/sources/coin1.move new file mode 100644 index 000000000..0555a2dbd --- /dev/null +++ b/mover/wureny/code/task2/sources/coin1.move @@ -0,0 +1,17 @@ +module my_coin::wureny_coin { + use sui::coin; + use sui::transfer::{freeze_object, public_freeze_object, public_transfer}; + use sui::tx_context::sender; + use sui::url::Url; + + public struct WURENY_COIN has drop {} + + fun init(witness: WURENY_COIN, ctx: &mut TxContext) { + let icon_url=option::none(); + let (treasury_cap,coin_metadata) =coin::create_currency(witness,7,b"USD",b"usd",b"money",icon_url,ctx); + + public_freeze_object(coin_metadata); + + public_transfer(treasury_cap,sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/wureny/code/task2/t.sh b/mover/wureny/code/task2/t.sh new file mode 100644 index 000000000..012ec15e8 --- /dev/null +++ b/mover/wureny/code/task2/t.sh @@ -0,0 +1,4 @@ + sui client call --package 0x2 --module coin --function mint_and_transfer \ + --args 0x75bf74c9b44302168e6c255c4e5e75c2a978873d806e5a7badd021701be57540 \ + 100000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 \ + --type-args "0x98c18139f56b9fd888455a66deabd59a34e8d56e659d1205fb5dfaa6c1630ae9::wureny_coin::WURENY_COIN" \ No newline at end of file diff --git a/mover/wureny/code/task2/tests/task2_tests.move b/mover/wureny/code/task2/tests/task2_tests.move new file mode 100644 index 000000000..81e8c886d --- /dev/null +++ b/mover/wureny/code/task2/tests/task2_tests.move @@ -0,0 +1,19 @@ +/* +#[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 + } +} +*/ diff --git a/mover/wureny/code/task2_faucet/Move.lock b/mover/wureny/code/task2_faucet/Move.lock new file mode 100644 index 000000000..3d91aa676 --- /dev/null +++ b/mover/wureny/code/task2_faucet/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "21D9FD49CE488CD357D8779A68D418FAB08D97013CF7C66396323B2916DE5AAF" +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 = "0x6bee188c46b96387c1143935a1b8c22c611f25b0033681f7f309d1ee15683a11" +latest-published-id = "0x6bee188c46b96387c1143935a1b8c22c611f25b0033681f7f309d1ee15683a11" +published-version = "1" diff --git a/mover/wureny/code/task2_faucet/Move.toml b/mover/wureny/code/task2_faucet/Move.toml new file mode 100644 index 000000000..c9ca482b7 --- /dev/null +++ b/mover/wureny/code/task2_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "faucet" +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] +faucet = "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/wureny/code/task2_faucet/sources/task2_faucet.move b/mover/wureny/code/task2_faucet/sources/task2_faucet.move new file mode 100644 index 000000000..bf885fb54 --- /dev/null +++ b/mover/wureny/code/task2_faucet/sources/task2_faucet.move @@ -0,0 +1,17 @@ +module faucet::wureny_faucet { + use sui::coin; + use sui::transfer::{freeze_object, public_freeze_object, public_transfer,public_share_object}; + use sui::tx_context::sender; + use sui::url::Url; + + public struct WURENY_FAUCET has drop {} + + fun init(witness: WURENY_FAUCET, ctx: &mut TxContext) { + let icon_url=option::none(); + let (treasury_cap,coin_metadata) =coin::create_currency(witness,7,b"WLD",b"wld",b"world_coin",icon_url,ctx); + + public_freeze_object(coin_metadata); + + public_share_object(treasury_cap); + } +} \ No newline at end of file diff --git a/mover/wureny/code/task2_faucet/t.sh b/mover/wureny/code/task2_faucet/t.sh new file mode 100644 index 000000000..07aa6cc81 --- /dev/null +++ b/mover/wureny/code/task2_faucet/t.sh @@ -0,0 +1,10 @@ +sui client call --package 0x2 --module coin --function mint_and_transfer \ + --args 0x00f1eaadd5d67385308d1068b626bdbfbc7e857235302a0129d21cc9ea36311f \ + 100000000 0x99e602ab5128b0eb740c3995e1d48220467c8011aefbbc967af4a07860fbf9b4 \ + --type-args "0x6bee188c46b96387c1143935a1b8c22c611f25b0033681f7f309d1ee15683a11::wureny_faucet::WURENY_FAUCET" + + + sui client call --package 0x2 --module coin --function mint_and_transfer \ + --args 0x7be885747efb3896505dac68963255e771c95c024026e59cef67fc280d369383 \ + 100000000 0xc1837715392ad3c3c3ea817a4a47105027d77a74c7623fc32b2af446e55b550f \ + --type-args "0xf7dd552ddf475902751428cde73de7bbeedb1bfd8ccd1cea392ff310a31c181e::share_coin::SHARE_COIN" \ No newline at end of file diff --git a/mover/wureny/code/task2_faucet/tests/task2_faucet_tests.move b/mover/wureny/code/task2_faucet/tests/task2_faucet_tests.move new file mode 100644 index 000000000..21acc467b --- /dev/null +++ b/mover/wureny/code/task2_faucet/tests/task2_faucet_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task2_faucet::task2_faucet_tests { + // uncomment this line to import the module + // use task2_faucet::task2_faucet; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task2_faucet() { + // pass + } + + #[test, expected_failure(abort_code = ::task2_faucet::task2_faucet_tests::ENotImplemented)] + fun test_task2_faucet_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/wureny/code/task3/Move.lock b/mover/wureny/code/task3/Move.lock new file mode 100644 index 000000000..2d2cd587d --- /dev/null +++ b/mover/wureny/code/task3/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "4C9B47E7441289AA0D50D87EEB9836BD01CE3604E3B249490E7F2046EAEE3400" +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 = "0x69823260d71ce8460012fb7904c8dc57e0eb53ce26442d54cf23de967c37edfc" +latest-published-id = "0x69823260d71ce8460012fb7904c8dc57e0eb53ce26442d54cf23de967c37edfc" +published-version = "1" diff --git a/mover/wureny/code/task3/Move.toml b/mover/wureny/code/task3/Move.toml new file mode 100644 index 000000000..d40d13d2e --- /dev/null +++ b/mover/wureny/code/task3/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://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] +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/wureny/code/task3/sources/task3.move b/mover/wureny/code/task3/sources/task3.move new file mode 100644 index 000000000..86322fe2c --- /dev/null +++ b/mover/wureny/code/task3/sources/task3.move @@ -0,0 +1,38 @@ +module my_nft::wureny_nft { + use sui::object; + use std::string; + use std::string::String; + use sui::coin; + use sui::transfer::{freeze_object, public_freeze_object, public_transfer, public_share_object}; + use sui::tx_context::sender; + use sui::url::Url; + //use std::string; + + public struct Wureny_NFT has key, store { + id: UID, + name: String, + image_url: String + } + + //默认规范: 要有name和image_url字段,才能在浏览器正常显示 + //此外,还有creator等可display的字段,可用于json展示 + fun init(ctx: &mut TxContext) { + let my_nft = Wureny_NFT { + id: object::new(ctx), + name: string::utf8(b"wureny_nft"), + image_url: string::utf8(b"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSG2eRI5caKXuweLhTLOKhChJLbbj-SB4Q-Aw&usqp=CAU") + }; + + public_transfer(my_nft, sender(ctx)); + } + + public entry fun mint(name: String, image_url: String, ctx: &mut TxContext) { + let my_nft = Wureny_NFT { + id: object::new(ctx), + name, + image_url + }; + + public_transfer(my_nft, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/wureny/code/task3/t.sh b/mover/wureny/code/task3/t.sh new file mode 100644 index 000000000..55f858d96 --- /dev/null +++ b/mover/wureny/code/task3/t.sh @@ -0,0 +1,3 @@ +sui client call --package 0x69823260d71ce8460012fb7904c8dc57e0eb53ce26442d54cf23de967c37edfc --module wureny_nft --function mint \ +--args "beauty" \ +"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSG2eRI5caKXuweLhTLOKhChJLbbj-SB4Q-Aw&usqp=CAU" \ No newline at end of file diff --git a/mover/wureny/code/task3/tests/task3_tests.move b/mover/wureny/code/task3/tests/task3_tests.move new file mode 100644 index 000000000..d0f947751 --- /dev/null +++ b/mover/wureny/code/task3/tests/task3_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task3::task3_tests { + // uncomment this line to import the module + // use task3::task3; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task3() { + // pass + } + + #[test, expected_failure(abort_code = ::task3::task3_tests::ENotImplemented)] + fun test_task3_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/wureny/code/task4/Move.lock b/mover/wureny/code/task4/Move.lock new file mode 100644 index 000000000..af8df16f4 --- /dev/null +++ b/mover/wureny/code/task4/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "DF0AAAB6BFA1105EE90FCC800B9FCA86542D27F95192E9282A12C908049F9EDE" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "faucet" }, +] + +[[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.package]] +name = "faucet" +source = { local = "../task2_faucet" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.27.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x2680717e590792f168aa7e972010c42de90415b39150e7150b27d3beb90400fc" +latest-published-id = "0x2680717e590792f168aa7e972010c42de90415b39150e7150b27d3beb90400fc" +published-version = "1" diff --git a/mover/wureny/code/task4/Move.toml b/mover/wureny/code/task4/Move.toml new file mode 100644 index 000000000..afbedc27c --- /dev/null +++ b/mover/wureny/code/task4/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "flip_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://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } +# faucet={git="https://github.com/wureny/letsmove.git",subdir="mover/wureny/code/task2_faucet",rev="main",override=true,published-at="0x6bee188c46b96387c1143935a1b8c22c611f25b0033681f7f309d1ee15683a11"} +faucet = {local="../task2_faucet"} +# 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] +flip_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/wureny/code/task4/sources/task4.move b/mover/wureny/code/task4/sources/task4.move new file mode 100644 index 000000000..55b26cca2 --- /dev/null +++ b/mover/wureny/code/task4/sources/task4.move @@ -0,0 +1,72 @@ +module flip_coin::wureny_flip_coin { + + use sui::balance; + use sui::balance::Balance; + use sui::coin; + use sui::coin::{Coin, from_balance, into_balance}; + use sui::object; + use sui::random; + use sui::random::Random; + use sui::transfer::{share_object, transfer, public_transfer}; + use sui::tx_context::sender; + use faucet::wureny_faucet::WURENY_FAUCET; + + public struct Game_wureny has key { + id: UID, + value: Balance + } + + public struct AdminCap has key { + id: UID + } + + fun init(ctx: &mut TxContext) { + let game = Game_wureny { + id: object::new(ctx), + value: balance::zero() + }; + share_object(game); + + let admin = AdminCap { + id: object::new(ctx) + }; + + transfer(admin, sender(ctx)); + } + + entry fun play(game: &mut Game_wureny, flip_value: bool, in: Coin, rand: &Random, ctx: &mut TxContext) { + let play_value = coin::value(&in); + let game_value = balance::value(&game.value); + let player = sender(ctx); + + if (play_value>game_value/10) { + abort 100u64; + }; + + let mut gen = random::new_generator(rand,ctx); + let flag = random::generate_bool(&mut gen); + + if (flip_value==flag) { + let win_bal = balance::split(&mut game.value,play_value); + let win_token = from_balance(win_bal,ctx); + public_transfer(win_token,player); + public_transfer(in,player); + } else { + let in_bal = into_balance(in); + balance::join(&mut game.value,in_bal); + } + } + + public entry fun add_token(game: &mut Game_wureny, in: Coin, _ctx: &TxContext) { + let in_bal = into_balance(in); + balance::join(&mut game.value,in_bal); + } + + public entry fun withdraw_token(_: &AdminCap, game: &mut Game_wureny, + amt: u64, ctx: &mut TxContext) { + let withdraw_bal = balance::split(&mut game.value,amt); + let withdraw_coin = from_balance(withdraw_bal,ctx); + public_transfer(withdraw_coin,sender(ctx)); + } + +} diff --git a/mover/wureny/code/task4/t.sh b/mover/wureny/code/task4/t.sh new file mode 100644 index 000000000..73942095a --- /dev/null +++ b/mover/wureny/code/task4/t.sh @@ -0,0 +1,15 @@ +sui client call --package 0x2680717e590792f168aa7e972010c42de90415b39150e7150b27d3beb90400fc --module wureny_flip_coin --function add_token \ +--args 0x2f81f5bf010d06c791bae65f6524d62cb726ea048dac897386b3cb18ee7981a1 \ +0x2c84d3e685fcce96918d342a6a17dd39d2e5905bab3af094bf75a0a601634352 \ + + +sui client call --package 0x2680717e590792f168aa7e972010c42de90415b39150e7150b27d3beb90400fc --module wureny_flip_coin --function withdraw_token \ +--args 0xc619819e05e948e17cbb2fbaafdba17c7cf18e30b81ab9f94c6023715aad9cda \ +0x2f81f5bf010d06c791bae65f6524d62cb726ea048dac897386b3cb18ee7981a1 \ +100 \ + +sui client call --package 0x2680717e590792f168aa7e972010c42de90415b39150e7150b27d3beb90400fc --module wureny_flip_coin --function play \ +--args 0x2f81f5bf010d06c791bae65f6524d62cb726ea048dac897386b3cb18ee7981a1 \ +true \ +0x6e72481a8ec216cf69c4d117d60947cc442af501a3e58c803d1479274bae4d5e \ +0x0000000000000000000000000000000000000000000000000000000000000008 \ No newline at end of file diff --git a/mover/wureny/code/task4/tests/task4_tests.move b/mover/wureny/code/task4/tests/task4_tests.move new file mode 100644 index 000000000..321932cc6 --- /dev/null +++ b/mover/wureny/code/task4/tests/task4_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task4::task4_tests { + // uncomment this line to import the module + // use task4::task4; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task4() { + // pass + } + + #[test, expected_failure(abort_code = ::task4::task4_tests::ENotImplemented)] + fun test_task4_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/wureny/images/task1(2).png b/mover/wureny/images/task1(2).png new file mode 100644 index 000000000..832adbbfd Binary files /dev/null and b/mover/wureny/images/task1(2).png differ diff --git a/mover/wureny/images/task1.png b/mover/wureny/images/task1.png new file mode 100644 index 000000000..636ac75a3 Binary files /dev/null and b/mover/wureny/images/task1.png differ diff --git a/mover/wureny/images/task3.png b/mover/wureny/images/task3.png new file mode 100644 index 000000000..cf1bd6877 Binary files /dev/null and b/mover/wureny/images/task3.png differ diff --git a/mover/wureny/notes/readme.md b/mover/wureny/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/wureny/readme.md b/mover/wureny/readme.md new file mode 100644 index 000000000..33a861883 --- /dev/null +++ b/mover/wureny/readme.md @@ -0,0 +1,53 @@ +## 基本信息 +- Sui钱包地址: `0x99e602ab5128b0eb740c3995e1d48220467c8011aefbbc967af4a07860fbf9b4` +- github: `wureny` + +## 个人简介 +- 工作经验: 在校 +- 技术栈: `Rust` `Golang` `solidity` +> 重要提示 请认真写自己的简介 +- 有web2后端开发和web3 AA钱包开发经验,希望能熟悉move生态 +- 联系方式: tg: `lovemoonloveyou` + +## 任务 + +## 01 hello move +- [] Sui cli version: sui 1.27.2-homebrew +- [] Sui钱包截图: ![Sui钱包截图](./images/task1.png) +- [] package id: 0x32c601e3781a3d908bfbac3a77ae3f91184e4c841ade2c2d6ad758bf50175dc6 +- [] package id 在 scan上的查看截图:![Scan截图](./images/task1(2).png) + +## 02 move coin +- [] My Coin package id : 0x98c18139f56b9fd888455a66deabd59a34e8d56e659d1205fb5dfaa6c1630ae9 +- [] Faucet package id : 0x6bee188c46b96387c1143935a1b8c22c611f25b0033681f7f309d1ee15683a11 +- [] 转账 `My Coin` hash: 2HtfS5o1gS3fiS3m8VWYQwMThU32wYL3ygmnUqJp4rMo +- [] `Faucet Coin` address1 mint hash: 9TEkiVHrtcSDv3PqFvJpQhfdvGFHXZTNDrCf1gKPY1b8 +- [] `Faucet Coin` address2 mint hash: mYDMDcNuiqaAvS5QUWsNEJT6ts3aE3yTCpx6B6FQTJM + +## 03 move NFT +- [] nft package id : 0x69823260d71ce8460012fb7904c8dc57e0eb53ce26442d54cf23de967c37edfc +- [] nft object id : 0xa4a4d0966fb027f0a640064488b0d5504425169828390589351054fec900129d +- [] 转账 nft hash: faCm7BDLZSMumLr5zDTiu3AkDq4qyMJNYVKiVschhz1 +- [] scan上的NFT截图:![Scan截图](./images/task3.png) + +## 04 Move Game +- [] game package id : 0x2680717e590792f168aa7e972010c42de90415b39150e7150b27d3beb90400fc +- [] deposit Coin hash: CEU6jD4apuiqJMkyYdBwJ7qABDLjPb6mjMfsvvbvjw7A +- [] withdraw `Coin` hash: HpM3FWXoLDA5nTdwr3RYtLXjZxkf5jJs1rVtbWxavzdT +- [] play game hash: E8gDpTQ5ySbsNcjD7rhCn3erUX8LLL3qFFWdyxUC5CxG + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/wyzzhe/notes/images/task7.jpg b/mover/wyzzhe/notes/images/task7.jpg new file mode 100644 index 000000000..e0638999c Binary files /dev/null and b/mover/wyzzhe/notes/images/task7.jpg differ diff --git a/mover/wyzzhe/notes/images/task8.jpg b/mover/wyzzhe/notes/images/task8.jpg new file mode 100644 index 000000000..7282bb6a3 Binary files /dev/null and b/mover/wyzzhe/notes/images/task8.jpg differ diff --git a/mover/wyzzhe/readme.md b/mover/wyzzhe/readme.md index 8d0a3de01..1e950e8fc 100644 --- a/mover/wyzzhe/readme.md +++ b/mover/wyzzhe/readme.md @@ -1,39 +1,57 @@ ## 基本信息 -- Sui钱包地址: `0x2108b3f829cc7ab2fd740da1bd1d229938cde38b305e9cef7cf17c03808302d9` -> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 + +- Sui 钱包地址: `0x2108b3f829cc7ab2fd740da1bd1d229938cde38b305e9cef7cf17c03808302d9` + > 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 - github: `wyzzhe` ## 个人简介 -- 工作经验: 1年 + +- 工作经验: 1 年 - 技术栈: `JS` `Python` `Linux` -- 对Move特别感兴趣,想通过Move入门区块链 -- 联系方式: tg: `wyzzhe` +- 对 Move 特别感兴趣,想通过 Move 入门区块链 +- 联系方式: tg: `wyzzhe` ## 任务 -## 01 hello move +## 01 hello move + - [x] package id: 0x981da1932238e54cf302b08edfa03befb931390f49e8679fae43eef42ae14436 -## 02 move coin +## 02 move coin + - [x] My Coin package id : 0xae6ce4ee1a455899881bb01a2c56ef8bf4445b60c85005ca24e18c307a8b0166 - [x] Faucet package id : 0x8232d9a0ed76c80f799e550e05c7f4ab8512b712e181f257b64f20c0a2a53759 - [x] 转账 `My Coin` hash: 3Tm4b5uBDP5rRh4VHhtVxsKDQbSKLyJa52aFhSCVzj6H -## 03 move NFT +## 03 move NFT + - [x] nft package id : 0x3cc7625c27e774e35d81139400340f159ebd1bf35b99c616e5d9d97b73727689 - [x] nft object id : 0x439d3fb97f964587c50bbbbf2eda171faad1ac29d990f788e9be8ba0f5958cef -- [x] 转账 nft hash: G1zMjoNEL3uTmrgvUX6PUdQbmo7EmPEh8WxftWpBYtP +- [x] 转账 nft hash: G1zMjoNEL3uTmrgvUX6PUdQbmo7EmPEh8WxftWpBYtP + +## 04 Move Game -## 04 Move Game - [x] game package id : 0xd6eb8b23319439e91fd45221a8f33303db64691af4f3a97c5211ffb174d2880a - [x] deposit Coin hash: 9XCwo1XWqcJcjXsUxnm6xuD9BVKTc1Z2FrQfA89oGupf - [x] withdraw `Coin` hash: GVjYQtcgwhdBztP4Kp1rMzcZDt4MJPW9UiFuGkhimScg - [x] play game hash: 4PQ9KPqDv3tdyXquxwY8zT8Hn8jn7rFrK4aKxAb2pvuy -## 05 Move Swap +## 05 Move Swap + - [x] swap package id : 0x2188fe7529dc9551dfad6238f00047ebf81e3566bd8ed7cd37b80a96431808aa -- [x] call swap CoinA-> CoinB hash : 9xyZMGkY1StFztxxLsDh6gyyRU4GNmhi1DsvER2aTmPa -- [x] call swap CoinB-> CoinA hash : CxN9xDe94eY3fC7prqJ8gghdC6uEt9nKWVK6GhTUMCd6 +- [x] call swap CoinA-> CoinB hash : 9xyZMGkY1StFztxxLsDh6gyyRU4GNmhi1DsvER2aTmPa +- [x] call swap CoinB-> CoinA hash : CxN9xDe94eY3fC7prqJ8gghdC6uEt9nKWVK6GhTUMCd6 + +## 06 Dapp-kit SDK PTB -## 06 Dapp-kit SDK PTB - [] save hash : + +## 07 Move CTF Check In + +- [x] CLI call 截图 : ![截图](./notes/images/task7.jpg) +- [x] flag hash : 2yaM28RNS2BYpNjREz6zdw18qXTyavJgy2X21ZXD9zXx + +## 08 Move CTF Lets Move + +- [x] proof : 0x21a381 +- [x] flag hash : 2MhfDCdkTDXQ9iLYSV1yaNkfPTizQNWr5JGtDgxmx4YM diff --git a/mover/xG0Ian/code/task3/Move.toml b/mover/xG0Ian/code/task3/Move.toml new file mode 100644 index 000000000..1db333048 --- /dev/null +++ b/mover/xG0Ian/code/task3/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "task3" +edition = "2024.beta" # edition = "legacy" to use legacy (pre-2024) Move +version = "0.0.1" +# license = "" # e.g., "MIT", "GPL", "Apache 2.0" +# authors = ["..."] # e.g., ["Joe Smith (joesmith@noemail.com)", "John Snow (johnsnow@noemail.com)"] + +[dependencies] +Sui = { local = "~/sui/crates/sui-framework/packages/sui-framework" } +# 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 + +# 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" + diff --git a/mover/xG0Ian/code/task3/sources/task3.move b/mover/xG0Ian/code/task3/sources/task3.move new file mode 100644 index 000000000..e8812a55f --- /dev/null +++ b/mover/xG0Ian/code/task3/sources/task3.move @@ -0,0 +1,42 @@ +/// Module: task3 +module task3::task3 { + use std::string::String; + use sui::event; + + public struct AxG0Ian has key, store { + id: UID, + name: String, + url: String, + } + + public struct Minted has copy, drop { + id: ID, + owner: address, + } + + public fun mint( + name: String, + url: String, + ctx: &mut TxContext + ) { + let id = object::new(ctx); + + event::emit(Minted { + id: id.to_inner(), + owner: ctx.sender(), + }); + + let nft = AxG0Ian { id, name, url }; + + transfer::public_transfer(nft, ctx.sender()); + } + + entry public fun set_url(nft: &mut AxG0Ian, url: String) { + nft.url = url; + } + + entry public fun burn(nft: AxG0Ian) { + let AxG0Ian {id, name: _, url: _} = nft; + id.delete(); + } +} diff --git a/mover/xG0Ian/code/task4/Move.toml b/mover/xG0Ian/code/task4/Move.toml new file mode 100644 index 000000000..c5b409306 --- /dev/null +++ b/mover/xG0Ian/code/task4/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "task4" +edition = "2024.beta" # edition = "legacy" to use legacy (pre-2024) Move' +version = "0.0.1" +# 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 +Sui = { local = "~/sui/crates/sui-framework/packages/sui-framework" } + +# To resolve a version conflict and force a specific version for dependency +# override use `override = true` +# Override = { local = "../conflicting/version", override = true } + + +[addresses] +task4 = "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/xG0Ian/code/task4/sources/task4.move b/mover/xG0Ian/code/task4/sources/task4.move new file mode 100644 index 000000000..232219178 --- /dev/null +++ b/mover/xG0Ian/code/task4/sources/task4.move @@ -0,0 +1,81 @@ +/// Module: task4 +module task4::task4 { + use sui::event; + use 0x2::coin::Coin; + use 0x2::random::Random; + use sui::balance::{Self, Balance}; + use std::debug; + use 0x2::sui::SUI; + + const ENotOwner: u64 = 0; + + public struct Game has key { + id: UID, + num: u8, + owner: address, + payment: Balance + } + + public struct Win has copy, drop { + id: ID, + owner: address, + fighter: address, + owner_num: u8, + fighter_num: u8, + winner: address, + } + + + entry public fun new_game(paid: Coin, r: &Random, ctx: &mut TxContext) { + let mut generator = r.new_generator(ctx); + let mut coin = balance::zero(); + debug::print(&paid); + debug::print(&coin); + coin.join(paid.into_balance()); + debug::print(&coin); + let game = Game{ + id: object::new(ctx), + num: generator.generate_u8_in_range(0, 10), + owner: tx_context::sender(ctx), + payment: coin + }; + debug::print(&game); + transfer::share_object(game); + } + + entry public fun del_game(game: Game, ctx: &mut TxContext) { + assert!(game.owner == tx_context::sender(ctx), ENotOwner); + let Game { + id, num: _, owner: _, payment + } = game; + id.delete(); + transfer::public_transfer(payment.into_coin(ctx), tx_context::sender(ctx)); + } + + entry public fun fight(paid: Coin, r: &Random, game: Game, ctx: &mut TxContext) { + let mut generator = r.new_generator(ctx); + let Game { + id, num: owner_num, owner, mut payment + } = game; + payment.join(paid.into_balance()); + let num = generator.generate_u8_in_range(0, 10); + let winner; + if (num > owner_num) { + winner = tx_context::sender(ctx); + }else { + winner = owner; + }; + transfer::public_transfer(payment.into_coin(ctx), winner); + event::emit(Win { + id: id.to_inner(), + owner: owner, + fighter: tx_context::sender(ctx), + owner_num, + fighter_num: num, + winner + }); + id.delete(); + } + +} + diff --git a/mover/xG0Ian/readme.md b/mover/xG0Ian/readme.md index 05ced5997..032caabe6 100644 --- a/mover/xG0Ian/readme.md +++ b/mover/xG0Ian/readme.md @@ -20,13 +20,14 @@ - [x] 转账 `My Coin` hash : HLTBAtdRhwG8BLnrDiadjbZ8RJyaA1WRjw71B5bMTxq7 ## 03 move NFT -- [] nft package id : -- [] nft object id : -- [] 转账 nft hash: +- [x] nft package id : 0xa64e8e564e5bccf6b02e4650cae7a832eebb1fbe7d33107ba0569cf08b617f77 +- [x] nft object id : 0x87eb680342f107a165ec1e6ec1ff8c798129a2d699425b254da5926d01d2a965 +- [x] 转账 nft hash: EgxvpwrMtzKeobzUCt6pNCxyuFVHbzQHnRN2gFpR1mLg ## 04 Move Game -- [] game package id : -- [] call game hash: +- [x] game package id : 0x13faadba66d69e6cba71bc94b34a5386379705991e2c771911583af14e5bacde +- [x] call game hash: CYUUcFQfpDnurLJvGqq1ynifeiCisTgKgehvtsvuLdP6 +- [x] call game hash: HxjHBXQdqCNNNreKEGvJFTuc6tAtvXTu87Wdn35L3vuj ## 05 Move Swap - [] swap package id : @@ -34,3 +35,9 @@ ## 06 SDK PTB - [] save hash : + +## 07 Move CTF Check In +- [x] get flag hash : 46rqisQvVC9hNPq4oVwCqEKXaMF9VdRqT3ZESQmzVsm3 + +## 08 Move CTF Lets Move +- [x] get flag hash : CJJexjcwBqhQkAbVPzH3Z6jD8SKbjD9nZLxgx7kW5998 \ No newline at end of file diff --git a/mover/xianglispider/code/readme.md b/mover/xianglispider/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/xianglispider/code/task1/hello_world/Move.toml b/mover/xianglispider/code/task1/hello_world/Move.toml new file mode 100644 index 000000000..af1041368 --- /dev/null +++ b/mover/xianglispider/code/task1/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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/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] +hello_world = "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/xianglispider/code/task1/hello_world/sources/hello_world.move b/mover/xianglispider/code/task1/hello_world/sources/hello_world.move new file mode 100644 index 000000000..7d7798f4a --- /dev/null +++ b/mover/xianglispider/code/task1/hello_world/sources/hello_world.move @@ -0,0 +1,19 @@ +module hello_world::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"move"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/xianglispider/code/task2/faucet/Move.toml b/mover/xianglispider/code/task2/faucet/Move.toml new file mode 100644 index 000000000..59a9e355e --- /dev/null +++ b/mover/xianglispider/code/task2/faucet/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "faucet" +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)"] +published-at = "0x88d896dfb79e3cf42a2ff46bb78009e1772fdf917d39f8135e9e67a0151af706" + +[dependencies] +Sui = { git = "https://gitee.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] +faucet = "0x88d896dfb79e3cf42a2ff46bb78009e1772fdf917d39f8135e9e67a0151af706" + +# 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/xianglispider/code/task2/faucet/sources/faucet.move b/mover/xianglispider/code/task2/faucet/sources/faucet.move new file mode 100644 index 000000000..230b42cdc --- /dev/null +++ b/mover/xianglispider/code/task2/faucet/sources/faucet.move @@ -0,0 +1,27 @@ +/* +/// Module: faucet +module faucet::faucet { + +} +*/ +module faucet::faucet { + use sui::coin; + // use sui::transfer; + use sui::tx_context::sender; + use sui::url::Url; + + public struct FAUCET has drop {} + + fun init(witness: FAUCET, ctx: &mut TxContext) { + let icon_url = option::none(); + + let (treasury_cap, coin_metadata) = + coin::create_currency(witness, 6, b"xianglispiderFaucet", b"xianglispider's coin Faucet", b"this is qian", icon_url, ctx); + + // 所有权共享 不可变共享 + transfer::public_freeze_object(coin_metadata); + + // 共享 国库管理权限 + transfer::public_share_object(treasury_cap); + } +} diff --git a/mover/xianglispider/code/task2/mycoin/Move.toml b/mover/xianglispider/code/task2/mycoin/Move.toml new file mode 100644 index 000000000..70032b221 --- /dev/null +++ b/mover/xianglispider/code/task2/mycoin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "mycoin" +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/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] +mycoin = "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/xianglispider/code/task2/mycoin/sources/mycoin.move b/mover/xianglispider/code/task2/mycoin/sources/mycoin.move new file mode 100644 index 000000000..3dde673f5 --- /dev/null +++ b/mover/xianglispider/code/task2/mycoin/sources/mycoin.move @@ -0,0 +1,23 @@ +module mycoin::mycoin { + use sui::coin; + // use sui::transfer; + use sui::tx_context::sender; + use sui::url::Url; + + // public struct MY_COIN has drop {} + public struct MYCOIN has drop {} + + // fun init(witness: MY_COIN, ctx: &mut TxContext) { + fun init(witness: MYCOIN, ctx: &mut TxContext) { + let icon_url = option::none(); + + let (treasury_cap, coin_metadata) = + coin::create_currency(witness, 6, b"xianglispider", b"xianglispider's coin", b"this is qian", icon_url, ctx); + + // 所有权共享 不可变共享 + transfer::public_freeze_object(coin_metadata); + + // 独享 国库管理权限菜单 + transfer::public_transfer(treasury_cap, sender(ctx)); + } +} diff --git a/mover/xianglispider/code/task3/my_nft/Move.toml b/mover/xianglispider/code/task3/my_nft/Move.toml new file mode 100644 index 000000000..1f5914ca6 --- /dev/null +++ b/mover/xianglispider/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/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] +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/xianglispider/code/task3/my_nft/sources/my_nft.move b/mover/xianglispider/code/task3/my_nft/sources/my_nft.move new file mode 100644 index 000000000..6f8bad095 --- /dev/null +++ b/mover/xianglispider/code/task3/my_nft/sources/my_nft.move @@ -0,0 +1,32 @@ +module my_nft::my_nft { + + use std::string; + use std::string::String; + use sui::transfer; + use sui::tx_context; + + public struct MY_NFT has key, store { + id:UID, + name:String, + image_url:String + } + + fun init(ctx:&mut TxContext){ + let my_nft = MY_NFT{ + id: object::new(ctx), + name: string::utf8(b"xianglispider"), + image_url: string::utf8(b"https://avatars.githubusercontent.com/u/85993688?v=4"), + }; + transfer::public_transfer(my_nft, tx_context::sender(ctx)); + } + + + public entry fun mint(name:String, image_url:String, recipient: address, ctx:&mut TxContext){ + let my_nft = MY_NFT{ + id:object::new(ctx), + name, + image_url + }; + transfer::public_transfer(my_nft, recipient); + } +} \ No newline at end of file diff --git a/mover/xianglispider/code/task3/my_nft/tests/my_nft_tests.move b/mover/xianglispider/code/task3/my_nft/tests/my_nft_tests.move new file mode 100644 index 000000000..5d3a60230 --- /dev/null +++ b/mover/xianglispider/code/task3/my_nft/tests/my_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[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/xianglispider/code/task4/flip_coin/Move.toml b/mover/xianglispider/code/task4/flip_coin/Move.toml new file mode 100644 index 000000000..2f5c7e5da --- /dev/null +++ b/mover/xianglispider/code/task4/flip_coin/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "flip_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/testnet" } +faucet = { local = "../../task2/faucet" } + +# 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] +flip_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/xianglispider/code/task4/flip_coin/sources/flip_coin.move b/mover/xianglispider/code/task4/flip_coin/sources/flip_coin.move new file mode 100644 index 000000000..56c11b09a --- /dev/null +++ b/mover/xianglispider/code/task4/flip_coin/sources/flip_coin.move @@ -0,0 +1,78 @@ +module flip_coin::flip_coin { + + use sui::sui::SUI; + use sui::balance::{Self, Balance}; + use sui::transfer; + use sui::tx_context::sender; + use faucet::faucet::FAUCET; + use sui::coin; + use sui::coin::{Coin, from_balance, into_balance}; + use sui::random; + use sui::random::Random; + use sui::transfer::{share_object, transfer, public_transfer}; + + + public struct Game has key { + id : UID, + val: Balance + } + + public struct AdminCap has key { + id : UID, + } + + fun init(ctx : &mut TxContext) { + let game = Game { + id : object::new(ctx), + val : balance::zero() + }; + transfer::share_object(game); + + let admin = AdminCap{ + id:object::new(ctx) + }; + transfer::transfer(admin, sender(ctx)); + } + + entry fun play(game: &mut Game, flip_value: bool, in: Coin, rand: &Random, ctx: &mut TxContext) { + let coin_value = coin::value(&in); + + let play_address = sender(ctx); + let game_val = balance::value(&game.val) ; + + if (game_val < coin_value) { + abort 1; + }; + + //防止 all in 战神,限制每次最大是合约里面钱的10分之一 + if (game_val < coin_value*10) { + abort 2; + }; + + let mut gen = random::new_generator(rand, ctx); + + let mut flag = random::generate_bool(&mut gen); + if (flip_value == flag) { + let win_balance = balance::split(&mut game.val, coin_value); + let win_coin = from_balance(win_balance, ctx); + public_transfer(win_coin, play_address); + public_transfer(in, play_address); + }else {//输了,放到余额 + let in_balance = into_balance(in); + balance::join(&mut game.val, in_balance); + } + } + + + public entry fun deposit(game: &mut Game, in: Coin, ctx: &TxContext) { + let in_balance = into_balance(in); + balance::join(&mut game.val, in_balance); + } + + public entry fun withdraw(_: &AdminCap, game: &mut Game, amt: u64, ctx: &mut TxContext) { + let win_balance = balance::split(&mut game.val, amt); + let win_coin = from_balance(win_balance, ctx); + public_transfer(win_coin, sender(ctx)); + } +} + diff --git a/mover/xianglispider/images/packeageID.png b/mover/xianglispider/images/packeageID.png new file mode 100644 index 000000000..32a7f2ed0 Binary files /dev/null and b/mover/xianglispider/images/packeageID.png differ diff --git a/mover/xianglispider/images/task3.png b/mover/xianglispider/images/task3.png new file mode 100644 index 000000000..be1f6f2a3 Binary files /dev/null and b/mover/xianglispider/images/task3.png differ diff --git a/mover/xianglispider/images/wallet.png b/mover/xianglispider/images/wallet.png new file mode 100644 index 000000000..fd3e11d23 Binary files /dev/null and b/mover/xianglispider/images/wallet.png differ diff --git a/mover/xianglispider/notes/readme.md b/mover/xianglispider/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/xianglispider/readme.md b/mover/xianglispider/readme.md new file mode 100644 index 000000000..929c1ed5d --- /dev/null +++ b/mover/xianglispider/readme.md @@ -0,0 +1,53 @@ +## 基本信息 +- Sui钱包地址: `0x191ee5f0125d015528adb707ae083ac38a7106f2f88f2f6fe20e30b06f282baa` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `xianglispider` + +## 个人简介 +- 工作经验: 15年 +- 技术栈: `go` `C/C++` +- 5年web3开发经验,对Move特别感兴趣 +- 联系方式: tg: `https://t.me/zhangxiangli` + +## 任务 + +## 01 hello move +- [x] Sui cli version:sui 1.28.0-1d48056a7519-dirty +- [x] Sui钱包截图: ![Sui钱包截图](./images/wallet.png) +- [x] package id: 0x0ee420a503f8846f2357bb3ac5ae1fb5a79f3cbb58bf424b29fd105217d43ae3 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/packeageID.png) + +## 02 move coin +- [x] My Coin package id : 0xe99f53084f71c48281c9d673f766ac91497b5f47a11177e6c324f1f09f23073a +- [x] Faucet package id : 0x88d896dfb79e3cf42a2ff46bb78009e1772fdf917d39f8135e9e67a0151af706 +- [x] 转账 `My Coin` hash: 74FB14Y7tSmkq9kRqZNxJTEzjP6Ja31G5sPxrQnPmnpt +- [x] `Faucet Coin` address1 mint hash:3ws19B35osUbjHJy7tVmr3QfkPt6Yq69HuF32vwpfBZw +- [x] `Faucet Coin` address2 mint hash:AmyQ7KToMUGD7qVN1pQskxa5y8uLc2e8WKLZUG8m5Nb + +## 03 move NFT +- [x] nft package id :0xfba0df39d269c567a94032bc0613f3d19df5452f9a6ddcb5ac14908d8357d7eb +- [x] nft object id : 0x02a5fd26e3035c6515719347581ec68d142f9792f38d3a03e4eef0be4d83900a +- [x] 转账 nft hash:9988zsQQkuE33tA3j7hVXHVHavK8b6xofafbApJ9cqJG +- [x] scan上的NFT截图:![Scan截图](./images/task3.png) + +## 04 Move Game +- [x] game package id :0xb5d183ca165aae05dde23ba6c6a6e9848f590c320ee59486fc920b43cfa38e21 +- [x] deposit Coin hash:Fo6GUzKtxFhw2ycD2HisT1WfRUW122grnfj3P5gbQujg +- [x] withdraw `Coin` hash:GEZG9BishJH4QZqq4szSFGRbgVwivzSqas7jVnHhKFLF +- [x] play game hash: ESHtNwnAqeFpg6PvZj4SduADT1QK54oLgpMTM3H4YJGq + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/xiaodi007/.gitignore b/mover/xiaodi007/.gitignore new file mode 100644 index 000000000..5647dddf6 --- /dev/null +++ b/mover/xiaodi007/.gitignore @@ -0,0 +1,29 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. +build +task8 +test +.idea +.vscode +# dependencies +**/node_modules +.pnpm-store/ +/.pnp +.pnp.js + +# testing +/coverage + +# production +**/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local +npm-debug.log* +yarn-debug.log* +yarn-error.log* +sui.log.* +.history \ No newline at end of file diff --git a/mover/xiaodi007/code/task1/hello_xiaodi007/Move.lock b/mover/xiaodi007/code/task1/hello_xiaodi007/Move.lock new file mode 100644 index 000000000..2c9cb8ac2 --- /dev/null +++ b/mover/xiaodi007/code/task1/hello_xiaodi007/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C1739470A2AD9C39B2A912E526219C3B76835635A86DF9241B662BB42180B5C6" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "2b337d4f" +original-published-id = "0x4bb8f2f992c19b2acbd9e48e7ad3cdbcf595a967227f3dea2a27de53d816a3ba" +latest-published-id = "0x4bb8f2f992c19b2acbd9e48e7ad3cdbcf595a967227f3dea2a27de53d816a3ba" +published-version = "1" diff --git a/mover/xiaodi007/code/task1/hello_xiaodi007/Move.toml b/mover/xiaodi007/code/task1/hello_xiaodi007/Move.toml new file mode 100644 index 000000000..7ea3fbea9 --- /dev/null +++ b/mover/xiaodi007/code/task1/hello_xiaodi007/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_xiaodi007" +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] +hello_xiaodi007 = "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/xiaodi007/code/task1/hello_xiaodi007/sources/hello_xiaodi007.move b/mover/xiaodi007/code/task1/hello_xiaodi007/sources/hello_xiaodi007.move new file mode 100644 index 000000000..ff1e8d8a9 --- /dev/null +++ b/mover/xiaodi007/code/task1/hello_xiaodi007/sources/hello_xiaodi007.move @@ -0,0 +1,25 @@ +/* +/// Module: hello_xiaodi007 +module hello_xiaodi007::hello_xiaodi007 { + +} +*/ +module hello_xiaodi007::hello_xiaodi007 { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"hello_xiaodi007"), + }; + transfer(hello_move, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/xiaodi007/code/task1/hello_xiaodi007/tests/hello_xiaodi007_tests.move b/mover/xiaodi007/code/task1/hello_xiaodi007/tests/hello_xiaodi007_tests.move new file mode 100644 index 000000000..3614b92f3 --- /dev/null +++ b/mover/xiaodi007/code/task1/hello_xiaodi007/tests/hello_xiaodi007_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_xiaodi007::hello_xiaodi007_tests { + // uncomment this line to import the module + // use hello_xiaodi007::hello_xiaodi007; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_xiaodi007() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_xiaodi007::hello_xiaodi007_tests::ENotImplemented)] + fun test_hello_xiaodi007_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/xiaodi007/code/task2/script.sh b/mover/xiaodi007/code/task2/script.sh new file mode 100644 index 000000000..3ba8fe711 --- /dev/null +++ b/mover/xiaodi007/code/task2/script.sh @@ -0,0 +1,29 @@ +# 转账 `My Coin` + +sui client call \ +--package 0xabca394c7bf15eef038fc92b334b9c441b6abc8f9bd391c8f6d7a4e470b13275 \ +--module xiaodi_coin \ +--function mint \ +--args 0x9c01f80e2bace4218c09bd97afb2dcafee314e80dd3e834a6430ea55294e6769 1000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 \ + + + +# Faucet Coin address1 +sui client switch --address affectionate-opal + +sui client call \ +--package 0xa6446b4c285361f70b381d4793df1096bc0f9cdea076733ebe8c07f0d17541a7 \ +--module xiaodi007_faucet_coin \ +--function mint \ +--args 0xbf9794c979280f281afe2193d62b73aaecaf89d6bd87616eb2f8a1a3802f9cd3 666000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 \ + + + +# Faucet Coin address2 +sui client switch --address agitated-emerald + +sui client call \ +--package 0xa6446b4c285361f70b381d4793df1096bc0f9cdea076733ebe8c07f0d17541a7 \ +--module xiaodi007_faucet_coin \ +--function mint \ +--args 0xbf9794c979280f281afe2193d62b73aaecaf89d6bd87616eb2f8a1a3802f9cd3 666000000 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 \ diff --git a/mover/xiaodi007/code/task2/xiaodi007_coin/Move.lock b/mover/xiaodi007/code/task2/xiaodi007_coin/Move.lock new file mode 100644 index 000000000..4107aebe2 --- /dev/null +++ b/mover/xiaodi007/code/task2/xiaodi007_coin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "7CC8CBBE2A23BA92196BE0D23769C7E741B3711F21830A9584C6B58BCDC38417" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "2b337d4f" +original-published-id = "0x8c2d2889c22c75fbecfec3ddb80a0e63e41df212c31a005df9157038c168379d" +latest-published-id = "0x8c2d2889c22c75fbecfec3ddb80a0e63e41df212c31a005df9157038c168379d" +published-version = "1" + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xabca394c7bf15eef038fc92b334b9c441b6abc8f9bd391c8f6d7a4e470b13275" +latest-published-id = "0xabca394c7bf15eef038fc92b334b9c441b6abc8f9bd391c8f6d7a4e470b13275" +published-version = "1" diff --git a/mover/xiaodi007/code/task2/xiaodi007_coin/Move.toml b/mover/xiaodi007/code/task2/xiaodi007_coin/Move.toml new file mode 100644 index 000000000..b65fe8c87 --- /dev/null +++ b/mover/xiaodi007/code/task2/xiaodi007_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "xiaodi007_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://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] +xiaodi007_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/xiaodi007/code/task2/xiaodi007_coin/sources/xiaodi007_coin.move b/mover/xiaodi007/code/task2/xiaodi007_coin/sources/xiaodi007_coin.move new file mode 100644 index 000000000..6b0aac5c1 --- /dev/null +++ b/mover/xiaodi007/code/task2/xiaodi007_coin/sources/xiaodi007_coin.move @@ -0,0 +1,49 @@ +/* +/// Module: xiaodi007_coin +module xiaodi007_coin::xiaodi007_coin { + +} +*/ + + +module xiaodi007_coin::xiaodi_coin { + use std::option; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct XIAODI_COIN has drop {} + + fun init(witness: XIAODI_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 2, + b"XIAODI_COIN", + b"NB", + b"best coin in the world", + option::none(), + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public fun burn(treasury_cap: &mut TreasuryCap, coin: Coin) { + coin::burn(treasury_cap, coin); + } + + #[test_only] + public fun test_init(ctx: &mut TxContext) { + init(XIAODI_COIN {}, ctx); + } +} \ No newline at end of file diff --git a/mover/xiaodi007/code/task2/xiaodi007_coin/tests/xiaodi007_coin_tests.move b/mover/xiaodi007/code/task2/xiaodi007_coin/tests/xiaodi007_coin_tests.move new file mode 100644 index 000000000..09ab2d04a --- /dev/null +++ b/mover/xiaodi007/code/task2/xiaodi007_coin/tests/xiaodi007_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module xiaodi007_coin::xiaodi007_coin_tests { + // uncomment this line to import the module + // use xiaodi007_coin::xiaodi007_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_xiaodi007_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::xiaodi007_coin::xiaodi007_coin_tests::ENotImplemented)] + fun test_xiaodi007_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/xiaodi007/code/task2/xiaodi007_faucet_coin/Move.lock b/mover/xiaodi007/code/task2/xiaodi007_faucet_coin/Move.lock new file mode 100644 index 000000000..bcf1f156e --- /dev/null +++ b/mover/xiaodi007/code/task2/xiaodi007_faucet_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "0FD67B8C9D968099C45AA1DCDE8B00111517D0098C962AAAC466524E5E9FED45" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xa6446b4c285361f70b381d4793df1096bc0f9cdea076733ebe8c07f0d17541a7" +latest-published-id = "0xa6446b4c285361f70b381d4793df1096bc0f9cdea076733ebe8c07f0d17541a7" +published-version = "1" diff --git a/mover/xiaodi007/code/task2/xiaodi007_faucet_coin/Move.toml b/mover/xiaodi007/code/task2/xiaodi007_faucet_coin/Move.toml new file mode 100644 index 000000000..f6be62387 --- /dev/null +++ b/mover/xiaodi007/code/task2/xiaodi007_faucet_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "xiaodi007_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://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] +xiaodi007_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/xiaodi007/code/task2/xiaodi007_faucet_coin/sources/xiaodi007_faucet_coin.move b/mover/xiaodi007/code/task2/xiaodi007_faucet_coin/sources/xiaodi007_faucet_coin.move new file mode 100644 index 000000000..957bae267 --- /dev/null +++ b/mover/xiaodi007/code/task2/xiaodi007_faucet_coin/sources/xiaodi007_faucet_coin.move @@ -0,0 +1,29 @@ +/* +/// Module: xiaodi007_faucet_coin +module xiaodi007_faucet_coin::xiaodi007_faucet_coin { + +} +*/ + +module xiaodi007_faucet_coin::xiaodi007_faucet_coin { + use sui::coin::{Self, TreasuryCap}; + + public struct XIAODI007_FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: XIAODI007_FAUCET_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, 6, b"XIAODI007_FAUCET_COIN", b"", b"", option::none(), ctx); + transfer::public_share_object(metadata); + transfer::public_share_object(treasury) + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } +} \ No newline at end of file diff --git a/mover/xiaodi007/code/task2/xiaodi007_faucet_coin/tests/xiaodi007_faucet_coin_tests.move b/mover/xiaodi007/code/task2/xiaodi007_faucet_coin/tests/xiaodi007_faucet_coin_tests.move new file mode 100644 index 000000000..a9f29d99f --- /dev/null +++ b/mover/xiaodi007/code/task2/xiaodi007_faucet_coin/tests/xiaodi007_faucet_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module xiaodi007_faucet_coin::xiaodi007_faucet_coin_tests { + // uncomment this line to import the module + // use xiaodi007_faucet_coin::xiaodi007_faucet_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_xiaodi007_faucet_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::xiaodi007_faucet_coin::xiaodi007_faucet_coin_tests::ENotImplemented)] + fun test_xiaodi007_faucet_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/xiaodi007/code/task3/script.sh b/mover/xiaodi007/code/task3/script.sh new file mode 100644 index 000000000..afb83b69e --- /dev/null +++ b/mover/xiaodi007/code/task3/script.sh @@ -0,0 +1,31 @@ +# create a new nft object +sui client call \ +--package 0x53829e8f97dd3ee7c9954c1743d6c386ecc86a8e5cd76ed590e8c8bea83c56a6 \ +--module xiaodi007_nft \ +--function mint_to_sender \ +--args xiaodi007 \ + + +# send a nft object to other +sui client call \ +--package 0x53829e8f97dd3ee7c9954c1743d6c386ecc86a8e5cd76ed590e8c8bea83c56a6 \ +--module xiaodi007_nft \ +--function transfer \ +--args 0xafc126feb46917afa9c315be3eeea66b2f8adb98b47e4f42b43e7c784d24b6f3 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 \ + + + + +sui client call \ +--function get_flag \ +--module lets_move \ +--package 0xd5c6f9f40969f7af6f97c17d86ade578899f81b519f13e01dd551b12c3d99abf \ +--args 1234123ini 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff 0x8 \ + + + +sui client call \ +--function get_flag \ +--module ctf \ +--package 0x86b7defbe1a25c4c885589960d8d27e0117d7acc3948717bb6ad0c1eae0b72a1 \ +--args 1234123ini 0xac8019e319c6139b2cf6ea937aedab2d584fbeca28d0a7040518bac5aadbdbff 0x8 \ diff --git a/mover/xiaodi007/code/task3/xiaodi007_nft/Move.lock b/mover/xiaodi007/code/task3/xiaodi007_nft/Move.lock new file mode 100644 index 000000000..5fbfd2e71 --- /dev/null +++ b/mover/xiaodi007/code/task3/xiaodi007_nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "1F66728AACEC78B05D3B80E45561ED977E97307993E00DF067148628AA659932" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x53829e8f97dd3ee7c9954c1743d6c386ecc86a8e5cd76ed590e8c8bea83c56a6" +latest-published-id = "0x53829e8f97dd3ee7c9954c1743d6c386ecc86a8e5cd76ed590e8c8bea83c56a6" +published-version = "1" diff --git a/mover/xiaodi007/code/task3/xiaodi007_nft/Move.toml b/mover/xiaodi007/code/task3/xiaodi007_nft/Move.toml new file mode 100644 index 000000000..064de3c4d --- /dev/null +++ b/mover/xiaodi007/code/task3/xiaodi007_nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "xiaodi007_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://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] +xiaodi007_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/xiaodi007/code/task3/xiaodi007_nft/sources/xiaodi007_nft.move b/mover/xiaodi007/code/task3/xiaodi007_nft/sources/xiaodi007_nft.move new file mode 100644 index 000000000..06e232e58 --- /dev/null +++ b/mover/xiaodi007/code/task3/xiaodi007_nft/sources/xiaodi007_nft.move @@ -0,0 +1,90 @@ +/* +/// Module: xiaodi007_nft +module xiaodi007_nft::xiaodi007_nft { + +} +*/ +module xiaodi007_nft::xiaodi007_nft { + use std::string::{String, utf8}; + use sui::event; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct XIAODI007_NFT has drop {} + + public struct XiaoDi has key, store { + id: UID, + name: String, + } + + /// Event: emitted when a new Puppy is minted. + public struct XiaoDiMinted has copy, drop { + id: ID, + name: String, + minted_by: address, + } + +fun init(otw: XIAODI007_NFT, ctx: &mut sui::tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + utf8(b"description"), + ]; + + let values = vector[ + // For `name` we can use the `Github.name` property + utf8(b"{name}"), + // Image URL wo can use the `Github.name` property + utf8(b"https://github.com/{name}.png"), + utf8(b"{name}'s awsome NFT"), + ]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values,ctx); + + // update version to 1 + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + + public fun mint_to_sender( + name: vector, + ctx: &mut TxContext + ) { + let sender = ctx.sender(); + let nft = XiaoDi { + id: object::new(ctx), + name: utf8(name) + }; + + event::emit(XiaoDiMinted { + id: object::id(&nft), + minted_by: sender, + name: nft.name, + }); + + transfer::public_transfer(nft, sender); + } + + /// Transfer `nft` to `recipient` + public fun transfer( + nft: XiaoDi, recipient: address, _: &mut TxContext + ) { + transfer::public_transfer(nft, recipient) + } + + + + public fun destroy(xiaodi: XiaoDi) { + let XiaoDi { id, name: _ } = xiaodi; + id.delete() + } + + public fun name(xiaodi: &XiaoDi): String { xiaodi.name } + + +} diff --git a/mover/xiaodi007/code/task3/xiaodi007_nft/tests/xiaodi007_nft_tests.move b/mover/xiaodi007/code/task3/xiaodi007_nft/tests/xiaodi007_nft_tests.move new file mode 100644 index 000000000..38c9e8d41 --- /dev/null +++ b/mover/xiaodi007/code/task3/xiaodi007_nft/tests/xiaodi007_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module xiaodi007_nft::xiaodi007_nft_tests { + // uncomment this line to import the module + // use xiaodi007_nft::xiaodi007_nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_xiaodi007_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::xiaodi007_nft::xiaodi007_nft_tests::ENotImplemented)] + fun test_xiaodi007_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/xiaodi007/code/task4/xiaodi_game/Move.lock b/mover/xiaodi007/code/task4/xiaodi_game/Move.lock new file mode 100644 index 000000000..0dfe778af --- /dev/null +++ b/mover/xiaodi007/code/task4/xiaodi_game/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "476B7C4EB50050A872DF371AD84180E86B0A4FA97A9AAE8FE04CCBF31082DDEE" +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.26.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xcc458eedd7c3f24cfb36a0a032e48cc00de15faeb5d9f98635c45ef603b9e741" +latest-published-id = "0xcc458eedd7c3f24cfb36a0a032e48cc00de15faeb5d9f98635c45ef603b9e741" +published-version = "1" diff --git a/mover/xiaodi007/code/task4/xiaodi_game/Move.toml b/mover/xiaodi007/code/task4/xiaodi_game/Move.toml new file mode 100644 index 000000000..d0aafc784 --- /dev/null +++ b/mover/xiaodi007/code/task4/xiaodi_game/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "xiaodi_game" +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] +xiaodi_game = "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/xiaodi007/code/task4/xiaodi_game/script.sh b/mover/xiaodi007/code/task4/xiaodi_game/script.sh new file mode 100644 index 000000000..2f30076f3 --- /dev/null +++ b/mover/xiaodi007/code/task4/xiaodi_game/script.sh @@ -0,0 +1,60 @@ +sui client publish --gas-budget 25000000 + + +# request faucet cion +sui client call \ +--package 0xcc458eedd7c3f24cfb36a0a032e48cc00de15faeb5d9f98635c45ef603b9e741 \ +--module xiaodi007_faucet_coin \ +--function mint \ +--args 0xa37194359f322c8daadc40e5b681b71d808dd9ad5fcf458552b8509887e886fb 1000000000 0x79a6386be5a90f7e0b1f67f58e8a5041363a5c50924412ad6694889b762fbaba \ + + +# coin object: 0xd193de568e0514b8dd4132ff1e0d3af085262d10a908bf7184440593509551b1 + + +# get game object +sui client call \ +--package 0xcc458eedd7c3f24cfb36a0a032e48cc00de15faeb5d9f98635c45ef603b9e741 \ +--module xiaodi_game \ +--function creat_game \ + + +# game object: 0x760b5b738d997a60df515125d25979f254209cdfecb662abc0f292f2293b081e + + +# deposit cion into game object +sui client call \ +--package 0xcc458eedd7c3f24cfb36a0a032e48cc00de15faeb5d9f98635c45ef603b9e741 \ +--module xiaodi_game \ +--function deposit \ +--args 0x760b5b738d997a60df515125d25979f254209cdfecb662abc0f292f2293b081e 0xd193de568e0514b8dd4132ff1e0d3af085262d10a908bf7184440593509551b1 1000000000 \ + + +# get ticket +sui client call \ +--package 0xcc458eedd7c3f24cfb36a0a032e48cc00de15faeb5d9f98635c45ef603b9e741 \ +--module xiaodi007_faucet_coin \ +--function mint \ +--args 0xa37194359f322c8daadc40e5b681b71d808dd9ad5fcf458552b8509887e886fb 1000000000 0x79a6386be5a90f7e0b1f67f58e8a5041363a5c50924412ad6694889b762fbaba \ + +# ticket coin object: 0xda8fcb9dfac4da46700ef00095bd9ab1d33ca4aab2c602cac0ba26cac4ce3df8 + +# play game +sui client call \ +--package 0xcc458eedd7c3f24cfb36a0a032e48cc00de15faeb5d9f98635c45ef603b9e741 \ +--module xiaodi_game \ +--function play \ +--args 8 0x760b5b738d997a60df515125d25979f254209cdfecb662abc0f292f2293b081e 0xda8fcb9dfac4da46700ef00095bd9ab1d33ca4aab2c602cac0ba26cac4ce3df8 0x8 \ + + +# play hash AyED8CHZjPKkCJiX629TbgnSAjm2yXwvRnDcdYyP7K8D + +# deposit cion into game object +sui client call \ +--package 0xcc458eedd7c3f24cfb36a0a032e48cc00de15faeb5d9f98635c45ef603b9e741 \ +--module xiaodi_game \ +--function withdraw \ +--args 0x760b5b738d997a60df515125d25979f254209cdfecb662abc0f292f2293b081e 800000000 \ + + +# deposit hash 7nPBdQ7Xos3dzr3NjMVyAQmUUaBEKJ4V15Jwq6H1YHCA \ No newline at end of file diff --git a/mover/xiaodi007/code/task4/xiaodi_game/sources/xiaodi007_faucet_coin.move b/mover/xiaodi007/code/task4/xiaodi_game/sources/xiaodi007_faucet_coin.move new file mode 100644 index 000000000..a6fa07faf --- /dev/null +++ b/mover/xiaodi007/code/task4/xiaodi_game/sources/xiaodi007_faucet_coin.move @@ -0,0 +1,29 @@ +/* +/// Module: xiaodi007_faucet_coin +module xiaodi007_faucet_coin::xiaodi007_faucet_coin { + +} +*/ + +module xiaodi_game::xiaodi007_faucet_coin { + use sui::coin::{Self, TreasuryCap}; + + public struct XIAODI007_FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: XIAODI007_FAUCET_COIN, ctx: &mut TxContext) { + let (treasury, metadata) = coin::create_currency(witness, 6, b"XIAODI007_FAUCET_COIN", b"", b"", option::none(), ctx); + transfer::public_share_object(metadata); + transfer::public_share_object(treasury) + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext, + ) { + let coin = coin::mint(treasury_cap, amount, ctx); + transfer::public_transfer(coin, recipient) + } +} \ No newline at end of file diff --git a/mover/xiaodi007/code/task4/xiaodi_game/sources/xiaodi_game.move b/mover/xiaodi007/code/task4/xiaodi_game/sources/xiaodi_game.move new file mode 100644 index 000000000..f3acb65de --- /dev/null +++ b/mover/xiaodi007/code/task4/xiaodi_game/sources/xiaodi_game.move @@ -0,0 +1,127 @@ +/* +/// Module: xiaodi_game +module xiaodi_game::xiaodi_game { + +} +*/ + +module xiaodi_game::xiaodi_game { + use std::string::{Self, String}; + use sui::event; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::tx_context::sender; + use sui::random; + use sui::random::{Random}; + use xiaodi_game::xiaodi007_faucet_coin::XIAODI007_FAUCET_COIN; + + + const EInvalidNumber: u64 = 0; + const EPoolNotEnough: u64 = 1; + const EInputNotEnough: u64 = 2; + + public struct GameResult has copy, drop { + your_choice: u8, + npc_choice: u8, + result: String, + is_winner: bool, + } + + public struct Game has key { + id: UID, + pool: Balance, + ticket: u64, + reward: u64, + } + + + fun choice9(rng: &random::Random, ctx: &mut TxContext): u8 { + // Initialize the random number generator + let mut generator = random::new_generator(rng, ctx); + + // Generate a randomnumber + let rand_num = random::generate_u8_in_range(&mut generator, 0, 9); + + rand_num + } + + fun init(ctx: &mut TxContext) { + } + + entry fun creat_game(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + pool: balance::zero(), + ticket: 2_000_000, + reward: 4_000_000, + }; + transfer::share_object(game); + + } + + public entry fun play(choice: u8, game: &mut Game, input: Coin, rng: &Random, ctx: &mut TxContext) { + assert!(balance::value(&game.pool) >= game.reward - game.ticket, EPoolNotEnough); + assert!(choice >= 0 && choice < 10, EInvalidNumber); + + let input_value = coin::value(&input); + assert!(input_value >= game.ticket, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > game.ticket) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, game.ticket) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + }; + + let npc_choice = choice9(rng, ctx); + let (result, is_winner) = if ( + npc_choice < choice + ) { + (string::utf8(b"Win"), true) + } else if (choice == npc_choice) { + (string::utf8(b"Draw"), false) + } else { + (string::utf8(b"Lose"), false) + }; + + if (is_winner) { + let reward_balance = balance::split(&mut game.pool, game.reward); + let reward = coin::from_balance(reward_balance, ctx); + transfer::public_transfer(reward, sender(ctx)); + }; + + event::emit(GameResult { + your_choice: choice, + npc_choice: npc_choice, + result, + is_winner, + }); + } + public entry fun deposit(game: &mut Game, input: Coin, amount: u64, ctx: &mut TxContext) { + let input_value = coin::value(&input); + assert!(input_value >= amount, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > amount) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, amount) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + } + } + + public entry fun withdraw(game: &mut Game, amount: u64, ctx: &mut TxContext) { + let output_balance = balance::split(&mut game.pool, amount); + let output = coin::from_balance(output_balance, ctx); + transfer::public_transfer(output, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/xiaodi007/code/task4/xiaodi_game/tests/xiaodi_game_tests.move b/mover/xiaodi007/code/task4/xiaodi_game/tests/xiaodi_game_tests.move new file mode 100644 index 000000000..b892343b5 --- /dev/null +++ b/mover/xiaodi007/code/task4/xiaodi_game/tests/xiaodi_game_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module xiaodi_game::xiaodi_game_tests { + // uncomment this line to import the module + // use xiaodi_game::xiaodi_game; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_xiaodi_game() { + // pass + } + + #[test, expected_failure(abort_code = ::xiaodi_game::xiaodi_game_tests::ENotImplemented)] + fun test_xiaodi_game_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/xiaodi007/code/task5/xiaodi_swap/Move.lock b/mover/xiaodi007/code/task5/xiaodi_swap/Move.lock new file mode 100644 index 000000000..a38245356 --- /dev/null +++ b/mover/xiaodi007/code/task5/xiaodi_swap/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "6385E94662548F30BD0949907D8F794B95FD489CFAA8681AE6AE3FBA3F17BADA" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44" +latest-published-id = "0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44" +published-version = "1" diff --git a/mover/xiaodi007/code/task5/xiaodi_swap/Move.toml b/mover/xiaodi007/code/task5/xiaodi_swap/Move.toml new file mode 100644 index 000000000..bb60b85be --- /dev/null +++ b/mover/xiaodi007/code/task5/xiaodi_swap/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "xiaodi_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 (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] +xiaodi_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" + diff --git a/mover/xiaodi007/code/task5/xiaodi_swap/script.sh b/mover/xiaodi007/code/task5/xiaodi_swap/script.sh new file mode 100644 index 000000000..286e29678 --- /dev/null +++ b/mover/xiaodi007/code/task5/xiaodi_swap/script.sh @@ -0,0 +1,95 @@ +sui client publish --gas-budget 35000000 + +# package id: 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44 + +# coinA cap: 0xece0dee1cd12dcb385c7b81db038c3f0f64e7b3be6a923c3d571a95594ccbbc2 +# coinA type: 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44::coinA::COINA + +# coinB cap: 0x651d8a261c1727a0012026aab731744caee0af6b49bd98afd62780f7cf63fecb +# coinB type: 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44::coinB::COINB + + +# mint coinA +sui client call --package 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44 \ + --module coinA \ + --function mint \ + --gas-budget 2500000 \ + --args 0xece0dee1cd12dcb385c7b81db038c3f0f64e7b3be6a923c3d571a95594ccbbc2 1000000 0x79a6386be5a90f7e0b1f67f58e8a5041363a5c50924412ad6694889b762fbaba + +# mint coinB + +sui client call --package 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44 \ + --module coinB \ + --function mint \ + --gas-budget 2500000 \ + --args 0x651d8a261c1727a0012026aab731744caee0af6b49bd98afd62780f7cf63fecb 1000000 0x79a6386be5a90f7e0b1f67f58e8a5041363a5c50924412ad6694889b762fbaba + +# create_pool +sui client call --package 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44 \ + --module xiaodi_swap \ + --function create_pool \ + --gas-budget 3500000 \ + --type-args 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44::coinA::COINA 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44::coinB::COINB + +# add lp +# pool id 0x09d56961c908ec1641d734099556d03977bbdaac51f876998c19bd60afac34d6 +# coinA 0x811861e680c7943392ddcedf1b60042e767c5620e8003d5c280e3c42eb4387a1 +# coinB 0x9919e9afe5b270f6204d8fbfcb0d2cc0ac33ede72d82a2b3c4483ae53652b831 + +sui client call --package 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44\ + --module xiaodi_swap \ + --function add_lp \ + --gas-budget 3500000 \ + --type-args 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44::coinA::COINA 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44::coinB::COINB \ + --args 0x09d56961c908ec1641d734099556d03977bbdaac51f876998c19bd60afac34d6 \ + 0x811861e680c7943392ddcedf1b60042e767c5620e8003d5c280e3c42eb4387a1 \ + 0x9919e9afe5b270f6204d8fbfcb0d2cc0ac33ede72d82a2b3c4483ae53652b831 + +# mint a new coinA +# mint coinA +sui client call --package 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44 \ + --module coinA \ + --function mint \ + --gas-budget 2500000 \ + --args 0xece0dee1cd12dcb385c7b81db038c3f0f64e7b3be6a923c3d571a95594ccbbc2 5000 0x79a6386be5a90f7e0b1f67f58e8a5041363a5c50924412ad6694889b762fbaba +# new coinA id: 0x64cd588aff6747678bb6388b18165c1f8efb96ef48b1e5419673056f6046202c + + +# mint a new coinB +# mint coinB +sui client call --package 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44 \ + --module coinB \ + --function mint \ + --gas-budget 2500000 \ + --args 0x651d8a261c1727a0012026aab731744caee0af6b49bd98afd62780f7cf63fecb 1000000 0x79a6386be5a90f7e0b1f67f58e8a5041363a5c50924412ad6694889b762fbaba +# new coinB id: 0x26d2e4fe5a58fb2d476489affe30b2c58d7de85949d2291e6cdb6027f172d8e3 + +# swich a to b +sui client call --package 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44 \ + --module xiaodi_swap \ + --function swap_a_to_b \ + --gas-budget 3500000 \ + --type-args 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44::coinA::COINA 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44::coinB::COINB \ + --args 0x09d56961c908ec1641d734099556d03977bbdaac51f876998c19bd60afac34d6 \ + 0x64cd588aff6747678bb6388b18165c1f8efb96ef48b1e5419673056f6046202c \ + 5000 +# hash id: 92txHgYNC7v6SV6v84L7WNJKcPwavX4VytKCbiHZiHT8 + +# swich a to b +sui client call --package 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44 \ + --module xiaodi_swap \ + --function swap_b_to_a \ + --gas-budget 3500000 \ + --type-args 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44::coinA::COINA 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44::coinB::COINB \ + --args 0x09d56961c908ec1641d734099556d03977bbdaac51f876998c19bd60afac34d6 \ + 0x26d2e4fe5a58fb2d476489affe30b2c58d7de85949d2291e6cdb6027f172d8e3 \ + 5000 + +# hash id: AM79bsDCUv2GHrTnjeK5hJvt8ddjs6D9w9LguJhXyFay + + +sui client call --package 0x60695ee31f93add1f79909c884a55dff7e5f140bbd2e495819966bd2f7971d42 \ + --module check_in \ + --function get_flag \ + --gas-budget 2500000 \ + --args 80al xiaodi007 0x011f9404e6f167e549b617a53eea058029167a2beac26c624cbc3550e04b5ad2 0x8 diff --git a/mover/xiaodi007/code/task5/xiaodi_swap/sources/coinA.move b/mover/xiaodi007/code/task5/xiaodi_swap/sources/coinA.move new file mode 100644 index 000000000..4028cec4a --- /dev/null +++ b/mover/xiaodi007/code/task5/xiaodi_swap/sources/coinA.move @@ -0,0 +1,29 @@ +module xiaodi_swap::coinA { + use sui::coin::{Self, TreasuryCap}; + + public struct COINA has drop {} + + fun init(witness: COINA, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 2, + b"COINA", + b"NB", + b"best coin in the world", + option::none(), + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } +} \ No newline at end of file diff --git a/mover/xiaodi007/code/task5/xiaodi_swap/sources/coinB.move b/mover/xiaodi007/code/task5/xiaodi_swap/sources/coinB.move new file mode 100644 index 000000000..92d4e52db --- /dev/null +++ b/mover/xiaodi007/code/task5/xiaodi_swap/sources/coinB.move @@ -0,0 +1,29 @@ +module xiaodi_swap::coinB { + use sui::coin::{Self, TreasuryCap}; + + public struct COINB has drop {} + + fun init(witness: COINB, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 2, + b"COINB", + b"NB", + b"best coin in the world", + option::none(), + ctx + ); + + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)); + } + + public fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } +} \ No newline at end of file diff --git a/mover/xiaodi007/code/task5/xiaodi_swap/sources/xiaodi_swap.move b/mover/xiaodi007/code/task5/xiaodi_swap/sources/xiaodi_swap.move new file mode 100644 index 000000000..37ab04318 --- /dev/null +++ b/mover/xiaodi007/code/task5/xiaodi_swap/sources/xiaodi_swap.move @@ -0,0 +1,93 @@ +/* +/// Module: xiaodi_swap +module xiaodi_swap::xiaodi_swap { + +} +*/ + +module xiaodi_swap::xiaodi_swap { + use sui::balance::{Self, Supply, Balance}; + use sui::coin; + use sui::coin::Coin; + use sui::transfer::{share_object, public_transfer}; + use sui::tx_context::sender; + + public struct AdminCap has key { + id: UID, + } + + public struct LP has drop {} + + public struct Pool has key { + id: UID, + coin_a: Balance, + coin_b: Balance, + lp_supply: Supply> + } + + public fun create_pool(ctx: &mut TxContext) { + let new_pool = Pool { + id: object::new(ctx), + coin_a: balance::zero(), + coin_b: balance::zero(), + lp_supply: balance::create_supply>(LP {}) + }; + share_object(new_pool) + } + + public fun add_lp(pool: &mut Pool,coin_a: Coin, coin_b: Coin, ctx: &mut TxContext) { + let coin_a_value = coin::value(&coin_a); + let coin_b_value = coin::value(&coin_b); + + coin::put(&mut pool.coin_a, coin_a); + coin::put(&mut pool.coin_b, coin_b); + + let lp_bal = balance::increase_supply(&mut pool.lp_supply, coin_a_value + coin_b_value); + let lp = coin::from_balance(lp_bal, ctx); + public_transfer(lp, sender(ctx)) + } + + public fun swap_a_b(pool: &mut Pool, + paid_in: Coin, + ctx: &mut TxContext): Coin { + let paid_value = coin::value(&paid_in); + coin::put(&mut pool.coin_a, paid_in); + coin::take(&mut pool.coin_b, paid_value, ctx) + } + + + + public entry fun swap_a_to_b(pool: &mut Pool, + mut coin_a: Coin, + amount: u64, + ctx: &mut TxContext) { + let coin_a_in = coin::split(&mut coin_a, amount, ctx); + let coin_b_out = swap_a_b(pool, coin_a_in, ctx); + let sender_addres = sender(ctx); + public_transfer(coin_a, sender_addres); + public_transfer(coin_b_out, sender_addres); + } + + + public fun swap_b_a(pool: &mut Pool, + paid_in: Coin, + ctx: &mut TxContext): Coin { + let paid_value = coin::value(&paid_in); + coin::put(&mut pool.coin_b, paid_in); + coin::take(&mut pool.coin_a, paid_value, ctx) + } + + + + public entry fun swap_b_to_a(pool: &mut Pool, + mut coin_b: Coin, + amount: u64, + ctx: &mut TxContext) { + let coin_b_in = coin::split(&mut coin_b, amount, ctx); + let coin_a_out = swap_b_a(pool, coin_b_in, ctx); + let sender_addres = sender(ctx); + public_transfer(coin_b, sender_addres); + public_transfer(coin_a_out, sender_addres); + } + +} \ No newline at end of file diff --git a/mover/xiaodi007/code/task5/xiaodi_swap/tests/xiaodi_swap_tests.move b/mover/xiaodi007/code/task5/xiaodi_swap/tests/xiaodi_swap_tests.move new file mode 100644 index 000000000..272af2b48 --- /dev/null +++ b/mover/xiaodi007/code/task5/xiaodi_swap/tests/xiaodi_swap_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module xiaodi_swap::xiaodi_swap_tests { + // uncomment this line to import the module + // use xiaodi_swap::xiaodi_swap; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_xiaodi_swap() { + // pass + } + + #[test, expected_failure(abort_code = ::xiaodi_swap::xiaodi_swap_tests::ENotImplemented)] + fun test_xiaodi_swap_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/xiaodi007/images/task1-package.png b/mover/xiaodi007/images/task1-package.png new file mode 100644 index 000000000..e871c16dd Binary files /dev/null and b/mover/xiaodi007/images/task1-package.png differ diff --git a/mover/xiaodi007/images/task1-wallet.png b/mover/xiaodi007/images/task1-wallet.png new file mode 100644 index 000000000..27cd059fa Binary files /dev/null and b/mover/xiaodi007/images/task1-wallet.png differ diff --git a/mover/xiaodi007/images/task2.png b/mover/xiaodi007/images/task2.png new file mode 100644 index 000000000..9c0a5a3b3 Binary files /dev/null and b/mover/xiaodi007/images/task2.png differ diff --git a/mover/xiaodi007/images/task3.png b/mover/xiaodi007/images/task3.png new file mode 100644 index 000000000..1901baa1a Binary files /dev/null and b/mover/xiaodi007/images/task3.png differ diff --git a/mover/xiaodi007/images/task7.png b/mover/xiaodi007/images/task7.png new file mode 100644 index 000000000..75d5c30b4 Binary files /dev/null and b/mover/xiaodi007/images/task7.png differ diff --git a/mover/xiaodi007/readme.md b/mover/xiaodi007/readme.md new file mode 100644 index 000000000..cd68cdf0f --- /dev/null +++ b/mover/xiaodi007/readme.md @@ -0,0 +1,55 @@ +## 基本信息 +- Sui钱包地址: `0xde5448c74d811c5409041537078665ab8497a28fb125a95d7d8a12300cc655d5` +- github: `xiaodi007` + +## 个人简介 +- 工作经验: 5年 +- 技术栈: `Rust` `python``js` +- 熟练使用python进行数据分析、后端开发。fastapi, django,falsk等 +- 会使用react进行前端开发 +- 熟练使用nestjs开发node后端,会使用prisma +- 熟练使用mysql, pg, clickhouse, tidb, redis等数据库 +- 联系方式: tg: `xiaodi008` + +## 01 hello move +- [] Sui cli version: sui 1.26.1-homebrew +- [] Sui钱包截图: ![Sui钱包截图](https://github.com/xiaodi007/letsmove/blob/main/mover/xiaodi007/images/task1-wallet.png) +- [] package id: 0x4bb8f2f992c19b2acbd9e48e7ad3cdbcf595a967227f3dea2a27de53d816a3ba +- [] package id 在 scan上的查看截图:![Scan截图](https://github.com/xiaodi007/letsmove/blob/main/mover/xiaodi007/images/task1-package.png) + + +## 02 move coin +- [] My Coin package id : 0x276d16923920b34dcefb5b46aa56dbd231d3946b7bcea3d971ba1289b1a2d40e +- [] Faucet package id : 0xa6446b4c285361f70b381d4793df1096bc0f9cdea076733ebe8c07f0d17541a7 +- [] 转账 `My Coin` hash: DcMGYv8gs8C9sCwhxRynegND9VEhxGmFjZ1zyYrMoSpv +- [] `Faucet Coin` address1 mint hash: vFBQGgjk7KUxyqv66Ya5f6yqwt7N6Pkkz5TtzcuPrT8 +- [] `Faucet Coin` address2 mint hash: 4bHk3zdESqDjyJ8mwr26VJNsVhD5ofn3RUSLDaSJihcp +[Scan截图](https://github.com/xiaodi007/letsmove/blob/main/mover/xiaodi007/images/task2.png) + +## 03 move NFT +- [] nft package id : 0x53829e8f97dd3ee7c9954c1743d6c386ecc86a8e5cd76ed590e8c8bea83c56a6 +- [] nft object id : 0xafc126feb46917afa9c315be3eeea66b2f8adb98b47e4f42b43e7c784d24b6f3 +- [] 转账 nft hash: CcGSUohAsjZzTW2xxRsyobz2ad6C6V1fHU6VP16EBgCQ +- [] scan上的NFT截图:![Scan截图](https://github.com/xiaodi007/letsmove/blob/main/mover/xiaodi007/images/task3.png) + +## 04 Move Game +- [] game package id : 0x53829e8f97dd3ee7c9954c1743d6c386ecc86a8e5cd76ed590e8c8bea83c56a6 +- [] deposit Coin hash: G1rMaoRdLXFrQ8oELq9ug6hXth2oVd8TBCVuwrfaDg35 +- [] withdraw `Coin` hash: 7nPBdQ7Xos3dzr3NjMVyAQmUUaBEKJ4V15Jwq6H1YHCA +- [] play game hash: AyED8CHZjPKkCJiX629TbgnSAjm2yXwvRnDcdYyP7K8D + +## 05 Move Swap +- [] swap package id : 0x70803c60c5a226ef8738d26e4abaaa2a5be0d6d0448d1c90f9853ca1cf231a44 +- [] call swap CoinA-> CoinB hash : 92txHgYNC7v6SV6v84L7WNJKcPwavX4VytKCbiHZiHT8 +- [] call swap CoinB-> CoinA hash : AM79bsDCUv2GHrTnjeK5hJvt8ddjs6D9w9LguJhXyFay + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](https://github.com/xiaodi007/letsmove/blob/main/mover/xiaodi007/images/task7.png) +- [] flag hash : BNSZkQ3H6mP7RbkXQHHNbRwg6sry4aCm3aS2Kez6H7p9 + +## 08 Move CTF Lets Move +- [] proof : 756697 +- [] flag hash : 241sbuqqSB1mdaazgAGJ5WsfgVRka9PQHN4cyEPCzwyN \ No newline at end of file diff --git a/mover/xiaoshenyuan/notes/readme.md b/mover/xiaoshenyuan/notes/readme.md index 71520c259..ab74a6e1d 100644 --- a/mover/xiaoshenyuan/notes/readme.md +++ b/mover/xiaoshenyuan/notes/readme.md @@ -36,7 +36,7 @@ Transaction Digest: 5ndnHuk9jv8Yp5nbggT93z64sMjqqozGL8e36M6yjdXM export GAME_COIN=0x85d5a146f35ccc2e4f36f42a5a082fb3793f2712f5df2e684c0593292ee0cd97 -sui client call --package $PACKAGE_ID --module xiaoshenyuan_game --function play --args $GAME_ID $GAME_COIN --gas-budget 100000000 +sui client call --package $PACKAGE_ID --module xiaoshenyuan_game --function play --args $GAME_ID $GAME_COIN Transaction Digest: BRJMSZjobDfwCutJQkPDq1xaqekhzLhGsD1NNq35AcRW diff --git a/mover/xinting/task1/code/hello_world/Move.lock b/mover/xinting/task1/code/hello_world/Move.lock new file mode 100644 index 000000000..15a5c8027 --- /dev/null +++ b/mover/xinting/task1/code/hello_world/Move.lock @@ -0,0 +1,35 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 0 +manifest_digest = "AF9F7483879834C08C6B12273EDED53D849559FD19B81F31B0531C5D06E1891A" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" + +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "devnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "0ca470f0" +original-published-id = "0x615d0a3401c922405e8947f9f2b872338998fad07e4394ff215a442e69a6853e" +latest-published-id = "0x615d0a3401c922405e8947f9f2b872338998fad07e4394ff215a442e69a6853e" +published-version = "1" diff --git a/mover/xinting/task1/code/hello_world/Move.toml b/mover/xinting/task1/code/hello_world/Move.toml new file mode 100644 index 000000000..ed114c9f8 --- /dev/null +++ b/mover/xinting/task1/code/hello_world/Move.toml @@ -0,0 +1,11 @@ +[package] +name = "hello_world" +version = "0.0.1" +edition = "2024.beta" + +[dependencies] +Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "devnet" } + +[addresses] +hello_world = "0x0" +sui = "0x2" diff --git a/mover/xinting/task1/code/hello_world/sources/hello_world.move b/mover/xinting/task1/code/hello_world/sources/hello_world.move new file mode 100644 index 000000000..c87d99331 --- /dev/null +++ b/mover/xinting/task1/code/hello_world/sources/hello_world.move @@ -0,0 +1,20 @@ +module hello_world::hello_world { + + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + + public struct HelloMove has key, store { + id: UID, + text: string::String + } + + public fun mint(ctx: &mut TxContext) { + let object = HelloMove { + id: object::new(ctx), + text: string::utf8(b"Hello xinting") + }; + transfer::public_transfer(object, tx_context::sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/xinting/task1/images/object.png b/mover/xinting/task1/images/object.png new file mode 100644 index 000000000..04d3a68f5 Binary files /dev/null and b/mover/xinting/task1/images/object.png differ diff --git a/mover/xinting/task1/images/package.png b/mover/xinting/task1/images/package.png new file mode 100644 index 000000000..80fcaa943 Binary files /dev/null and b/mover/xinting/task1/images/package.png differ diff --git a/mover/xinting/task1/images/wallet.png b/mover/xinting/task1/images/wallet.png new file mode 100644 index 000000000..36d2f0b4f Binary files /dev/null and b/mover/xinting/task1/images/wallet.png differ diff --git a/mover/xinting/task1/notes/readme.md b/mover/xinting/task1/notes/readme.md new file mode 100644 index 000000000..c89b3756d --- /dev/null +++ b/mover/xinting/task1/notes/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xc157b7c0428cff391816707c2ef6c0d8ac1d56e1185be16aa7b7c11799e0c0a7` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `xingting` + +## 个人简介 +- 工作经验: 0年 +- 技术栈: `C、python、java` +> 重要提示 请认真写自己的简介 +- C语言经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `xinting` + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.28.1 +- [x] Sui钱包截图: ![Sui钱包截图](./images/wallet.png) +- [x] package id: [0x615d0a3401c922405e8947f9f2b872338998fad07e4394ff215a442e69a6853e](https://devnet.suivision.xyz/package/0x615d0a3401c922405e8947f9f2b872338998fad07e4394ff215a442e69a6853e) +- [x] package id 在 scan上的查看截图:![Scan截图](./images/package.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/xinting/task1/readme.md b/mover/xinting/task1/readme.md new file mode 100644 index 000000000..c89b3756d --- /dev/null +++ b/mover/xinting/task1/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xc157b7c0428cff391816707c2ef6c0d8ac1d56e1185be16aa7b7c11799e0c0a7` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `xingting` + +## 个人简介 +- 工作经验: 0年 +- 技术栈: `C、python、java` +> 重要提示 请认真写自己的简介 +- C语言经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `xinting` + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.28.1 +- [x] Sui钱包截图: ![Sui钱包截图](./images/wallet.png) +- [x] package id: [0x615d0a3401c922405e8947f9f2b872338998fad07e4394ff215a442e69a6853e](https://devnet.suivision.xyz/package/0x615d0a3401c922405e8947f9f2b872338998fad07e4394ff215a442e69a6853e) +- [x] package id 在 scan上的查看截图:![Scan截图](./images/package.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/xjh1996/code/readme.md b/mover/xjh1996/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/xjh1996/code/task1/Move.lock b/mover/xjh1996/code/task1/Move.lock new file mode 100644 index 000000000..a0b15b175 --- /dev/null +++ b/mover/xjh1996/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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.29.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x6b1121f176660eda5f9882428d292ce56d963a05be9bda338923891ef2b624d7" +latest-published-id = "0x6b1121f176660eda5f9882428d292ce56d963a05be9bda338923891ef2b624d7" +published-version = "1" diff --git a/mover/xjh1996/code/task1/Move.toml b/mover/xjh1996/code/task1/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/xjh1996/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/xjh1996/code/task1/sources/hello_move.move b/mover/xjh1996/code/task1/sources/hello_move.move new file mode 100644 index 000000000..1335b4d67 --- /dev/null +++ b/mover/xjh1996/code/task1/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"xjh1996"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/xjh1996/code/task1/tests/hello_move_tests.move b/mover/xjh1996/code/task1/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/xjh1996/code/task1/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/xjh1996/images/img1.png b/mover/xjh1996/images/img1.png new file mode 100644 index 000000000..c6a76d0e1 Binary files /dev/null and b/mover/xjh1996/images/img1.png differ diff --git a/mover/xjh1996/images/img2.png b/mover/xjh1996/images/img2.png new file mode 100644 index 000000000..f75ce48bd Binary files /dev/null and b/mover/xjh1996/images/img2.png differ diff --git a/mover/xjh1996/images/task07.png b/mover/xjh1996/images/task07.png new file mode 100644 index 000000000..60a180073 Binary files /dev/null and b/mover/xjh1996/images/task07.png differ diff --git a/mover/xjh1996/notes/readme.md b/mover/xjh1996/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/xjh1996/readme.md b/mover/xjh1996/readme.md new file mode 100644 index 000000000..af157d35f --- /dev/null +++ b/mover/xjh1996/readme.md @@ -0,0 +1,28 @@ +## 基本信息 +- Sui钱包地址: `0x647bcc114e0e88810141e47346bdc0db47e2edba995d6a862e1f6246a4c2aa1c` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `xjh1996` + +## 个人简介 +- 工作经验: 6年 +- 技术栈: `Golang` +> 重要提示 请认真写自己的简介 +- 多年云计算开发经验,希望通过move学习sui链生态 +- 联系方式: 710804429@163.com + +## 任务 + +## 01 hello move +- [x] Sui cli version: 1.29.0-1bc3c6996246 +- [x] Sui钱包截图: ![Sui钱包截图](./images/img1.png) +- [x] package id: 0x6b1121f176660eda5f9882428d292ce56d963a05be9bda338923891ef2b624d7 +- [x] package id 在 scan上的查看截图:![Scan截图](./images/img2.png) + + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/task07.png) +- [] flag hash : 3UzmBpwFGpCQUgGgfDQ9y5MQxVjmAdirU5yJ1M3Bst3z + +## 08 Move CTF Lets Move +- [x] proof : 17134936 +- [x] flag hash : E8xZuxvbqLHJACgSmugpe5sz3Uwdp25mgo1dEA8VWZP6 \ No newline at end of file diff --git a/mover/xu8117/code/task05/xu8117/log/deposit_coin.bat b/mover/xu8117/code/task05/xu8117/log/deposit_coin.bat index 2e9545431..2e8a32029 100644 --- a/mover/xu8117/code/task05/xu8117/log/deposit_coin.bat +++ b/mover/xu8117/code/task05/xu8117/log/deposit_coin.bat @@ -5,4 +5,4 @@ set coin=0xbcee6a4ccc7f57e5cc03b8f61f39855929f841548d735bc12f945d8166ce732d set adminCap=0xf33ba6214a1c20a41585be70abb6325982c501aee3a3280dec27d6008f131218 set bank=0x0f1bb7c1d614bd71eefc994edaa03f90c84ab52aad4b28c5f2e8ac156326b57b set amount=1000000000 -sui client call --gas-budget 100000000 --package %packageId% --module %module% --function %func% --args %bank% %coin% +sui client call --package %packageId% --module %module% --function %func% --args %bank% %coin% diff --git a/mover/xu8117/code/task05/xu8117/log/deposit_faucetcoin.bat b/mover/xu8117/code/task05/xu8117/log/deposit_faucetcoin.bat index 54fb44fa3..9ccd7f0e7 100644 --- a/mover/xu8117/code/task05/xu8117/log/deposit_faucetcoin.bat +++ b/mover/xu8117/code/task05/xu8117/log/deposit_faucetcoin.bat @@ -5,4 +5,4 @@ set coin=0xb912b450247eb8b862c81c3fded1e72de3aacf51356a23e633be5d134804e1bd set adminCap=0xf33ba6214a1c20a41585be70abb6325982c501aee3a3280dec27d6008f131218 set bank=0x0f1bb7c1d614bd71eefc994edaa03f90c84ab52aad4b28c5f2e8ac156326b57b set amount=1000000000 -sui client call --gas-budget 100000000 --package %packageId% --module %module% --function %func% --args %bank% %coin% +sui client call --package %packageId% --module %module% --function %func% --args %bank% %coin% diff --git a/mover/xu8117/code/task05/xu8117/log/swap_coin_to_faucetcoin.bat b/mover/xu8117/code/task05/xu8117/log/swap_coin_to_faucetcoin.bat index 26ab03156..cba2ab724 100644 --- a/mover/xu8117/code/task05/xu8117/log/swap_coin_to_faucetcoin.bat +++ b/mover/xu8117/code/task05/xu8117/log/swap_coin_to_faucetcoin.bat @@ -5,4 +5,4 @@ set coin=0x50f1f481539acf673f53736a102e6a1640c21c28db06d52db012110deb85b8c2 set adminCap=0xf33ba6214a1c20a41585be70abb6325982c501aee3a3280dec27d6008f131218 set bank=0x0f1bb7c1d614bd71eefc994edaa03f90c84ab52aad4b28c5f2e8ac156326b57b set amount=1000000000 -sui client call --gas-budget 100000000 --package %packageId% --module %module% --function %func% --args %bank% %coin% +sui client call --package %packageId% --module %module% --function %func% --args %bank% %coin% diff --git a/mover/xu8117/code/task05/xu8117/log/swap_faucetcoin_to_coin.bat b/mover/xu8117/code/task05/xu8117/log/swap_faucetcoin_to_coin.bat index efecbb647..33535ff46 100644 --- a/mover/xu8117/code/task05/xu8117/log/swap_faucetcoin_to_coin.bat +++ b/mover/xu8117/code/task05/xu8117/log/swap_faucetcoin_to_coin.bat @@ -5,4 +5,4 @@ set coin=0xb175bf66878a78b7bfe813eac92dfdcfc53c0f7ce62cf9a85d4493521e073b1d set adminCap=0xf33ba6214a1c20a41585be70abb6325982c501aee3a3280dec27d6008f131218 set bank=0x0f1bb7c1d614bd71eefc994edaa03f90c84ab52aad4b28c5f2e8ac156326b57b set amount=1000000000 -sui client call --gas-budget 100000000 --package %packageId% --module %module% --function %func% --args %bank% %coin% +sui client call --package %packageId% --module %module% --function %func% --args %bank% %coin% diff --git a/mover/xu8117/code/task07/20240610222238.png b/mover/xu8117/code/task07/20240610222238.png new file mode 100644 index 000000000..f456c9c60 Binary files /dev/null and b/mover/xu8117/code/task07/20240610222238.png differ diff --git a/mover/xu8117/code/task08/Move.toml b/mover/xu8117/code/task08/Move.toml new file mode 100644 index 000000000..e48e9d231 --- /dev/null +++ b/mover/xu8117/code/task08/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task08" +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] +task08 = "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/xu8117/code/task08/sources/task08.move b/mover/xu8117/code/task08/sources/task08.move new file mode 100644 index 000000000..453b72bb2 --- /dev/null +++ b/mover/xu8117/code/task08/sources/task08.move @@ -0,0 +1,48 @@ +module task08::task08 { + + use std::ascii::String; + + #[test_only] + use sui::object; + + public struct Challenge has key { + id: UID, + str: String, + difficulity: u64, + ture_num: u64 + } + + #[test] + public fun get_flag() { + let challenge: Challenge = Challenge { + id: object::new_uid_from_hash(b"0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9"), + str: string(b"uMKz'lr#*kw][z/CAvOZ"), + difficulity: 3, + ture_num: 3, + }; + + let mut proof: vector = vector[33]; + vector::append(&mut proof, vector[163]); + vector::append(&mut proof, vector[129]); + + let mut full_proof: vector = vector::empty(); + vector::append(&mut full_proof, proof); + vector::append( + &mut full_proof, + b"0x03f0463af4185ecd1f221af4e30fbd68ce81bd438a3583e85db7320301b712b6".to_bytes() + ); + vector::append(&mut full_proof, bcs::to_bytes(&challenge)); + + let hash: vector = std::hash::sha3_256(full_proof); + std::debug::print(&hash); + + let mut prefix_sum: u32 = 0; + let mut i: u64 = 0; + while (i < challenge.difficulity) { + prefix_sum = prefix_sum + (*vector::borrow(&hash, i) as u32); + i = i + 1; + }; + + assert!(prefix_sum == 0, 100); + } +} diff --git a/mover/xu8117/code/task08/tests/task08_tests.move b/mover/xu8117/code/task08/tests/task08_tests.move new file mode 100644 index 000000000..47f6abaa4 --- /dev/null +++ b/mover/xu8117/code/task08/tests/task08_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task08::task08_tests { + // uncomment this line to import the module + // use task08::task08; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task08() { + // pass + } + + #[test, expected_failure(abort_code = ::task08::task08_tests::ENotImplemented)] + fun test_task08_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/xu8117/readme.md b/mover/xu8117/readme.md index 50f553f54..e67a51756 100644 --- a/mover/xu8117/readme.md +++ b/mover/xu8117/readme.md @@ -37,3 +37,15 @@ ## 06 SDK PTB - [√] save hash : 7rBNggBkX2yGBKoUQ1AkYnULGi4WhpVVo9DeuJRE7zWJ +- + +## 07 Move CTF Check In + +- [√] CLI call 截图 : ![截图](./images/20240610222238.png) +- [√] flag + hash : [ES5dvUyvJWvug3cCFRDDykHKV9Dmn2FBoDT5SKihzZKG](https://suiscan.xyz/testnet/tx/ES5dvUyvJWvug3cCFRDDykHKV9Dmn2FBoDT5SKihzZKG) + +## 08 Move CTF Lets Move + +- [] proof : +- [] flag hash : diff --git a/mover/xx123731/readme.md b/mover/xx123731/readme.md index 9524f977b..97f4fbc49 100644 --- a/mover/xx123731/readme.md +++ b/mover/xx123731/readme.md @@ -41,4 +41,4 @@ sui client envs sui client new-env --alias=testnet --rpc https://fullnode.testnet.sui.io:443 sui client switch --env testnet 发布: -sui client publish --gas-budget 100000000 \ No newline at end of file +sui client publish \ No newline at end of file diff --git a/mover/yaominglong001/code/task2/Move.lock b/mover/yaominglong001/code/task2/Move.lock new file mode 100644 index 000000000..f5002c354 --- /dev/null +++ b/mover/yaominglong001/code/task2/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E7A65BF39B740E195045E87B46B06936199C063AFE29D8948B9C6B9B853033A8" +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.25.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x2dbd6e3eddfd792695e9da3beb1519f09cd8f3671fc2159a25eaf3210a73fe5f" +latest-published-id = "0x2dbd6e3eddfd792695e9da3beb1519f09cd8f3671fc2159a25eaf3210a73fe5f" +published-version = "1" diff --git a/mover/yaominglong001/code/task2/Move.toml b/mover/yaominglong001/code/task2/Move.toml new file mode 100644 index 000000000..6a6098d99 --- /dev/null +++ b/mover/yaominglong001/code/task2/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task2" +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] +task2 = "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/yaominglong001/code/task2/sources/faucet.move b/mover/yaominglong001/code/task2/sources/faucet.move new file mode 100644 index 000000000..6033c44b3 --- /dev/null +++ b/mover/yaominglong001/code/task2/sources/faucet.move @@ -0,0 +1,24 @@ +module task2::yaominglong001_faucet_coin { + use sui::coin; + use sui::coin::TreasuryCap; + use sui::transfer::{ public_share_object, public_freeze_object}; + + public struct YAOMINGLONG001_FAUCET_COIN has drop{} + fun init(witness: YAOMINGLONG001_FAUCET_COIN, ctx: &mut TxContext){ + let (treasury, metadata) = coin::create_currency( + witness, + 8, + b"YAOMINGLONG001_PUBLIC", + b"yaominglong001 Faucet coin", + b"test faucet coin", + option::none(), + ctx + ); + public_share_object(treasury); + public_freeze_object(metadata); + } + + public entry fun mint(cap: &mut TreasuryCap, value: u64, recipient: address, ctx: &mut TxContext){ + coin::mint_and_transfer(cap, value, recipient, ctx); + } +} \ No newline at end of file diff --git a/mover/yaominglong001/code/task2/sources/task2.move b/mover/yaominglong001/code/task2/sources/task2.move new file mode 100644 index 000000000..882a55a72 --- /dev/null +++ b/mover/yaominglong001/code/task2/sources/task2.move @@ -0,0 +1,26 @@ +module task2::yaominglong001_coin { + use sui::coin; + use sui::coin::{TreasuryCap, }; + use sui::transfer::{public_transfer, public_freeze_object}; + + public struct YAOMINGLONG001_COIN has drop{} + fun init(witness: YAOMINGLONG001_COIN, ctx: &mut TxContext){ + let (treasuryCap, denyCap ,metadata) = coin::create_regulated_currency( + witness, + 8, + b"YAOMINGLONG001", + b"YAOMINGLONG001 Coin", + b"move coin", + option::none(), + ctx + ); + public_transfer(treasuryCap, tx_context::sender(ctx)); + public_transfer(denyCap, tx_context::sender(ctx)); + public_freeze_object(metadata); + } + + public entry fun mint(cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext){ + let coin = coin::mint(cap, amount, ctx); + public_transfer(coin, recipient); + } +} \ No newline at end of file diff --git a/mover/yaominglong001/code/task3/Move.lock b/mover/yaominglong001/code/task3/Move.lock new file mode 100644 index 000000000..884d5f7a0 --- /dev/null +++ b/mover/yaominglong001/code/task3/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "DEDE53BD567ECEDC2009BE853A86F47F6BDC3F1F03A6B00FAED274F07E74A18B" +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.25.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xb8808437c7fe64d667baa8af677ec329d035de4d11bfbf3277458e6677a9f2aa" +latest-published-id = "0xb8808437c7fe64d667baa8af677ec329d035de4d11bfbf3277458e6677a9f2aa" +published-version = "1" diff --git a/mover/yaominglong001/code/task3/Move.toml b/mover/yaominglong001/code/task3/Move.toml new file mode 100644 index 000000000..480be1592 --- /dev/null +++ b/mover/yaominglong001/code/task3/Move.toml @@ -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" + diff --git a/mover/yaominglong001/code/task3/sources/task3.move b/mover/yaominglong001/code/task3/sources/task3.move new file mode 100644 index 000000000..bb542f055 --- /dev/null +++ b/mover/yaominglong001/code/task3/sources/task3.move @@ -0,0 +1,47 @@ +module task3::yaominglong001_nft { + use std::ascii::String; + use std::string::utf8; + use sui::display; + use sui::object; + use sui::object::{UID}; + use sui::package; + use sui::transfer; + use sui::transfer::public_transfer; + use sui::tx_context; + use sui::tx_context::{TxContext}; + + public struct YAOMINGLONG001_NFT has drop {} + + public struct NFT has key,store { + id: UID, + name: String, + } + + fun init(otw: YAOMINGLONG001_NFT, ctx: &mut sui::tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://avatars.githubusercontent.com/u/167276779"), + ]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values,ctx); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + public entry fun mint_to(name: String, recipient: address,ctx: &mut TxContext) { + let nft = NFT{ + id: object::new(ctx), + name, + }; + public_transfer(nft, recipient) + } +} \ No newline at end of file diff --git a/mover/yaominglong001/code/task4/Move.lock b/mover/yaominglong001/code/task4/Move.lock new file mode 100644 index 000000000..cb6456f59 --- /dev/null +++ b/mover/yaominglong001/code/task4/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "ED18027FE1E04C9C17AFCADBD07CCA64749BB3234A62A2FDA2C1172E7092CD17" +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.25.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xdc26d4bb1c3e67ce33af2eee2265d5899ebdecc15c299df2a6d198559f280536" +latest-published-id = "0xdc26d4bb1c3e67ce33af2eee2265d5899ebdecc15c299df2a6d198559f280536" +published-version = "1" + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x605ae2037eeea415b6c5c0114bb2f91901b25bf91b2a55e0cb11ef7a143f97d7" +latest-published-id = "0x605ae2037eeea415b6c5c0114bb2f91901b25bf91b2a55e0cb11ef7a143f97d7" +published-version = "1" diff --git a/mover/yaominglong001/code/task4/Move.toml b/mover/yaominglong001/code/task4/Move.toml new file mode 100644 index 000000000..86e124a47 --- /dev/null +++ b/mover/yaominglong001/code/task4/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task4" +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] +task4 = "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/yaominglong001/code/task4/mannul.md b/mover/yaominglong001/code/task4/mannul.md new file mode 100644 index 000000000..928e60a5a --- /dev/null +++ b/mover/yaominglong001/code/task4/mannul.md @@ -0,0 +1,37 @@ + +sui client publish + +export PackageID=0xdc26d4bb1c3e67ce33af2eee2265d5899ebdecc15c299df2a6d198559f280536 +export FaucetId=0x2dbd6e3eddfd792695e9da3beb1519f09cd8f3671fc2159a25eaf3210a73fe5f::yaominglong001_faucet_coin::YAOMINGLONG001_FAUCET_COIN + +sui client call --package $PackageID --module yaominglong001_game --function creat_game --type-args $FaucetId + +export GameId=0x8a2099092215be778df9b8185c5152baa5adb75fe4afe23f4930579778319d87 + +export AdminCap=0x93bd2aa900ad2e08943d3abb7aac690e1ef6a980508bee7c0faa72e9068c5aa3 + +export MyAddress=0xad6ae9a90e742c884906f852b63944606815bc324899b31c2f626f8b3f2d1a43 + +export Task2Pack=0x2dbd6e3eddfd792695e9da3beb1519f09cd8f3671fc2159a25eaf3210a73fe5f + +export TreasureId=0xbfe0861e4dfff7b57abfac202bc75c5f7fd4a7d37358dffed560d84b47a42cf0 + +sui client call --package $Task2Pack --module yaominglong001_faucet_coin --function mint --args $TreasureId 1000000 $MyAddress + +export FaucetCoin=0x4e3ee1f19a9fef7af9351d167a8f00c0b991d939b5995a5416590933cd4baf22 + +sui client call --package $PackageID --module yaominglong001_game --function deposit --type-args $FaucetId --args $GameId $FaucetCoin 500000 + +[warn] Client/Server api version mismatch, client api version : 1.25.1, server api version : 1.25.2 +Transaction Digest: C7n74CAWKotuxU3tXukBf2WBfyewbqBPt2nCtFQkU12E + +export GameCoin=0xe7f0b1b2b4780f7ad6be0a6a48c40d06e1d84103a1a9b73d4a756f972de7f0c6 + +sui client call --package $PackageID --module yaominglong001_game --function play --type-args $FaucetId --args $GameId $GameCoin + +Transaction Digest: 7QECNN9oPWoVkwSXoBBx6vQqW8BnPpW374mz8J3tHGrH + +sui client call --package $PackageID --module yaominglong001_game --function withdraw --type-args $FaucetId --args $AdminCap $GameId 2000 + +[warn] Client/Server api version mismatch, client api version : 1.25.1, server api version : 1.25.2 +Transaction Digest: 3fCzmzUpQnKZxUgeNLT5TQT8vVNVR7fqXJzQZtQGtdfi \ No newline at end of file diff --git a/mover/yaominglong001/code/task4/sources/task4.move b/mover/yaominglong001/code/task4/sources/task4.move new file mode 100644 index 000000000..dc1062441 --- /dev/null +++ b/mover/yaominglong001/code/task4/sources/task4.move @@ -0,0 +1,136 @@ +// Module: task4 +module task4::yaominglong001_game { + use std::string::{Self, String}; + use sui::clock::{Self, Clock}; + use sui::event; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::tx_context::sender; + use sui::bcs::{Self as bcs}; + + const EInvalidNumber: u64 = 0; + const EPoolNotEnough: u64 = 1; + const EInputNotEnough: u64 = 2; + const SymbolRange: u8 = 5; + + public struct GameResult has copy, drop { + result: String, + is_winner: bool, + } + + public struct Game has key { + id: UID, + pool: Balance, + ticket: u64, + reward: u64, + } + + public struct SpinResult has copy, drop, store { + spin1: u8, + spin2: u8, + spin3: u8, + } + + public fun game_pool(game: &Game): u64 { + balance::value(&game.pool) + } + + public fun game_ticket(game: &Game): u64 { + game.ticket + } + + public fun game_reward(game: &Game): u64 { + game.reward + } + + public struct AdminCap has key { + id: UID, + } + + fun init(ctx: &mut TxContext) { + } + + entry fun creat_game(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + pool: balance::zero(), + ticket: 1000, + reward: 2000, + }; + transfer::share_object(game); + + let admin_cap = AdminCap { id: object::new(ctx) }; + transfer::transfer(admin_cap, sender(ctx)); + } + + fun get_spin_result(ctx: &TxContext) : SpinResult { + let tx_digest = tx_context::digest(ctx); + let tx_digest_u64= bcs::peel_u64(&mut bcs::new(*tx_digest)); + let spin1 = (((tx_digest_u64 % 10) % (SymbolRange as u64 + 1)) as u8); + let spin2 = (((tx_digest_u64 % 100) % (SymbolRange as u64 + 1)) as u8); + let spin3 = (((tx_digest_u64 % 1000) % (SymbolRange as u64 + 1)) as u8); + SpinResult { spin1, spin2, spin3 } + } + + public entry fun play(game: &mut Game, input: Coin, ctx: &mut TxContext) { + assert!(balance::value(&game.pool) >= game.reward - game.ticket, EPoolNotEnough); + + let player_spins = get_spin_result(ctx); + let winning_combination = SpinResult { spin1: 2, spin2: 2, spin3: 2 }; + + let input_value = coin::value(&input); + assert!(input_value >= game.ticket, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > game.ticket) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, game.ticket) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + }; + + let (result, is_winner) = if (player_spins.spin1 == winning_combination.spin1 && player_spins.spin2 == winning_combination.spin2 && player_spins.spin3 == winning_combination.spin3) { + ( string::utf8(b"Congratulations, you hit the jackpot! Collect your coins😄"), true) + } else { + ( string::utf8(b"Try again, better luck next time!💔"), false) + }; + + if (is_winner) { + let reward_balance = balance::split(&mut game.pool, game.reward); + let reward = coin::from_balance(reward_balance, ctx); + transfer::public_transfer(reward, sender(ctx)); + }; + + event::emit(GameResult { + result, + is_winner, + }); + } + + public entry fun deposit(game: &mut Game, input: Coin, amount: u64, ctx: &mut TxContext) { + let input_value = coin::value(&input); + assert!(input_value >= amount, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > amount) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, amount) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + } + } + + public entry fun withdraw(_: &AdminCap, game: &mut Game, amount: u64, ctx: &mut TxContext) { + let output_balance = balance::split(&mut game.pool, amount); + let output = coin::from_balance(output_balance, ctx); + transfer::public_transfer(output, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/yaominglong001/code/task5/Move.lock b/mover/yaominglong001/code/task5/Move.lock new file mode 100644 index 000000000..f774bd6b1 --- /dev/null +++ b/mover/yaominglong001/code/task5/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "39149E9191F5A7299278C257F4DBF8CA774C7A7EC549B5951C87448D6A311A49" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.25.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x239138cc55902a15360ee3198f610031adb858da2d4ce458100bb9d00cc6907e" +latest-published-id = "0x239138cc55902a15360ee3198f610031adb858da2d4ce458100bb9d00cc6907e" +published-version = "1" diff --git a/mover/yaominglong001/code/task5/Move.toml b/mover/yaominglong001/code/task5/Move.toml new file mode 100644 index 000000000..fef2bd16c --- /dev/null +++ b/mover/yaominglong001/code/task5/Move.toml @@ -0,0 +1,37 @@ +[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 (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/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] +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" + diff --git a/mover/yaominglong001/code/task5/sources/task5.move b/mover/yaominglong001/code/task5/sources/task5.move new file mode 100644 index 000000000..6d4005851 --- /dev/null +++ b/mover/yaominglong001/code/task5/sources/task5.move @@ -0,0 +1,312 @@ +module task5::yaominglong001_swap { + use sui::object::{Self, UID}; + use sui::coin::{Self, Coin}; + use sui::balance::{Self, Supply, Balance}; + use sui::transfer; + use sui::math; + use sui::tx_context::{Self, TxContext}; + + /// For when supplied Coin is zero. + const EZeroAmount: u64 = 0; + + /// For when someone tries to swap in an empty pool. + const EReservesEmpty: u64 = 2; + + /// For when someone attempts to add more liquidity than u128 Math allows. + const EPoolFull: u64 = 4; + + /// The integer scaling setting for fees calculation. + const FEE_SCALING: u128 = 10000; + + /// The fee percent that will be taken from the swap. + /// Set to 0.3%. + const FEE_PERCENT: u128 = 30; + + /// The max value that can be held in one of the Balances of + /// a Pool. U64 MAX / FEE_SCALING + const MAX_POOL_VALUE: u64 = { + 18446744073709551615 / 10000 + }; + + /// The Pool token that will be used to mark the pool share + /// of a liquidity provider. + /// The first type parameter stands for the witness type of a pool. + /// The seconds and thirds is for the coin held in the pool. + public struct LSP has drop {} + + /// The pool with exchange. + /// + /// - `fee_percent` should be in the range: [0-10000), meaning + /// that 10000 is 100% and 1 is 0.01% + public struct Pool has key { + id: UID, + token_a: Balance, + token_b: Balance, + lsp_supply: Supply>, + /// Fee Percent is denominated in basis points. + fee_percent: u64 + } + + + /// ======================================================================= + /// ============================= 初始化函数 =============================== + /// ======================================================================= + + /// Module initializer is empty - to publish a new Pool one has + /// to create a type which will mark LSPs. + fun init(_: &mut TxContext) { + } + + /// ======================================================================= + /// ============================= 流动性池 ================================= + /// ======================================================================= + + entry fun create_pool ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + create_pool_inner(token_a, token_b, ctx), + tx_context::sender(ctx) + ); + } + + fun create_pool_inner ( + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + let fee_percent = (FEE_PERCENT as u64); + + let token_a_amt = coin::value(&token_a); + let token_b_amt = coin::value(&token_b); + + assert!(token_a_amt > 0 && token_b_amt > 0, EZeroAmount); + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let share = math::sqrt(token_a_amt) * math::sqrt(token_b_amt); + let mut lsp_supply = balance::create_supply(LSP {}); + let lsp = balance::increase_supply(&mut lsp_supply, share); + + transfer::share_object(Pool { + id: object::new(ctx), + token_a: coin::into_balance(token_a), + token_b: coin::into_balance(token_b), + lsp_supply, + fee_percent, + }); + + coin::from_balance(lsp, ctx) + } + + entry fun add_liquidity ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + add_liquidity_inner(pool, token_a, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun add_liquidity_inner ( + pool: &mut Pool, + token_a: Coin, + token_b: Coin, + ctx: &mut TxContext + ): Coin> { + assert!(coin::value(&token_a) > 0 && coin::value(&token_b) > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, lsp_supply) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_balance = coin::into_balance(token_a); + let token_b_balance = coin::into_balance(token_b); + + let token_a_added = balance::value(&token_a_balance); + let token_b_added = balance::value(&token_b_balance); + + // XXX - 可以对新增的流动性进行计算,查看比值是否和原来的比值一致 + // assert!(token_a_added * token_b_amt == token_b_added * token_a_amt, EWrongFee); + // assert!(math::abs_diff(token_a_added * token_b_amt, token_b_added * token_a_amt) < 100, EWrongFee); + + let share_minted = math::min( + (token_a_added * lsp_supply) / token_a_amt, + (token_b_added * lsp_supply) / token_b_amt + ); + + let token_a_amt = balance::join(&mut pool.token_a, token_a_balance); + let token_b_amt = balance::join(&mut pool.token_b, token_b_balance); + + assert!(token_a_amt < MAX_POOL_VALUE && token_b_amt < MAX_POOL_VALUE, EPoolFull); + + let balance = balance::increase_supply(&mut pool.lsp_supply, share_minted); + + coin::from_balance(balance, ctx) + } + + entry fun remove_liquidity ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ) { + let (token_a, token_b) = remove_liquidity_inner(pool, lsp, ctx); + let sender = tx_context::sender(ctx); + + transfer::public_transfer(token_a, sender); + transfer::public_transfer(token_b, sender); + } + + fun remove_liquidity_inner ( + pool: &mut Pool, + lsp: Coin>, + ctx: &mut TxContext + ): (Coin, Coin) { + let lsp_amount = coin::value(&lsp); + assert!(lsp_amount > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, total_supply) = get_amounts(pool); + + let token_a = (token_a_amt * lsp_amount) / total_supply; + let token_b = (token_b_amt * lsp_amount) / total_supply; + + balance::decrease_supply(&mut pool.lsp_supply, coin::into_balance(lsp)); + + ( + coin::take(&mut pool.token_a, token_a, ctx), + coin::take(&mut pool.token_b, token_b, ctx), + ) + } + + /// ======================================================================= + /// ============================= 交易函数 ================================= + /// ======================================================================= + + entry fun swap_a_to_b ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_a_to_b_inner(pool, token_a, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_a_to_b_inner ( + pool: &mut Pool, + token_a: Coin, + ctx: &mut TxContext + ): Coin { + let token_a_amt = coin::value(&token_a); + assert!(token_a_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_b_amt = sell_token_a(pool, token_a_amt); + + balance::join(&mut pool.token_a, coin::into_balance(token_a)); + + coin::take(&mut pool.token_b, token_b_amt, ctx) + } + + entry fun swap_b_to_a ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ) { + transfer::public_transfer( + swap_b_to_a_inner(pool, token_b, ctx), + tx_context::sender(ctx) + ) + } + + fun swap_b_to_a_inner ( + pool: &mut Pool, + token_b: Coin, + ctx: &mut TxContext + ): Coin { + let token_b_amt = coin::value(&token_b); + assert!(token_b_amt > 0, EZeroAmount); + + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + assert!(token_a_amt > 0 && token_b_amt > 0, EReservesEmpty); + + let token_a_amt = sell_token_b(pool, token_b_amt); + + balance::join(&mut pool.token_b, coin::into_balance(token_b)); + + coin::take(&mut pool.token_a, token_a_amt, ctx) + } + + /// ======================================================================= + /// ============================= 辅助函数 ================================= + /// ======================================================================= + + /// 计算售出指定数量的 Token A,会得到多少数量的 Token B + public fun sell_token_a(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_a_amt, + token_b_amt, + pool.fee_percent + ) + } + + /// 计算售出指定数量的 Token B,会得到多少数量的 Token A + public fun sell_token_b(pool: &Pool, to_sell: u64): u64 { + let (token_a_amt, token_b_amt, _) = get_amounts(pool); + calc_output_amount( + to_sell, + token_b_amt, + token_a_amt, + pool.fee_percent + ) + } + + /// Get most used values in a handy way: + /// - amount of token a + /// - amount of token b + /// - total supply of LSP + public fun get_amounts(pool: &Pool): (u64, u64, u64) { + ( + balance::value(&pool.token_a), + balance::value(&pool.token_b), + balance::supply_value(&pool.lsp_supply), + ) + } + + public fun calc_output_amount( + input_amount: u64, + input_reserve: u64, + output_reserve: u64, + fee_percent: u64 + ): u64 { + let ( + input_amount, + input_reserve, + output_reserve, + fee_percent + ) = ( + (input_amount as u128), + (input_reserve as u128), + (output_reserve as u128), + (fee_percent as u128), + ); + + // 计算手续费后的输入数量 + let input_with_fee = input_amount * FEE_SCALING / (FEE_SCALING - fee_percent); + + // 根据公式 (x + dx) * (y - dy) = k + // 得到 dy = y - k / (x + dx) + let total = input_reserve * output_reserve; + let output_amount = output_reserve - total / (input_reserve + input_with_fee); + + (output_amount as u64) + } +} diff --git a/mover/yaominglong001/code/task6/index.html b/mover/yaominglong001/code/task6/index.html new file mode 100644 index 000000000..16c2511ae --- /dev/null +++ b/mover/yaominglong001/code/task6/index.html @@ -0,0 +1,13 @@ + + + + + + + Suiet Kit + Vite + + +
+ + + diff --git a/mover/yaominglong001/code/task6/package.json b/mover/yaominglong001/code/task6/package.json new file mode 100644 index 000000000..818a99d89 --- /dev/null +++ b/mover/yaominglong001/code/task6/package.json @@ -0,0 +1,26 @@ +{ + "name": "with-vite", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --port 3000", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@suiet/wallet-kit": "0.2.24", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tweetnacl": "^1.0.3", + "navi-sdk": "^1.1.21" + }, + "devDependencies": { + "@types/react": "^18.0.22", + "@types/react-dom": "^18.0.7", + "@vitejs/plugin-react": "^2.2.0", + "typescript": "^5.4.3", + "vite": "^3.2.7" + } +} diff --git a/mover/yaominglong001/code/task6/public/vite.svg b/mover/yaominglong001/code/task6/public/vite.svg new file mode 100644 index 000000000..e7b8dfb1b --- /dev/null +++ b/mover/yaominglong001/code/task6/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mover/yaominglong001/code/task6/src/App.css b/mover/yaominglong001/code/task6/src/App.css new file mode 100644 index 000000000..ac87691e7 --- /dev/null +++ b/mover/yaominglong001/code/task6/src/App.css @@ -0,0 +1,43 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +.card { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 2em; +} + +.read-the-docs { + color: #888; +} + +.btn-group button+button{ + margin-left: 12px; +} \ No newline at end of file diff --git a/mover/yaominglong001/code/task6/src/App.tsx b/mover/yaominglong001/code/task6/src/App.tsx new file mode 100644 index 000000000..3004a86ca --- /dev/null +++ b/mover/yaominglong001/code/task6/src/App.tsx @@ -0,0 +1,143 @@ +import suietLogo from "./assets/suiet-logo.svg"; +import "./App.css"; +import { + ConnectButton, + useAccountBalance, + useWallet, + ErrorCode, + formatSUI, +} from "@suiet/wallet-kit"; +import "@suiet/wallet-kit/style.css"; +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import { useMemo } from "react"; +import {depositCoin, borrowCoin} from 'navi-sdk/dist/libs/PTB' +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from 'navi-sdk/dist/address' +import {Sui, USDC} from 'navi-sdk/dist/address'; + +const sampleNft = new Map([ + [ + "sui:devnet", + "0xe146dbd6d33d7227700328a9421c58ed34546f998acdc42a1d05b4818b49faa2::nft::mint", + ], + [ + "sui:testnet", + "0x5ea6aafe995ce6506f07335a40942024106a57f6311cb341239abf2c3ac7b82f::nft::mint", + ], + [ + "sui:mainnet", + "0x5b45da03d42b064f5e051741b6fed3b29eb817c7923b83b92f37a1d2abf4fbab::nft::mint", + ], +]); + +function App() { + const wallet = useWallet(); + const { balance } = useAccountBalance(); + + function uint8arrayToHex(value: Uint8Array | undefined) { + if (!value) return ""; + // @ts-ignore + return value.toString("hex"); + } + + async function handleSignMsg() { + if (!wallet.account) return; + const account = wallet.account; + const sender = account.address; + try { + let txb = new TransactionBlock(); + txb.setSender(sender); + + let getCoinInfo = balance; + if (!getCoinInfo) { + throw new Error("Insufficient balance"); + } + + let deposit_amount = 1e9; + let sui_symbol = Sui.symbol; + const pool_sui: PoolConfig = pool[sui_symbol as keyof Pool]; + const [to_deposit] = txb.splitCoins(txb.gas, [deposit_amount]); + await depositCoin(txb, pool_sui, to_deposit, deposit_amount); + + let borrow_amount = 0.053009 * 1e6; + let usdc_symbol = USDC.symbol; + const pool_usdc: PoolConfig = pool[usdc_symbol as keyof Pool]; + const [borrow_coin] = await borrowCoin(txb, pool_usdc, borrow_amount); + + await depositCoin(txb, pool_usdc, borrow_coin, borrow_amount); + + const resData = await wallet.signAndExecuteTransactionBlock({ + transactionBlock: txb, + }); + console.log("transaction digest: " + resData); + } catch (e) { + console.error("failed", e); + alert("failed (see response in the console)"); + } + } + + return ( +
+ ); +} + +export default App; diff --git a/mover/yaominglong001/code/task6/src/assets/react.svg b/mover/yaominglong001/code/task6/src/assets/react.svg new file mode 100644 index 000000000..6c87de9bb --- /dev/null +++ b/mover/yaominglong001/code/task6/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mover/yaominglong001/code/task6/src/assets/suiet-logo.svg b/mover/yaominglong001/code/task6/src/assets/suiet-logo.svg new file mode 100644 index 000000000..8e01dfcae --- /dev/null +++ b/mover/yaominglong001/code/task6/src/assets/suiet-logo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/mover/yaominglong001/code/task6/src/index.css b/mover/yaominglong001/code/task6/src/index.css new file mode 100644 index 000000000..41bc8b138 --- /dev/null +++ b/mover/yaominglong001/code/task6/src/index.css @@ -0,0 +1,64 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} + + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/mover/yaominglong001/code/task6/src/main.tsx b/mover/yaominglong001/code/task6/src/main.tsx new file mode 100644 index 000000000..9859ab514 --- /dev/null +++ b/mover/yaominglong001/code/task6/src/main.tsx @@ -0,0 +1,19 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +import { + WalletProvider, +} from '@suiet/wallet-kit'; + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + {/* if you want to custiomize you wallet list, please check this doc + https://kit.suiet.app/docs/components/WalletProvider#customize-your-wallet-list-on-modal + */} + + + +) diff --git a/mover/yaominglong001/code/task6/src/vite-env.d.ts b/mover/yaominglong001/code/task6/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/mover/yaominglong001/code/task6/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mover/yaominglong001/code/task6/tsconfig.json b/mover/yaominglong001/code/task6/tsconfig.json new file mode 100644 index 000000000..3d0a51a86 --- /dev/null +++ b/mover/yaominglong001/code/task6/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mover/yaominglong001/code/task6/tsconfig.node.json b/mover/yaominglong001/code/task6/tsconfig.node.json new file mode 100644 index 000000000..9d31e2aed --- /dev/null +++ b/mover/yaominglong001/code/task6/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mover/yaominglong001/code/task6/vite.config.ts b/mover/yaominglong001/code/task6/vite.config.ts new file mode 100644 index 000000000..55ef63119 --- /dev/null +++ b/mover/yaominglong001/code/task6/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + build: { + target: 'es2020' + }, + optimizeDeps: { + esbuildOptions: { + target: 'es2020', + define: { + global: 'globalThis', + }, + }, + }, +}) diff --git a/mover/yaominglong001/image/3.jpg b/mover/yaominglong001/image/3.jpg new file mode 100644 index 000000000..6f9635747 Binary files /dev/null and b/mover/yaominglong001/image/3.jpg differ diff --git a/mover/yaominglong001/image/4.png b/mover/yaominglong001/image/4.png new file mode 100644 index 000000000..83a463018 Binary files /dev/null and b/mover/yaominglong001/image/4.png differ diff --git a/mover/yaominglong001/notes/readme.md b/mover/yaominglong001/notes/readme.md index 210570252..2b3d82525 100644 --- a/mover/yaominglong001/notes/readme.md +++ b/mover/yaominglong001/notes/readme.md @@ -14,4 +14,49 @@ sui client faucet sui client publish - PackageID: 0xbc0d506d085d31917b7416923eb9c19e98750098fff5113ba62911756c258127 \ No newline at end of file + PackageID: 0xbc0d506d085d31917b7416923eb9c19e98750098fff5113ba62911756c258127 + + +## task2 + +sui client publish + +PackageID: 0x2dbd6e3eddfd792695e9da3beb1519f09cd8f3671fc2159a25eaf3210a73fe5f +ObjectID: 0xbfe0861e4dfff7b57abfac202bc75c5f7fd4a7d37358dffed560d84b47a42cf0 +0x2dbd6e3eddfd792695e9da3beb1519f09cd8f3671fc2159a25eaf3210a73fe5f::yaominglong001_faucet_coin::YAOMINGLONG001_FAUCET_COIN + +ObjectID: 0x17f3279b33d5739f263012eb8279dd8c545971eb2666d3e601115da680a91194 +0x2dbd6e3eddfd792695e9da3beb1519f09cd8f3671fc2159a25eaf3210a73fe5f::yaominglong001_coin::YAOMINGLONG001_COIN + +export ADDR1=0xad6ae9a90e742c884906f852b63944606815bc324899b31c2f626f8b3f2d1a43 +export ADDR2=0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +sui client call --package 0x2dbd6e3eddfd792695e9da3beb1519f09cd8f3671fc2159a25eaf3210a73fe5f --module yaominglong001_coin --function mint --args 0x17f3279b33d5739f263012eb8279dd8c545971eb2666d3e601115da680a91194 1000 $ADDR2 + +Transaction Digest: 4HYiZmS6CEn7qQpyitE1GeqWva17ZgBiskNTtVCFw4Tq + +sui client call --package 0x2dbd6e3eddfd792695e9da3beb1519f09cd8f3671fc2159a25eaf3210a73fe5f --module yaominglong001_faucet_coin --function mint --args 0xbfe0861e4dfff7b57abfac202bc75c5f7fd4a7d37358dffed560d84b47a42cf0 1000 $ADDR1 + +Transaction Digest: He245LZYWX8FLyZfe22jC4B2edps5Xvq9eoh5EEaU8iV + +sui client call --package 0x2dbd6e3eddfd792695e9da3beb1519f09cd8f3671fc2159a25eaf3210a73fe5f --module yaominglong001_faucet_coin --function mint --args 0xbfe0861e4dfff7b57abfac202bc75c5f7fd4a7d37358dffed560d84b47a42cf0 1000 $ADDR2 + +Transaction Digest: EZiEdZvHWV4KJrhbHFjVBpsfUD8PBDifKfFXLjMxcSin + + +## task3 + +export PACKAGE_ID=0xb8808437c7fe64d667baa8af677ec329d035de4d11bfbf3277458e6677a9f2aa +export MY_ADDR=0xad6ae9a90e742c884906f852b63944606815bc324899b31c2f626f8b3f2d1a43 + +sui client call --package $PACKAGE_ID --module yaominglong001_nft --function mint_to --args "yaominglong" $MY_ADDR + +Transaction Digest: 5WDcBPLa5WWqMPkqkB1xvKqp2JheMFLmsRJnP7APdxmx + +ObjectID: 0xb9faaf32425cceb31c738eac6e3c3fdf0453017e50186ffca9f52c54c7f22f72 + +export TARGET_ADDR=0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 + +sui client call --package $PACKAGE_ID --module yaominglong001_nft --function mint_to --args "yaominglong001" $TARGET_ADDR + +Transaction Digest: 25ossVvh9CdanZ9RRDrGSXa4pq5nCtEFBuXsRDDGG1iE diff --git a/mover/yaominglong001/readme.md b/mover/yaominglong001/readme.md index 2327a7186..af757b7ad 100644 --- a/mover/yaominglong001/readme.md +++ b/mover/yaominglong001/readme.md @@ -19,28 +19,36 @@ - [x] package id 在 scan上的查看截图:![Scan截图](./image/2.jpg) ## 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 : `0x2dbd6e3eddfd792695e9da3beb1519f09cd8f3671fc2159a25eaf3210a73fe5f` +- [x] Faucet package id : `0x2dbd6e3eddfd792695e9da3beb1519f09cd8f3671fc2159a25eaf3210a73fe5f` +- [x] 转账 `My Coin` hash: `4HYiZmS6CEn7qQpyitE1GeqWva17ZgBiskNTtVCFw4Tq` +- [x] `Faucet Coin` address1 mint hash: `sHe245LZYWX8FLyZfe22jC4B2edps5Xvq9eoh5EEaU8iV` +- [x] `Faucet Coin` address2 mint hash: `EZiEdZvHWV4KJrhbHFjVBpsfUD8PBDifKfFXLjMxcSin` ## 03 move NFT -- [] nft package id : -- [] nft object id : -- [] 转账 nft hash: -- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) +- [x] nft package id : `0xb8808437c7fe64d667baa8af677ec329d035de4d11bfbf3277458e6677a9f2aa` +- [x] nft object id : `0xb9faaf32425cceb31c738eac6e3c3fdf0453017e50186ffca9f52c54c7f22f72` +- [x] 转账 nft hash: `25ossVvh9CdanZ9RRDrGSXa4pq5nCtEFBuXsRDDGG1iE` +- [x] scan上的NFT截图:![Scan截图](./image/3.jpg) ## 04 Move Game -- [] game package id : -- [] deposit Coin hash: -- [] withdraw `Coin` hash: -- [] play game hash: +- [x] game package id : `0xdc26d4bb1c3e67ce33af2eee2265d5899ebdecc15c299df2a6d198559f280536` +- [x] deposit Coin hash: `C7n74CAWKotuxU3tXukBf2WBfyewbqBPt2nCtFQkU12E` +- [x] withdraw `Coin` hash: `7QECNN9oPWoVkwSXoBBx6vQqW8BnPpW374mz8J3tHGrH` +- [x] play game hash: `3fCzmzUpQnKZxUgeNLT5TQT8vVNVR7fqXJzQZtQGtdfi` ## 05 Move Swap -- [] swap package id : -- [] call swap CoinA-> CoinB hash : -- [] call swap CoinB-> CoinA hash : +- [x] swap package id : `0x239138cc55902a15360ee3198f610031adb858da2d4ce458100bb9d00cc6907e` +- [x] call swap CoinA-> CoinB hash : `Z3XQti2tfdVdM14MCwPufZyxjyPEKRdSwuiJys6RXyZ` +- [x] call swap CoinB-> CoinA hash : `GVs5kYXJasGkpSog8B8zpb5k4twa5EaS7KMjVFLEbXFS` ## 06 Dapp-kit SDK PTB -- [] save hash : +- [x] save hash : `WMQYcGTQSZu6PAVuUCujvQYakCsRTwKU38YhbcbQtRu` + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./image/4.png) +- [x] flag hash : `G6BpVNLryQ18m7CBgT6HKqnqcX7p7WcTiMBWXWNSrMzN` + +## 08 Move CTF Lets Move +- [x] proof : `f04e14ca5ad77672a392` +- [x] flag hash : `6ik1DbpPCjbDTkCW7QvXeb7kKdK8JjX4aVBdcJuVFA9X` \ No newline at end of file diff --git a/mover/yemachine/code/coin/Move.toml b/mover/yemachine/code/coin/Move.toml index 5f4380703..336827285 100644 --- a/mover/yemachine/code/coin/Move.toml +++ b/mover/yemachine/code/coin/Move.toml @@ -3,9 +3,11 @@ name = "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)"] +# published-at = "0x5e4f05ba8ef877ab17d079939eb13ce0e21785da7379e00772fed6a6beeaeecb" +published-at = "0x80bfff7c0373f498470bc9e0544365738240a12c72c4c660604096d9e91e5223" [dependencies] -Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } +Sui = { git = "https://github.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. @@ -19,7 +21,9 @@ Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-fram # Override = { local = "../conflicting/version", override = true } [addresses] -coin = "0x0" +coin = "0x80bfff7c0373f498470bc9e0544365738240a12c72c4c660604096d9e91e5223" +#coin = "0x5e4f05ba8ef877ab17d079939eb13ce0e21785da7379e00772fed6a6beeaeecb" + # Named addresses will be accessible in Move as `@name`. They're also exported: # for example, `std = "0x1"` is exported by the Standard Library. diff --git a/mover/yemachine/code/game/Move.lock b/mover/yemachine/code/game/Move.lock new file mode 100644 index 000000000..3847f0579 --- /dev/null +++ b/mover/yemachine/code/game/Move.lock @@ -0,0 +1,49 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2E4B7A11C0E2162023A3C6245398FB82A6EEC87A7CE8EBE135BA09047EFDCB8F" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "coin" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/devnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/devnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "coin" +source = { local = "../coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.25.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x317cbce842ec95f3112a0591981c85a0af8083ae49a7e371ee468dab0e7e4f6f" +latest-published-id = "0x317cbce842ec95f3112a0591981c85a0af8083ae49a7e371ee468dab0e7e4f6f" +published-version = "1" + +[env.devnet] +chain-id = "bd665407" +original-published-id = "0x79421c39d87ff13fa46fb8d4d623b899a29f42ea5d9be5833d49235ed27627ad" +latest-published-id = "0x79421c39d87ff13fa46fb8d4d623b899a29f42ea5d9be5833d49235ed27627ad" +published-version = "1" diff --git a/mover/yemachine/code/game/Move.toml b/mover/yemachine/code/game/Move.toml new file mode 100644 index 000000000..df5eb4647 --- /dev/null +++ b/mover/yemachine/code/game/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "game" +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/devnet" } +coin = { local = "../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] +game = "0x0" +#coin = "0x5e4f05ba8ef877ab17d079939eb13ce0e21785da7379e00772fed6a6beeaeecb" +coin = "0x80bfff7c0373f498470bc9e0544365738240a12c72c4c660604096d9e91e5223" +# 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/yemachine/code/game/sources/game.move b/mover/yemachine/code/game/sources/game.move new file mode 100644 index 000000000..5c96c7bf8 --- /dev/null +++ b/mover/yemachine/code/game/sources/game.move @@ -0,0 +1,137 @@ +module game::game { + use sui::random::{Self, Random, new_generator}; + use std::string::{Self, String}; + use sui::clock::{Self, Clock}; + use sui::event; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::tx_context::sender; + use coin::yemachine_faucet_coin::{Self, YEMACHINE_FAUCET_COIN}; + + const EInvalidNumber: u64 = 0; + const EPoolNotEnough: u64 = 1; + const EInputNotEnough: u64 = 2; + + public struct GameResult has copy, drop { + your_roll: u64, + npc_roll: u64, + result: String, + is_winner: bool, + } + + public struct Game has key { + id: UID, + pool: Balance, + ticket: u64, + reward: u64, + } + + public fun game_pool(game: &Game): u64 { + balance::value(&game.pool) + } + + public fun game_ticket(game: &Game): u64 { + game.ticket + } + + public fun game_reward(game: &Game): u64 { + game.reward + } + + public struct AdminCap has key { + id: UID, + } + + fun init(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + pool: balance::zero(), + ticket: 1_000, + reward: 2_000, + }; + transfer::share_object(game); + + let admin_cap = AdminCap { id: object::new(ctx) }; + transfer::transfer(admin_cap, sender(ctx)); + } + + fun get_random_roll(r: &Random, ctx: &mut TxContext) : u64 { + let mut generator = new_generator(r, ctx); + random::generate_u64_in_range(&mut generator, 0, 3) + } + + fun get_random_roll_2(r: &Random, ctx: &mut TxContext) : u64 { + let mut generator = new_generator(r, ctx); + random::generate_u64_in_range(&mut generator, 0, 3) + } + + public entry fun play(game: &mut Game, input: Coin, r: &Random, ctx: &mut TxContext) { + + assert!(balance::value(&game.pool) >= game.reward - game.ticket, EPoolNotEnough); + + let input_value = coin::value(&input); + assert!(input_value >= game.ticket, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > game.ticket) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, game.ticket) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + }; + + let player_roll = get_random_roll_2(r, ctx); + let npc_roll = get_random_roll(r, ctx); + let (result, is_winner) = if (player_roll > npc_roll) { + (string::utf8(b"Win"), true) + } else if (player_roll == npc_roll) { + (string::utf8(b"Draw"), false) + } else { + (string::utf8(b"Lose"), false) + }; + + if (is_winner) { + let reward_balance = balance::split(&mut game.pool, game.reward); + let reward = coin::from_balance(reward_balance, ctx); + transfer::public_transfer(reward, sender(ctx)); + }; + + event::emit(GameResult { + your_roll: player_roll, + npc_roll: npc_roll, + result, + is_winner, + }); + } + + public entry fun deposit(game: &mut Game, input: Coin, amount: u64, ctx: &mut TxContext) { + let input_value = coin::value(&input); + assert!(input_value >= amount, EInputNotEnough); + + let mut input_balance = coin::into_balance(input); + if (input_value > amount) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, amount) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + } + } + + public entry fun withdraw(_: &AdminCap, game: &mut Game, amount: u64, ctx: &mut TxContext) { + let output_balance = balance::split(&mut game.pool, amount); + let output = coin::from_balance(output_balance, ctx); + transfer::public_transfer(output, sender(ctx)); + } + + public entry fun get_faucet_coin(treasury_cap: &mut TreasuryCap, amount: u64, ctx: &mut TxContext) { + yemachine_faucet_coin::mint(treasury_cap, amount, sender(ctx), ctx); + } +} diff --git a/mover/yemachine/code/nft/Move.lock b/mover/yemachine/code/nft/Move.lock new file mode 100644 index 000000000..829acef49 --- /dev/null +++ b/mover/yemachine/code/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9D4FCF5807A34E3110DFBA44AD92FEFEC55EE3DE8CF58F3D302F55D3004E70D1" +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.25.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x2bbc352ad25968a113a406be478300c445f1155f342afb24b71b8a6478b4d9c3" +latest-published-id = "0x2bbc352ad25968a113a406be478300c445f1155f342afb24b71b8a6478b4d9c3" +published-version = "1" diff --git a/mover/yemachine/code/nft/Move.toml b/mover/yemachine/code/nft/Move.toml new file mode 100644 index 000000000..504c662e4 --- /dev/null +++ b/mover/yemachine/code/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/yemachine/code/nft/sources/nft.move b/mover/yemachine/code/nft/sources/nft.move new file mode 100644 index 000000000..101487cbb --- /dev/null +++ b/mover/yemachine/code/nft/sources/nft.move @@ -0,0 +1,50 @@ +module nft::yemachinenft { + use std::ascii::String; + use std::string::utf8; + use sui::display; + use sui::object; + use sui::object::{UID}; + use sui::package; + use sui::transfer; + use sui::transfer::public_transfer; + use sui::tx_context; + use sui::tx_context::{TxContext}; + + // otw + public struct YEMACHINENFT has drop {} + + public struct NFT has key,store { + id: UID, + name: String, + } + + fun init(otw: YEMACHINENFT, ctx: &mut sui::tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://avatars.githubusercontent.com/u/167276459"), + ]; + + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values,ctx); + + // update version to 1 + display::update_version(&mut display); + + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + // every one can mint + public entry fun mint_to(name: String, recipient: address,ctx: &mut TxContext) { + let nft = NFT{ + id: object::new(ctx), + name, + }; + public_transfer(nft, recipient) + } +} diff --git a/mover/yemachine/code/sdk/index.html b/mover/yemachine/code/sdk/index.html new file mode 100644 index 000000000..b83cc4ab9 --- /dev/null +++ b/mover/yemachine/code/sdk/index.html @@ -0,0 +1,12 @@ + + + + + + dappkit + + +
+ + + diff --git a/mover/yemachine/code/sdk/package.json b/mover/yemachine/code/sdk/package.json new file mode 100644 index 000000000..076a96228 --- /dev/null +++ b/mover/yemachine/code/sdk/package.json @@ -0,0 +1,24 @@ +{ + "name": "with-vite", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --port 3000" + }, + "dependencies": { + "@mysten/sui.js": "0.51.2", + "@suiet/wallet-kit": "0.2.24", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tweetnacl": "^1.0.3", + "navi-sdk": "^1.1.21" + }, + "devDependencies": { + "@types/react": "^18.0.22", + "@types/react-dom": "^18.0.7", + "@vitejs/plugin-react": "^2.2.0", + "typescript": "^5.4.3", + "vite": "^3.2.7" + } +} diff --git a/mover/yemachine/code/sdk/src/App.css b/mover/yemachine/code/sdk/src/App.css new file mode 100644 index 000000000..ac87691e7 --- /dev/null +++ b/mover/yemachine/code/sdk/src/App.css @@ -0,0 +1,43 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +.card { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 2em; +} + +.read-the-docs { + color: #888; +} + +.btn-group button+button{ + margin-left: 12px; +} \ No newline at end of file diff --git a/mover/yemachine/code/sdk/src/App.tsx b/mover/yemachine/code/sdk/src/App.tsx new file mode 100644 index 000000000..aafb1479b --- /dev/null +++ b/mover/yemachine/code/sdk/src/App.tsx @@ -0,0 +1,114 @@ +import { + ConnectButton, + useAccountBalance, + useWallet, + ErrorCode, + formatSUI, +} from "@suiet/wallet-kit"; +import "./App.css"; +import "@suiet/wallet-kit/style.css"; +import { TransactionBlock } from "@mysten/sui.js/transactions"; +import {depositCoin, borrowCoin} from 'navi-sdk/dist/libs/PTB' +import { Pool, PoolConfig } from "navi-sdk/dist/types"; +import { pool } from 'navi-sdk/dist/address' +import {Sui, USDC} from 'navi-sdk/dist/address'; + +function App() { + const wallet = useWallet(); + const { balance } = useAccountBalance(); + + function uint8arrayToHex(value: Uint8Array | undefined) { + if (!value) return ""; + // @ts-ignore + return value.toString("hex"); + } + + async function handleNAVISDK() { + if (!wallet.account) return; + const account = wallet.account; + const sender = account.address; + try { + let txb = new TransactionBlock(); + txb.setSender(sender); + + let getCoinInfo = balance; + if (!getCoinInfo) { + throw new Error("Insufficient balance"); + } + + let deposit_amount = 1e9; + let sui_symbol = Sui.symbol; + const pool_sui: PoolConfig = pool[sui_symbol as keyof Pool]; + const [to_deposit] = txb.splitCoins(txb.gas, [deposit_amount]); + await depositCoin(txb, pool_sui, to_deposit, deposit_amount); + + let borrow_amount = 0.052922 * 1e6; + let usdc_symbol = USDC.symbol; + const pool_usdc: PoolConfig = pool[usdc_symbol as keyof Pool]; + const [borrow_coin] = await borrowCoin(txb, pool_usdc, borrow_amount); + + await depositCoin(txb, pool_usdc, borrow_coin, borrow_amount); + + const resData = await wallet.signAndExecuteTransactionBlock({ + transactionBlock: txb, + }); + console.log("transaction digest: " + JSON.stringify(resData)); + } catch (e) { + console.error("failed", e); + alert("failed (see response in the console)"); + } + } + + return ( +
+
+ { + if (error.code === ErrorCode.WALLET__CONNECT_ERROR__USER_REJECTED) { + console.warn( + "user rejected the connection to " + error.details?.wallet + ); + } else { + console.warn("unknown connect error: ", error); + } + }} + /> + + {!wallet.connected ? ( +

Connect wallet from now!

+ ) : ( +
+
+

current wallet: {wallet.adapter?.name}

+

+ wallet status:{" "} + {wallet.connecting + ? "connecting" + : wallet.connected + ? "connected" + : "disconnected"} +

+

wallet address: {wallet.account?.address}

+

current network: {wallet.chain?.name}

+

+ wallet balance:{" "} + {formatSUI(balance ?? 0, { + withAbbr: false, + })}{" "} + SUI +

+

+ wallet publicKey: {uint8arrayToHex(wallet.account?.publicKey)} +

+
+
+ +
+
+ )} +
+
+ ); +} + +export default App; diff --git a/mover/yemachine/code/sdk/src/index.css b/mover/yemachine/code/sdk/src/index.css new file mode 100644 index 000000000..41bc8b138 --- /dev/null +++ b/mover/yemachine/code/sdk/src/index.css @@ -0,0 +1,64 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} + + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/mover/yemachine/code/sdk/src/main.tsx b/mover/yemachine/code/sdk/src/main.tsx new file mode 100644 index 000000000..b27eb00c3 --- /dev/null +++ b/mover/yemachine/code/sdk/src/main.tsx @@ -0,0 +1,16 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +import { + WalletProvider, +} from '@suiet/wallet-kit'; + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + + + +) diff --git a/mover/yemachine/code/sdk/vite.config.ts b/mover/yemachine/code/sdk/vite.config.ts new file mode 100644 index 000000000..55ef63119 --- /dev/null +++ b/mover/yemachine/code/sdk/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + build: { + target: 'es2020' + }, + optimizeDeps: { + esbuildOptions: { + target: 'es2020', + define: { + global: 'globalThis', + }, + }, + }, +}) diff --git a/mover/yemachine/code/swap/Move.lock b/mover/yemachine/code/swap/Move.lock new file mode 100644 index 000000000..534adfe31 --- /dev/null +++ b/mover/yemachine/code/swap/Move.lock @@ -0,0 +1,43 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "227533E5FA5283EB16C729410236AC8BD8BB86778DEB0E36704B4F308EED7B0C" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "coin" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "coin" +source = { local = "../coin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.25.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x6f91c83bca8557b322e8a228db4afb24b3172f76cd79fa7fba2d2cb45e7e7c0d" +latest-published-id = "0x6f91c83bca8557b322e8a228db4afb24b3172f76cd79fa7fba2d2cb45e7e7c0d" +published-version = "1" diff --git a/mover/yemachine/code/swap/Move.toml b/mover/yemachine/code/swap/Move.toml new file mode 100644 index 000000000..f071bf57d --- /dev/null +++ b/mover/yemachine/code/swap/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "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 (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/mainnet" } +coin = { local = "../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] +swap = "0x0" +coin = "0x5e4f05ba8ef877ab17d079939eb13ce0e21785da7379e00772fed6a6beeaeecb" + +# 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/yemachine/code/swap/sources/swap.move b/mover/yemachine/code/swap/sources/swap.move new file mode 100644 index 000000000..f9585e449 --- /dev/null +++ b/mover/yemachine/code/swap/sources/swap.move @@ -0,0 +1,77 @@ +module swap::yemachine_swap { + use std::string::{Self, String}; + use sui::clock::{Self, Clock}; + use sui::event; + use sui::balance::{Self, Balance}; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::tx_context::sender; + use coin::yemachine_faucet_coin::{Self, YEMACHINE_FAUCET_COIN}; + use coin::yemachine_coin::{Self, YEMACHINE_COIN}; + + public struct Bank has key { + id: UID, + USD: Balance, + RMB: Balance, + /// exchange rate: 1 USD = 7 RMB + rate: u64, + } + + public struct AdminCap has key { + id: UID, + } + + public fun get_rate(bank: &Bank): u64 { + bank.rate + } + + public entry fun set_rate(_: &AdminCap, bank: &mut Bank, rate: u64, _: &mut TxContext) { + bank.rate= rate; + } + + fun init(ctx: &mut TxContext) { + let bank = Bank { + id: object::new(ctx), + USD: balance::zero(), + RMB: balance::zero(), + rate: 7, + }; + transfer::share_object(bank); + + let admin_cap = AdminCap { id: object::new(ctx) }; + transfer::transfer(admin_cap, sender(ctx)); + } + + public entry fun deposit_RMB(bank:&mut Bank,rmb:Coin,_:&mut TxContext){ + balance::join(&mut bank.RMB,coin::into_balance(rmb)); + } + + public entry fun deposit_USD(bank:&mut Bank,usd:Coin,_:&mut TxContext){ + balance::join(&mut bank.USD,coin::into_balance(usd)); + } + + public entry fun swap_usd2rmb(bank: &mut Bank, usd: Coin, ctx: &mut TxContext) { + let usd_amount = coin::value(&usd); + let rmb_amount = usd_amount * bank.rate; + + balance::join(&mut bank.USD, coin::into_balance(usd)); + + let rmb_balance = balance::split(&mut bank.RMB, rmb_amount); + let rmb = coin::from_balance(rmb_balance, ctx); + + transfer::public_transfer(rmb, sender(ctx)); + } + + public entry fun swap_rmb2usd(bank: &mut Bank, rmb: Coin, ctx: &mut TxContext) { + + let rmb_amount = coin::value(&rmb); + let usd_amount = rmb_amount / bank.rate; + + balance::join(&mut bank.RMB, coin::into_balance(rmb)); + + let usd_balance = balance::split(&mut bank.USD, usd_amount); + let usd = coin::from_balance(usd_balance, ctx); + + transfer::public_transfer(usd, sender(ctx)); + } + +} \ No newline at end of file diff --git a/mover/yemachine/notes/nftscan.jpg b/mover/yemachine/notes/nftscan.jpg new file mode 100644 index 000000000..ef7c0d3b0 Binary files /dev/null and b/mover/yemachine/notes/nftscan.jpg differ diff --git a/mover/yemachine/notes/powershell.png b/mover/yemachine/notes/powershell.png new file mode 100644 index 000000000..b192f24e0 Binary files /dev/null and b/mover/yemachine/notes/powershell.png differ diff --git a/mover/yemachine/readme.md b/mover/yemachine/readme.md index f8a5cd931..e6f7af38e 100644 --- a/mover/yemachine/readme.md +++ b/mover/yemachine/readme.md @@ -26,21 +26,30 @@ - [x] `Faucet Coin` address2 mint hash: Hmyk97516gfDnPfFs7AfqgYSMETA8Rz83wgRyK3gnFVq ## 03 move NFT -- [] nft package id : -- [] nft object id : -- [] 转账 nft hash: -- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) +- [x] nft package id : 0x2bbc352ad25968a113a406be478300c445f1155f342afb24b71b8a6478b4d9c3 +- [x] nft object id : 0x050acbe18360bd34a60c03f60fc48676b4d8900682d432cabd422b3ddbfa5ec3 +- [x] 转账 nft hash: HEDPNXPDzoVc4jZBzVLw5vXSSjuURigsACHGD6YUDFBH +- [x] scan上的NFT截图:![Scan截图](./notes/nftscan.jpg) ## 04 Move Game -- [] game package id : -- [] deposit Coin hash: -- [] withdraw `Coin` hash: -- [] play game hash: +- [x] game package id `mainnet`: 0x317cbce842ec95f3112a0591981c85a0af8083ae49a7e371ee468dab0e7e4f6f +- [x] deposit Coin hash `mainnet`: LpUYhJooFgRNpcML4ymJLXf5rPwj7FzUZga8Y48CCyz +- [x] withdraw `Coin` hash `mainnet`: 4TaLpU68G7UfNqmn8raV43sDxeMpH6z9Snw97KNKaF3E +- [x] play game hash `devnet`: Dc67L6nT7kW9BQcbE5CagSHy6PyeEC3Se5Ha68krEsEg +`只有devnet的0x8才有效,所以play game的hash是在devnet上的` ## 05 Move Swap -- [] swap package id : -- [] call swap CoinA-> CoinB hash : -- [] call swap CoinB-> CoinA hash : +- [x] swap package id : 0x6f91c83bca8557b322e8a228db4afb24b3172f76cd79fa7fba2d2cb45e7e7c0d +- [x] call swap CoinA-> CoinB hash : 25auTNc6iPqJy1ra3rwLZF9BEraUsFAESYMVvReuAJdt +- [x] call swap CoinB-> CoinA hash : 7nSHZyXhi5fbSLSACMNQLrLCEq4vsnd4TDHnhNk1h4Hs ## 06 Dapp-kit SDK PTB -- [] save hash : +- [x] save hash : GuvhyphywAC4o2FvCFq9vT7V7Ef5sjaesX5HCuoMrGZa + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./notes/powershell.png) +- [x] flag hash : 4xzV63Qp5rEt9x6LC3JoARQjnuytojjqvr44K93pqSZL + +## 08 Move CTF Lets Move +- [x] proof : f811d6f9f5601e4d4400 +- [x] flag hash : 7C7nBGudiJRjo1kj4S3c4bVJq9tEUyuN92FT7SSBb8mg \ No newline at end of file diff --git a/mover/yinheli/notes/task2.md b/mover/yinheli/notes/task2.md index 62db2dfa7..a7abd973d 100644 --- a/mover/yinheli/notes/task2.md +++ b/mover/yinheli/notes/task2.md @@ -6,10 +6,10 @@ sui client switch --env mainnet # publish -sui client publish --gas-budget 100000000 +sui client publish # or publish module -# sui client publish --gas-budget 100000000 sources/mycoin.move +# sui client publish sources/mycoin.move ``` publish output: @@ -210,7 +210,7 @@ Transaction Digest: ATp4U8dpWK8grgCUE3FuSWuaaFcMpD8g3wbgtSVh4d3n export PACKAGE_ID=0xf0c26a9e727f0d475bd960f6c0a97695ef9bc43344a8651603c879a8068398fd # 给自己发一个 -sui client call --gas-budget 100000000 \ +sui client call \ --package $PACKAGE_ID \ --module mycoin --function mint --args \ 0x1a00ca28bad247d059bb29ce192bc1a07ef4a62a7737409c9637a8e1a8976426 \ @@ -219,7 +219,7 @@ sui client call --gas-budget 100000000 \ # 给任务要求的发一个 -sui client call --gas-budget 100000000 \ +sui client call \ --package $PACKAGE_ID \ --module mycoin --function mint --args \ 0x1a00ca28bad247d059bb29ce192bc1a07ef4a62a7737409c9637a8e1a8976426 \ @@ -233,13 +233,13 @@ sui client call --gas-budget 100000000 \ export PACKAGE_ID=0xf0c26a9e727f0d475bd960f6c0a97695ef9bc43344a8651603c879a8068398fd -sui client call --gas-budget 100000000 \ +sui client call \ --package $PACKAGE_ID \ --module faucet_coin --function mint --args \ 0xf66f7c220f0a0ea40c1ec2e305b2946b81c48f05cbdcbe8a8b7022eb8d3ed272 \ 0x9afd49b0ead9f2884c69fc73282637d83a9341b221b125bc235c2d75d4c59465 -sui client call --gas-budget 100000000 \ +sui client call \ --package $PACKAGE_ID \ --module faucet_coin --function mint --args \ 0xf66f7c220f0a0ea40c1ec2e305b2946b81c48f05cbdcbe8a8b7022eb8d3ed272 \ diff --git a/mover/yinheli/notes/task3.md b/mover/yinheli/notes/task3.md index 239d2b6fe..60deed7ec 100644 --- a/mover/yinheli/notes/task3.md +++ b/mover/yinheli/notes/task3.md @@ -6,7 +6,7 @@ sui client switch --env mainnet # publish -sui client publish --gas-budget 100000000 +sui client publish ``` publish output @@ -213,7 +213,7 @@ Transaction Digest: DtNAUEHV5BfmgXeEwWKmJ26mPBEn4D3griK4RtTm83VE ```bash export PACKAGE_ID=0xc591b939397e796f830e98b1bf02199a8a3b7d20903a752801f0f6742276b164 -sui client call --gas-budget 100000000 \ +sui client call \ --module task3 --function mint_to_sender \ --package $PACKAGE_ID \ --args "yinheli" "yinheli's github avatar" @@ -354,7 +354,7 @@ Transaction Digest: 5ABXrj2yxb9KvvuyzqVzNCNCn21aeiqYtMXNgmUu1v7y send to task address ```bash -sui client call --gas-budget 100000000 \ +sui client call \ --module task3 --function transfer \ --package $PACKAGE_ID \ --args \ diff --git a/mover/yjshi2015/code/coin_move/Move.lock b/mover/yjshi2015/code/coin_move/Move.lock index cc9560021..369b80c4d 100644 --- a/mover/yjshi2015/code/coin_move/Move.lock +++ b/mover/yjshi2015/code/coin_move/Move.lock @@ -21,6 +21,14 @@ dependencies = [ ] [move.toolchain-version] -compiler-version = "1.22.0" -edition = "legacy" +compiler-version = "1.27.0" +edition = "2024.beta" flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xe43565c32957c9c433a129466038e58b91a1f5eab67ea23c508e8cf33581bfec" +latest-published-id = "0xe43565c32957c9c433a129466038e58b91a1f5eab67ea23c508e8cf33581bfec" +published-version = "1" diff --git a/mover/yjshi2015/code/coin_swap/Move.lock b/mover/yjshi2015/code/coin_swap/Move.lock new file mode 100644 index 000000000..632cbacf1 --- /dev/null +++ b/mover/yjshi2015/code/coin_swap/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "C1C149ADF842438D09A58886120FCAA59019DAB817F24C622B714CFAE5D3C5ED" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x720963b103e2190780ecf74ce503ec2c84955d857d4da5ccb0ff60852a87025e" +latest-published-id = "0x720963b103e2190780ecf74ce503ec2c84955d857d4da5ccb0ff60852a87025e" +published-version = "1" diff --git a/mover/yjshi2015/code/coin_swap/Move.toml b/mover/yjshi2015/code/coin_swap/Move.toml new file mode 100644 index 000000000..89fcb81d9 --- /dev/null +++ b/mover/yjshi2015/code/coin_swap/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "coin_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 (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] +coin_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" + diff --git a/mover/yjshi2015/code/coin_swap/readme.md b/mover/yjshi2015/code/coin_swap/readme.md new file mode 100644 index 000000000..10100f177 --- /dev/null +++ b/mover/yjshi2015/code/coin_swap/readme.md @@ -0,0 +1,35 @@ + +## 部署测试币,管理员各 10000 个,并转移给 Alice 1000 个 +``` +sui client publish + +sui client call --package 0xe43565c32957c9c433a129466038e58b91a1f5eab67ea23c508e8cf33581bfec --module YJSHI2015 --function mint --args 0x91eea83e3ac40d4fe6ee29e224e3bd8d94207ebd38d2e46ea5b06283cdca91f9 10000 0xc494732d09de23389dbe99cb2f979965940a633cf50d55caa80ed9e4fc4e521e + +sui client call --package 0xe43565c32957c9c433a129466038e58b91a1f5eab67ea23c508e8cf33581bfec --module YJSHI2015FAUCET --function mint --args 0x46e95d6c4952ca3a49a07f7e8b1d2080c8d1f2005487fcfd65f0325203bf03b7 10000 0xc494732d09de23389dbe99cb2f979965940a633cf50d55caa80ed9e4fc4e521e + +``` +## 部署 swap 合约 +``` +sui client publish +``` + +## 创建流动性池子 +``` +sui client call --package 0x720963b103e2190780ecf74ce503ec2c84955d857d4da5ccb0ff60852a87025e --module coin_swap --function create_pool --args 0x3959e370aed0e58e086cbcb25dca8edd3864982939e1d1d10aebdc1090bb7d47 --type-args 0xe43565c32957c9c433a129466038e58b91a1f5eab67ea23c508e8cf33581bfec::YJSHI2015::YJSHI2015 0xe43565c32957c9c433a129466038e58b91a1f5eab67ea23c508e8cf33581bfec::YJSHI2015FAUCET::YJSHI2015FAUCET +``` + +## 管理员添加流动性,各 2000 个 +池子对象ID:0x109f76856e264b7a41bd6d69d49ff9049be480b15a5450aab14372182508b90b +``` +sui client call --package 0x720963b103e2190780ecf74ce503ec2c84955d857d4da5ccb0ff60852a87025e --module coin_swap --function add_liq --args 0x10b552a049dad419ec35b157ab2ad8a9bda3916d2b0289cfe7d565edbae58967 0x1a23c557203b3fe7a13bb3ea7f427ae5d8996082950ec9a528d7e5f6bd91eb1c 0x109f76856e264b7a41bd6d69d49ff9049be480b15a5450aab14372182508b90b --type-args 0xe43565c32957c9c433a129466038e58b91a1f5eab67ea23c508e8cf33581bfec::YJSHI2015::YJSHI2015 0xe43565c32957c9c433a129466038e58b91a1f5eab67ea23c508e8cf33581bfec::YJSHI2015FAUCET::YJSHI2015FAUCET + +``` + +## swap,Alice 使用 100 个 TokenA 兑换 100 个 TokenB +``` +// 先把 Alice 的 1000 个 TokenA 拆成 100 + 900 个 +sui client call --package 0x2 --module pay --function split_and_transfer --args 0xaff0c81277f056728a8f215577c2747703b00210fb4b2e8d8194cde50430f26d 100 0xc4301a727914c051c987331f30d002ef907f6f6e4badfec8981e6275ed22486c --type-args 0xe43565c32957c9c433a129466038e58b91a1f5eab67ea23c508e8cf33581bfec::YJSHI2015::YJSHI2015 --gas-budget 100000000 + +sui client call --package 0x720963b103e2190780ecf74ce503ec2c84955d857d4da5ccb0ff60852a87025e --module coin_swap --function swap_x2y --args 0xdc67573571e6b91a2bb4544ae776748715ef2aec83304b3960a67eca5a36cdb4 0x109f76856e264b7a41bd6d69d49ff9049be480b15a5450aab14372182508b90b --type-args 0xe43565c32957c9c433a129466038e58b91a1f5eab67ea23c508e8cf33581bfec::YJSHI2015::YJSHI2015 0xe43565c32957c9c433a129466038e58b91a1f5eab67ea23c508e8cf33581bfec::YJSHI2015FAUCET::YJSHI2015FAUCET + +``` \ No newline at end of file diff --git a/mover/yjshi2015/code/coin_swap/sources/coin_swap.move b/mover/yjshi2015/code/coin_swap/sources/coin_swap.move new file mode 100644 index 000000000..85cb2b56c --- /dev/null +++ b/mover/yjshi2015/code/coin_swap/sources/coin_swap.move @@ -0,0 +1,205 @@ +module coin_swap::coin_swap { + + use sui::balance::{ Self, Balance }; + use sui::vec_map::{ Self, VecMap }; + use sui::coin::{ Self, Coin }; + #[test_only] + use sui::test_scenario; + #[test_only] + use std::debug; + + /* + * 创建池子 + * 添加流动性 + * 移除流动性 + * swap + */ + public struct Pool has key, store{ + id: UID, + balance0: Balance, + balance0_map: VecMap, + balance1: Balance, + balance1_map: VecMap, + owner: address, + } + + public struct AdmCap has key { + id: UID, + } + + fun init(ctx: &mut TxContext) { + let admCap = AdmCap { + id: object::new(ctx), + }; + transfer::transfer(admCap, ctx.sender()); + } + + // 创建一个空的流动性池子 + public entry fun create_pool(_: &AdmCap, ctx: &mut TxContext) { + let pool = Pool { + id: object::new(ctx), + balance0: balance::zero(), + balance0_map: vec_map::empty(), + balance1: balance::zero(), + balance1_map: vec_map::empty(), + owner: ctx.sender(), + }; + + transfer::share_object(pool); + } + + // 添加流动性,并通过 vec_map 记录添加到数量 + public entry fun add_liq(coin0: Coin, coin1: Coin, pool: &mut Pool, ctx: &mut TxContext) { + assert!(coin0.value() > 0 && coin1.value() > 0, 1); + pool.balance0_map.insert(ctx.sender(), coin0.value()); + pool.balance0.join(coin0.into_balance()); + pool.balance1_map.insert(ctx.sender(), coin1.value()); + pool.balance1.join(coin1.into_balance()); + } + + // 移除流动性,首先判断之前存入的金额是否大于本次提取的金额 + public entry fun remove_liq(coin0_amount: u64, coin1_amount: u64, pool: &mut Pool, ctx: &mut TxContext) { + // 判断是否超额领取 + let coin0_balance = pool.balance0.value(); + let coin1_balance = pool.balance1.value(); + assert!(coin0_balance >= coin0_amount && coin1_balance >= coin1_amount, 2); + + // 生成移除的 coin0 & coin1 + let coin0 = coin::take(&mut pool.balance0, coin0_amount, ctx); + let coin1 = coin::take(&mut pool.balance1, coin1_amount, ctx); + + // 更新移除账户的 coin0 余额 + let coin0_old = pool.balance0_map.get_mut(&ctx.sender()); + *coin0_old = *coin0_old - coin0_amount; + let coin1_old = pool.balance1_map.get_mut(&ctx.sender()); + *coin1_old = *coin1_old - coin1_amount; + + // 将移除的 coin 转给 sender + transfer::public_transfer(coin0, ctx.sender()); + transfer::public_transfer(coin1, ctx.sender()); + } + + // 将 coin0 按照 1:1 兑换成 coin1 + public entry fun swap_x2y(coin0: Coin, pool: &mut Pool, ctx: &mut TxContext) { + // coin1 必须要足够 + let coin0_amount = coin0.value(); + let coin1_balance = pool.balance1.value(); + assert!(coin1_balance >= coin0_amount, 3); + + // 池子中 coin0 增加 + pool.balance0.join(coin0.into_balance()); + + // 按照 1:1 比例减少池子中 coin1 代币,并将其转移给 sender + let coin1 = coin::take(&mut pool.balance1, coin0_amount, ctx); + transfer::public_transfer(coin1, ctx.sender()); + } + + public entry fun swap_y2x(coin1: Coin, pool: &mut Pool, ctx: &mut TxContext) { + // coin0 必须足够 + let coin1_amount = coin1.value(); + let coin0_balance = pool.balance0.value(); + assert!(coin0_balance >= coin1_amount, 4); + + // 池子中 coin1 增加 + pool.balance1.join(coin1.into_balance()); + + // 按照1:1 比例减少池子中的 coin0 代币,并将其转移给 sender + let coin0 = coin::take(&mut pool.balance0, coin1_amount, ctx); + transfer::public_transfer(coin0, ctx.sender()); + } + + #[test_only] + public struct TokenA has drop{} + #[test_only] + public struct TokenB has drop{} + + #[test] + fun test_swap() { + + let owner = @1000; + let alice = @1001; + + // 初始化 token,并分配给 Alice 和 owner + let mut scenario = test_scenario::begin(alice); + { + let mut tokenA = coin::mint_for_testing(10000, scenario.ctx()); + let mut tokenB = coin::mint_for_testing(10000, scenario.ctx()); + + tokenA.split_and_transfer(1000, alice, scenario.ctx()); + tokenB.split_and_transfer(1000, alice, scenario.ctx()); + + transfer::public_transfer(tokenA, owner); + transfer::public_transfer(tokenB, owner); + }; + + // 初始化模块 + scenario.next_tx(owner); + { + init(scenario.ctx()); + debug::print(&scenario.sender()); + }; + + // 创建池子 + scenario.next_tx(owner); + { + let admCap = scenario.take_from_sender(); + create_pool(&admCap, scenario.ctx()); + scenario.return_to_sender(admCap); + }; + + // 添加流动性 + scenario.next_tx(owner); + { + // 获取池子 + let mut pool = scenario.take_shared>(); + assert!(&pool.balance0.value() == 0, 1); + assert!(&pool.balance1.value() == 0, 1); + + // 获取 owner 的代币,各拿 2000 个用来添加流动性 + let mut tokenA = scenario.take_from_sender>(); + let mut tokenB = scenario.take_from_sender>(); + add_liq(tokenA.split(2000, scenario.ctx()), tokenB.split(2000, scenario.ctx()), &mut pool, scenario.ctx()); + + assert!(pool.balance0.value() == 2000, 2); + assert!(pool.balance1.value() == 2000, 2); + debug::print(&2); + test_scenario::return_shared(pool); + scenario.return_to_sender(tokenA); + scenario.return_to_sender(tokenB); + }; + + // swap tokenA -> tokenB + scenario.next_tx(alice); + { + let mut tokenA = scenario.take_from_sender>(); + let mut pool = scenario.take_shared>(); + // alice 用 100 个 TokenA 置换出 100 个 TokenB + swap_x2y(tokenA.split(100, scenario.ctx()), &mut pool, scenario.ctx()); + + scenario.return_to_sender(tokenA); + test_scenario::return_shared(pool); + }; + + // verify swap result + scenario.next_tx(alice); + { + let pool = scenario.take_shared>(); + + // alice 此时最新的 tokenB 代币为 100 个,实际总共 1100 个 + let tokenB = scenario.take_from_sender>(); + debug::print(&3); + debug::print(&tokenB.value()); + assert!(&tokenB.value() == 100, 3); + + // 池子中 tokenA 增加 100 个, tokenB 减少 100 个 + assert!(&pool.balance0.value() == 2100, 4); + assert!(&pool.balance1.value() == 1900, 4); + + scenario.return_to_sender(tokenB); + test_scenario::return_shared(pool); + }; + + scenario.end(); + } + +} diff --git a/mover/yjshi2015/code/coin_swap/tests/coin_swap_tests.move b/mover/yjshi2015/code/coin_swap/tests/coin_swap_tests.move new file mode 100644 index 000000000..9440ca1a4 --- /dev/null +++ b/mover/yjshi2015/code/coin_swap/tests/coin_swap_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module coin_swap::coin_swap_tests { + // uncomment this line to import the module + // use coin_swap::coin_swap; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_coin_swap() { + // pass + } + + #[test, expected_failure(abort_code = ::coin_swap::coin_swap_tests::ENotImplemented)] + fun test_coin_swap_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/yjshi2015/code/random_game/Move.lock b/mover/yjshi2015/code/random_game/Move.lock new file mode 100644 index 000000000..31d025cc6 --- /dev/null +++ b/mover/yjshi2015/code/random_game/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "1CCEC317352B4A942D701FEC561C5899469263133B0270B3F43D47A03143A991" +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.0" +edition = "2024.beta" +flavor = "sui" diff --git a/mover/yjshi2015/code/random_game/Move.toml b/mover/yjshi2015/code/random_game/Move.toml new file mode 100644 index 000000000..fab47ffa1 --- /dev/null +++ b/mover/yjshi2015/code/random_game/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "random_game" +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] +random_game = "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/yjshi2015/code/random_game/sources/lottery.move b/mover/yjshi2015/code/random_game/sources/lottery.move new file mode 100644 index 000000000..4271e8763 --- /dev/null +++ b/mover/yjshi2015/code/random_game/sources/lottery.move @@ -0,0 +1,112 @@ +module random_game::lottery { + + /* + * 奖池有初始资金,每次猜数时要支付任意数量的资金,猜对了拿走奖池的所有资金,猜错了支付的资金就被纳入奖池。 + * 例如: + * 初始化奖池,1 SUI + * Alice 支付 2 SUI,猜错后,奖池变成 3 SUI + * Bob 支付 2 SUI,猜错后,奖池变成 5 SUI + * Eve 支付 2 SUI,猜对后,获得 5 + 2 = 7 SUI,游戏结束。 + */ + use sui::balance::Balance; + use sui::sui::SUI; + use sui::coin::{ Coin }; + use sui::balance; + use sui::random::{ Self, Random }; + use sui::bcs::{ Self, BCS }; + use std::string::String; + use sui::event; + use std::hash; + + + public struct LotteryGame has key { + id: UID, + // 加密后的谜底,hash(1~10之间的随机数),它可以是任意内容的 hash + secret: vector, + // 明文谜底,仅用于测试 + plain_text: u8, + // 奖池 + award_pool: Balance, + } + + public struct LOTTERY has drop {} + + public struct AdminCap has key, store { + id: UID, + } + + public struct GuessEvent has copy, drop { + game_id: ID, + game_result: String, + } + + // step 1:初始化函数,生成 cap + fun init(otw: LOTTERY, ctx: &mut TxContext) { + let cap = AdminCap { + id: object::new(ctx), + }; + + transfer::transfer(cap, ctx.sender()); + } + + // step 2: 只有 cap 可以初始化一个游戏,并利用 random 和 hash 来设置谜底 + public fun initializer(cap: &AdminCap, coin: Coin, rand: &Random, ctx: &mut TxContext) { + let (plain, secret) = generate_secret(rand, ctx); + let game = LotteryGame { + id: object::new(ctx), + secret, + plain_text: plain, + award_pool: coin.into_balance(), + }; + + transfer::share_object(game); + } + + // step 3: 参与者传入资金和答案,如果答案匹配则拿走所有资金,否则传入的资金进入奖池中 + public entry fun guess_game(game: &mut LotteryGame, coin: Coin, answer: u8, ctx: &mut TxContext) { + assert!(coin.value() > 0, 0); + let game_id = borrow(game); + let secret = borrow_secret(game); + let pool = borrow_award_mut(game); + balance::join(pool, coin.into_balance()); + + let answer_hash = hash::sha3_256(bcs::to_bytes(&answer)); + if(answer_hash != secret) { + event::emit(GuessEvent{ + game_id, + game_result: b"Fail".to_string(), + }); + } else { + let award = pool.value(); + let award_balance = pool.split(award); + transfer::public_transfer(award_balance.into_coin(ctx), ctx.sender()); + + event::emit(GuessEvent{ + game_id, + game_result: b"Success".to_string(), + }); + } + } + + // 生成谜底 + fun generate_secret(rand: &Random, ctx: &mut TxContext): (u8, vector) { + let mut gen = random::new_generator(rand, ctx); + let secret_u8 = random::generate_u8_in_range(&mut gen, 1, 10); + (secret_u8, hash::sha3_256(bcs::to_bytes(&secret_u8))) + } + + // ---------------- read data ------------------------- + fun borrow(game: &LotteryGame): ID { + object::id(game) + } + + fun borrow_secret(game: &LotteryGame): vector { + let tmp = &game.secret; + *tmp + } + + fun borrow_award_mut(game: &mut LotteryGame): &mut Balance { + &mut game.award_pool + } +} + diff --git a/mover/yjshi2015/code/random_game/tests/random_game_tests.move b/mover/yjshi2015/code/random_game/tests/random_game_tests.move new file mode 100644 index 000000000..330d5bb4d --- /dev/null +++ b/mover/yjshi2015/code/random_game/tests/random_game_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module random_game::random_game_tests { + // uncomment this line to import the module + // use random_game::random_game; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_random_game() { + // pass + } + + #[test, expected_failure(abort_code = ::random_game::random_game_tests::ENotImplemented)] + fun test_random_game_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/yjshi2015/code/readme.md b/mover/yjshi2015/code/readme.md index 986631975..f52121efb 100644 --- a/mover/yjshi2015/code/readme.md +++ b/mover/yjshi2015/code/readme.md @@ -6,13 +6,13 @@ sui client call --function mint --module YJSHI2015FAUCET --package 0xf2f9f932744 sui client transfer [OPTIONS] --to --object-id --gas-budget -sui client transfer --to 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 --object-id 0x9c4d630b88b3ae441d5fa24fa75cdd9c884b49f35dfb582da288e1c285d0e1ed --gas-budget 100000000 +sui client transfer --to 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 --object-id 0x9c4d630b88b3ae441d5fa24fa75cdd9c884b49f35dfb582da288e1c285d0e1ed sui client pay [OPTIONS] --gas-budget -sui client pay --gas-budget 100000000 --input-coins 0x9c4d630b88b3ae441d5fa24fa75cdd9c884b49f35dfb582da288e1c285d0e1ed --recipients 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 --amounts 6000000000 +sui client pay --input-coins 0x9c4d630b88b3ae441d5fa24fa75cdd9c884b49f35dfb582da288e1c285d0e1ed --recipients 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 --amounts 6000000000 Usage: sui client call [OPTIONS] --package --module --function --gas-budget -sui client call --package 0x10ab2a6b138ae496bc18e1668ba030202b65ab1104e374ebcac24dcab1f2ad64 --module YJSHI2015NFT --function mint --args YJSHI2015 https://avatars.githubusercontent.com/u/10650592?v=4 --gas-budget 100000000 \ No newline at end of file +sui client call --package 0x10ab2a6b138ae496bc18e1668ba030202b65ab1104e374ebcac24dcab1f2ad64 --module YJSHI2015NFT --function mint --args YJSHI2015 https://avatars.githubusercontent.com/u/10650592?v=4 \ No newline at end of file diff --git a/mover/yjshi2015/image.png b/mover/yjshi2015/image.png new file mode 100644 index 000000000..95e6bea3b Binary files /dev/null and b/mover/yjshi2015/image.png differ diff --git a/mover/yjshi2015/readme.md b/mover/yjshi2015/readme.md index ad1711575..263d3930f 100644 --- a/mover/yjshi2015/readme.md +++ b/mover/yjshi2015/readme.md @@ -25,12 +25,177 @@ - [x] 转账 nft hash: AYVLE4yBL1wpfT6BtQvXfRRXYk2Q8DNfzhiLA5rp1Dsc ## 04 Move Game -- [] game package id : -- [] call game hash: +- [x] game package id :0xa901819a4cb6b5301d7028711cf62a056814a0f634325c399d1ef32bcd36c397 +- [x] call game hash: GuxjPYGniNHxusPFgMFUR37qUayD4ohRZwb4c3cvVU8q ## 05 Move Swap -- [] swap package id : -- [] call swap hash: +- [x] swap package id : 0x720963b103e2190780ecf74ce503ec2c84955d857d4da5ccb0ff60852a87025e +- [x] call swap hash: 57ekXKYx3k8j6TyKsEATL2ZCXLRTcpqWSjLd9qbxgq95 ## 06 SDK PTB - [] save hash : + +## 07 Move CTF Check in +- [x] tx hash : DeBPjZovWqahNZiFS2DjNcwWmQaKgvRAahMiBXrrnzH3 +``` +sui client call --package 0x60695ee31f93add1f79909c884a55dff7e5f140bbd2e495819966bd2f7971d42 --module check_in --function get_flag --args "LetsMoveCTF" "yjshi2015" 0x011f9404e6f167e549b617a53eea058029167a2beac26c624cbc3550e04b5ad2 0x8 +``` + +Transaction Digest: DeBPjZovWqahNZiFS2DjNcwWmQaKgvRAahMiBXrrnzH3 +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xc494732d09de23389dbe99cb2f979965940a633cf50d55caa80ed9e4fc4e521e │ +│ Gas Owner: 0xc494732d09de23389dbe99cb2f979965940a633cf50d55caa80ed9e4fc4e521e │ +│ Gas Budget: 100000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x27dc819e81f0adbe43014008e93d686be5909c3de127b99d2bc5a2f394233a04 │ +│ │ Version: 1174404 │ +│ │ Digest: 3nyLGDgLbb4y79gShGg8dDiud1iFJ74E2Ljtv4h6X9ZP │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: 0x1::ascii::String, Value: "LetsMoveCTF" │ │ +│ │ 1 Pure Arg: Type: 0x1::ascii::String, Value: "yjshi2015" │ │ +│ │ 2 Shared Object ID: 0x011f9404e6f167e549b617a53eea058029167a2beac26c624cbc3550e04b5ad2 │ │ +│ │ 3 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: get_flag │ │ +│ │ │ Module: check_in │ │ +│ │ │ Package: 0x60695ee31f93add1f79909c884a55dff7e5f140bbd2e495819966bd2f7971d42 │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ │ Input 3 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ IPf3W4UkhUm7PnXfe+ObK8E1Nq6nOYqbObcsI5raw32xzJg8Uo1GKyeXR9dwJHsN5vTbMYcgcJkIE8J/NI52Cg== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: DeBPjZovWqahNZiFS2DjNcwWmQaKgvRAahMiBXrrnzH3 │ +│ Status: Success │ +│ Executed Epoch: 396 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x011f9404e6f167e549b617a53eea058029167a2beac26c624cbc3550e04b5ad2 │ +│ │ Owner: Shared │ +│ │ Version: 48002539 │ +│ │ Digest: DbkRDVU2BnTUQBDDonYVVjugAqdsFqfQVMhfkZus4wwg │ +│ └── │ +│ ┌── │ +│ │ ID: 0x27dc819e81f0adbe43014008e93d686be5909c3de127b99d2bc5a2f394233a04 │ +│ │ Owner: Account Address ( 0xc494732d09de23389dbe99cb2f979965940a633cf50d55caa80ed9e4fc4e521e ) │ +│ │ Version: 48002539 │ +│ │ Digest: 487azsprjNkTnj2HmBxkH8Em1PwwrA6mDHLWnv9QR7fQ │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x011f9404e6f167e549b617a53eea058029167a2beac26c624cbc3550e04b5ad2 │ +│ │ Version: 48002538 │ +│ │ Digest: B1TRMirJtrTA19CgapJsY3XE5HVgvJm5TMEtfdBXkF3A │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ +│ │ Version: 45480501 │ +│ │ Digest: 8RPShHTK8zDLYeBvbCvDuLZ8vC9PPDZseu3GUiy5Ba2V │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x27dc819e81f0adbe43014008e93d686be5909c3de127b99d2bc5a2f394233a04 │ +│ │ Owner: Account Address ( 0xc494732d09de23389dbe99cb2f979965940a633cf50d55caa80ed9e4fc4e521e ) │ +│ │ Version: 48002539 │ +│ │ Digest: 487azsprjNkTnj2HmBxkH8Em1PwwrA6mDHLWnv9QR7fQ │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2424400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2445300 MIST │ +│ Non-refundable Storage Fee: 24700 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 5a5CFvFUKb58WyrzYngXTehjhkPXowaoZTcyRxWi2xZQ │ +│ AW7vbqtpJWnFbjRWuL4SsaAyDfwSdKmZqkx6222dJNNx │ +│ Ga2sY6MCrxn4uWPC2otrXQ4Xurtu57sKkgArewCwNLQa │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: DeBPjZovWqahNZiFS2DjNcwWmQaKgvRAahMiBXrrnzH3:0 │ +│ │ PackageID: 0x60695ee31f93add1f79909c884a55dff7e5f140bbd2e495819966bd2f7971d42 │ +│ │ Transaction Module: check_in │ +│ │ Sender: 0xc494732d09de23389dbe99cb2f979965940a633cf50d55caa80ed9e4fc4e521e │ +│ │ EventType: 0x60695ee31f93add1f79909c884a55dff7e5f140bbd2e495819966bd2f7971d42::check_in::Flag │ +│ │ ParsedJSON: │ +│ │ ┌───────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ flag │ true │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ github_id │ yjshi2015 │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ sender │ 0xc494732d09de23389dbe99cb2f979965940a633cf50d55caa80ed9e4fc4e521e │ │ +│ │ ├───────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ ture_num │ 1 │ │ +│ │ └───────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x011f9404e6f167e549b617a53eea058029167a2beac26c624cbc3550e04b5ad2 │ +│ │ Sender: 0xc494732d09de23389dbe99cb2f979965940a633cf50d55caa80ed9e4fc4e521e │ +│ │ Owner: Shared │ +│ │ ObjectType: 0x60695ee31f93add1f79909c884a55dff7e5f140bbd2e495819966bd2f7971d42::check_in::FlagString │ +│ │ Version: 48002539 │ +│ │ Digest: DbkRDVU2BnTUQBDDonYVVjugAqdsFqfQVMhfkZus4wwg │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x27dc819e81f0adbe43014008e93d686be5909c3de127b99d2bc5a2f394233a04 │ +│ │ Sender: 0xc494732d09de23389dbe99cb2f979965940a633cf50d55caa80ed9e4fc4e521e │ +│ │ Owner: Account Address ( 0xc494732d09de23389dbe99cb2f979965940a633cf50d55caa80ed9e4fc4e521e ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 48002539 │ +│ │ Digest: 487azsprjNkTnj2HmBxkH8Em1PwwrA6mDHLWnv9QR7fQ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xc494732d09de23389dbe99cb2f979965940a633cf50d55caa80ed9e4fc4e521e ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -979100 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ + +## 08 Move CTF get_flag +- [x] tx hash : DbYnyU2jQbaF2B2AY2aNcsLmPYbvFWkYkFDqMxukqSfZ +``` +sui client call --package 0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f --module lets_move --function get_flag --args "|%s8:5_Nt6" "yjshi2015" 0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9 0x8 +``` +![get_flag](image.png) + +## 09 translate move-book +- [x] pr : https://github.com/move-cn/move-book/pull/1 + pr : https://github.com/move-cn/move-book/pull/2 +my sui address: 0xc4301a727914c051c987331f30d002ef907f6f6e4badfec8981e6275ed22486c + +## 10 translate reference +- [x] pr : https://github.com/move-cn/move-book/pull/5 diff --git a/mover/ylinfy/notes/readme.md b/mover/ylinfy/notes/readme.md index 8d13450de..ade6c30ac 100644 --- a/mover/ylinfy/notes/readme.md +++ b/mover/ylinfy/notes/readme.md @@ -30,7 +30,7 @@ sui move new hello_move # sui client faucet --help sui client faucet # default with active address on active network cd hello_move -sui client publish --gas-budget 100000000 +sui client publish ``` @@ -78,7 +78,7 @@ export PACKAGE=0xf4e4754da5ede3b693fffe332a61ede86b21ac3ca439fe9546624759955e779 export RECIPIENT=0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 # sui client call -sui client call --package $PACKAGE --module move_nft --function mint_for --args $RECIPIENT --gas-budget 100000000 +sui client call --package $PACKAGE --module move_nft --function mint_for --args $RECIPIENT # NFT Object ID: 0x751d9f216d3bfa395508f2b2263ab4562791ac20af0b08270a97888692534279 # Transfer TX: 8Hnp4mg4FKZGm47SeufVTJMXHSVpqVPZpVh7wiFk6BsY ``` diff --git a/mover/youlixiaosheng/code/task2/youlixiaosheng_coin/Move.lock b/mover/youlixiaosheng/code/task2/youlixiaosheng_coin/Move.lock new file mode 100644 index 000000000..ab6aaaca9 --- /dev/null +++ b/mover/youlixiaosheng/code/task2/youlixiaosheng_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "21A1091FF43D3ED281D5B7920B223856E68C701A4A97EDE69DA1BA118A2D146F" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.24.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x3ca45f029d57df2f18e9a1a922c76732bb8219320020f6c32fa3005648cecba1" +latest-published-id = "0x3ca45f029d57df2f18e9a1a922c76732bb8219320020f6c32fa3005648cecba1" +published-version = "1" diff --git a/mover/youlixiaosheng/code/task2/youlixiaosheng_coin/Move.toml b/mover/youlixiaosheng/code/task2/youlixiaosheng_coin/Move.toml new file mode 100644 index 000000000..13660cd5e --- /dev/null +++ b/mover/youlixiaosheng/code/task2/youlixiaosheng_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "youlixiaosheng_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/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] +youlixiaosheng_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/youlixiaosheng/code/task2/youlixiaosheng_coin/sources/youlixiaosheng_coin.move b/mover/youlixiaosheng/code/task2/youlixiaosheng_coin/sources/youlixiaosheng_coin.move new file mode 100644 index 000000000..b24e3bb0b --- /dev/null +++ b/mover/youlixiaosheng/code/task2/youlixiaosheng_coin/sources/youlixiaosheng_coin.move @@ -0,0 +1,36 @@ +module youlixiaosheng_coin::youlixiaosheng_coin { + use std::option; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::transfer; + use sui::tx_context; + use sui::url::{Self,Url}; + + public struct YOULIXIAOSHENG_COIN has drop {} + + fun init(youlixiaosheng_coin: YOULIXIAOSHENG_COIN, ctx: &mut TxContext) { + let (treasury_cap, + metadata) = coin::create_currency( + youlixiaosheng_coin, + 9, + b"YOULIXIAOSHENG_COIN", + b"youlixiaosheng", + b"youlixiaosheng", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/147264753?v=4")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/youlixiaosheng/code/task2/youlixiaosheng_faucet/Move.lock b/mover/youlixiaosheng/code/task2/youlixiaosheng_faucet/Move.lock new file mode 100644 index 000000000..3239e0e54 --- /dev/null +++ b/mover/youlixiaosheng/code/task2/youlixiaosheng_faucet/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "F0DEB65095CDEEEE4E947FA4F1B69479AC6E9CF0C4D23EC457F4DA679DD03A0E" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.24.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x4e8512cb40dcf967f19010d2f9bfa2c3051468a0ab64edf0447c88e7af1cb83f" +latest-published-id = "0x4e8512cb40dcf967f19010d2f9bfa2c3051468a0ab64edf0447c88e7af1cb83f" +published-version = "1" diff --git a/mover/youlixiaosheng/code/task2/youlixiaosheng_faucet/Move.toml b/mover/youlixiaosheng/code/task2/youlixiaosheng_faucet/Move.toml new file mode 100644 index 000000000..6e2d8760c --- /dev/null +++ b/mover/youlixiaosheng/code/task2/youlixiaosheng_faucet/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "youlixiaosheng_faucet" +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/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] +youlixiaosheng_faucet = "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/youlixiaosheng/code/task2/youlixiaosheng_faucet/sources/youlixiaosheng_faucet.move b/mover/youlixiaosheng/code/task2/youlixiaosheng_faucet/sources/youlixiaosheng_faucet.move new file mode 100644 index 000000000..29be65f3d --- /dev/null +++ b/mover/youlixiaosheng/code/task2/youlixiaosheng_faucet/sources/youlixiaosheng_faucet.move @@ -0,0 +1,36 @@ +module youlixiaosheng_faucet::youlixiaosheng_faucet { + use std::option; + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::transfer; + use sui::url::{Self,Url}; + + public struct YOULIXIAOSHENG_FAUCET has drop {} + + #[allow(lint(share_owned))] + fun init(youlixiaosheng_faucet: YOULIXIAOSHENG_FAUCET, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + youlixiaosheng_faucet, + 9, + b"YOULIXIAOSHENG_FAUCET", + b"YOULIXIAOSHENG_FAUCET", + b"youlixiaosheng's faucet coin.", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/147264753?v=4")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury_cap) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin) { + coin::burn(treasury_cap, coin); + } + +} \ No newline at end of file diff --git a/mover/youlixiaosheng/code/task3/youlixiaosheng_nft/Move.lock b/mover/youlixiaosheng/code/task3/youlixiaosheng_nft/Move.lock new file mode 100644 index 000000000..f5d89f79a --- /dev/null +++ b/mover/youlixiaosheng/code/task3/youlixiaosheng_nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "D33DE31C3C8D7D86F0971E1CD734BEED7F3EB7AE52A90DA5B7041C212808B355" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.24.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xcb55fd222851047e986c1a757816b2548358f3362abc9eba05c32a5f01acb074" +latest-published-id = "0xcb55fd222851047e986c1a757816b2548358f3362abc9eba05c32a5f01acb074" +published-version = "1" diff --git a/mover/youlixiaosheng/code/task3/youlixiaosheng_nft/Move.toml b/mover/youlixiaosheng/code/task3/youlixiaosheng_nft/Move.toml new file mode 100644 index 000000000..1c9251a92 --- /dev/null +++ b/mover/youlixiaosheng/code/task3/youlixiaosheng_nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "youlixiaosheng_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] +youlixiaosheng_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/youlixiaosheng/code/task3/youlixiaosheng_nft/sources/youlixiaosheng_nft.move b/mover/youlixiaosheng/code/task3/youlixiaosheng_nft/sources/youlixiaosheng_nft.move new file mode 100644 index 000000000..82d5eac20 --- /dev/null +++ b/mover/youlixiaosheng/code/task3/youlixiaosheng_nft/sources/youlixiaosheng_nft.move @@ -0,0 +1,44 @@ +module youlixiaosheng_nft::youlixiaosheng_nft { + use std::ascii::String; + use std::string::utf8; + use sui::display; + use sui::object; + use sui::object::{UID}; + use sui::package; + use sui::transfer; + use sui::transfer::public_transfer; + use sui::tx_context; + use sui::tx_context::{TxContext}; + + public struct YOULIXIAOSHENG_NFT has drop {} + + public struct NFT has key,store { + id: UID, + name: String, + } + + fun init(otw: YOULIXIAOSHENG_NFT, ctx: &mut sui::tx_context::TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://avatars.githubusercontent.com/u/147264753?v=4"), + ]; + let publisher = package::claim(otw, ctx); + let mut display = display::new_with_fields(&publisher, keys, values,ctx); + display::update_version(&mut display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + transfer::public_transfer(display, tx_context::sender(ctx)); + } + + public entry fun mint_to(name: String, recipient: address,ctx: &mut TxContext) { + let nft = NFT{ + id: object::new(ctx), + name, + }; + public_transfer(nft, recipient) + } +} \ No newline at end of file diff --git a/mover/youlixiaosheng/images/screenshot-20240530-150408.png b/mover/youlixiaosheng/images/screenshot-20240530-150408.png new file mode 100644 index 000000000..2a4afd2d8 Binary files /dev/null and b/mover/youlixiaosheng/images/screenshot-20240530-150408.png differ diff --git a/mover/youlixiaosheng/images/screenshot-2png.png b/mover/youlixiaosheng/images/screenshot-2png.png new file mode 100644 index 000000000..1fc06b1c2 Binary files /dev/null and b/mover/youlixiaosheng/images/screenshot-2png.png differ diff --git a/mover/youlixiaosheng/readme.md b/mover/youlixiaosheng/readme.md index 00e59af3c..25b6332fb 100644 --- a/mover/youlixiaosheng/readme.md +++ b/mover/youlixiaosheng/readme.md @@ -20,3 +20,17 @@ - [x] package id: 0xd2aa88461b990803b98562b6ab68562a10027046fe7649776103ee5f8cbee3c4 - [x] Sui钱包截图: ![Sui钱包截图](./images/wallet.png) - [x] package id 在 scan上的查看截图:![Scan截图](./images/img.png) + + +## 02 move coin +- [x] My Coin package id : 0x3ca45f029d57df2f18e9a1a922c76732bb8219320020f6c32fa3005648cecba1 +- [x] Faucet package id : 0x4e8512cb40dcf967f19010d2f9bfa2c3051468a0ab64edf0447c88e7af1cb83f +- [x] 转账 `My Coin` hash: FE3J9ZZEsxpVmekwYNrDAdEkj3rMWG2eGZR6rAP3vyZH +- [x] `Faucet Coin` address1 mint hash: F7S15b517rmiSPe9F3YgH2VU6RvBFYNp9Qmb8KQ3dvos +- [x] `Faucet Coin` address2 mint hash: Cu4oPSxLH5u332q4KZWzkLytfxYXkQ2YradXR8baRCAN + +## 03 move NFT +- [x] nft package id : 0xcb55fd222851047e986c1a757816b2548358f3362abc9eba05c32a5f01acb074 +- [x] nft object id : 0x19f30c95b3572796b8203185681cde50519c23d9de8438ce6da534e1ee0b7f30 +- [x] 转账 nft hash: CC6st2o5Vrgpns4o3ryPw4qCLga83HDcFL9E4RaRE3y4 +- [x] scan上的NFT截图:![Scan截图](images/screenshot-2png.png) diff --git a/mover/yuhuangdadi666/F884EB01-C640-4F59-9681-8DF1475C3690.png b/mover/yuhuangdadi666/F884EB01-C640-4F59-9681-8DF1475C3690.png new file mode 100644 index 000000000..34a0cea74 Binary files /dev/null and b/mover/yuhuangdadi666/F884EB01-C640-4F59-9681-8DF1475C3690.png differ diff --git a/mover/yuhuangdadi666/code/task1/Move.lock b/mover/yuhuangdadi666/code/task1/Move.lock new file mode 100644 index 000000000..ded602452 --- /dev/null +++ b/mover/yuhuangdadi666/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "2E267C18D553336099CDD31F7063857679825E46CD06EC67CC7F7FB0C20317C1" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x7cccb53d1cf8302dba2c99704aaad0fd4d714fc805d427a68cc4de17ebae353a" +latest-published-id = "0x7cccb53d1cf8302dba2c99704aaad0fd4d714fc805d427a68cc4de17ebae353a" +published-version = "1" diff --git a/mover/yuhuangdadi666/code/task1/Move.toml b/mover/yuhuangdadi666/code/task1/Move.toml new file mode 100644 index 000000000..e75e497eb --- /dev/null +++ b/mover/yuhuangdadi666/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task1" +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] +task1 = "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/yuhuangdadi666/code/task1/sources/task1.move b/mover/yuhuangdadi666/code/task1/sources/task1.move new file mode 100644 index 000000000..25d0749df --- /dev/null +++ b/mover/yuhuangdadi666/code/task1/sources/task1.move @@ -0,0 +1,19 @@ +/// Module: hello_world +module task1::task1 { + use std::ascii::{String, string}; + use sui::transfer::transfer; + use sui::tx_context::sender; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"yuhuangdadi666"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/yuhuangdadi666/code/task1/tests/task1_tests.move b/mover/yuhuangdadi666/code/task1/tests/task1_tests.move new file mode 100644 index 000000000..31fb8c1ac --- /dev/null +++ b/mover/yuhuangdadi666/code/task1/tests/task1_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task1::task1_tests { + // uncomment this line to import the module + // use task1::task1; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task1() { + // pass + } + + #[test, expected_failure(abort_code = ::task1::task1_tests::ENotImplemented)] + fun test_task1_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/yuhuangdadi666/code/task2/coin/Move.lock b/mover/yuhuangdadi666/code/task2/coin/Move.lock new file mode 100644 index 000000000..8179b3507 --- /dev/null +++ b/mover/yuhuangdadi666/code/task2/coin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "759D5BBA961C7BD0C265B42CE2CE995EB9A05D5E4C74EAF83D084518BD03BB0F" +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.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x4273c5d31de473d4d496fe5171119f2aecadb28c077f9ee5242a70a52a0cc03b" +latest-published-id = "0x4273c5d31de473d4d496fe5171119f2aecadb28c077f9ee5242a70a52a0cc03b" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xe1e643943a5a76715fbb11fad80c10244462dea0143151fcf9377586e7e53dbf" +latest-published-id = "0xe1e643943a5a76715fbb11fad80c10244462dea0143151fcf9377586e7e53dbf" +published-version = "1" diff --git a/mover/yuhuangdadi666/code/task2/coin/Move.toml b/mover/yuhuangdadi666/code/task2/coin/Move.toml new file mode 100644 index 000000000..5f4380703 --- /dev/null +++ b/mover/yuhuangdadi666/code/task2/coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://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] +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/yuhuangdadi666/code/task2/coin/sources/coin.move b/mover/yuhuangdadi666/code/task2/coin/sources/coin.move new file mode 100644 index 000000000..61fb0e80d --- /dev/null +++ b/mover/yuhuangdadi666/code/task2/coin/sources/coin.move @@ -0,0 +1,34 @@ +module coin::yuhuangdadi666_coin { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct YUHUANGDADI666_COIN has drop {} + + fun init(witness: YUHUANGDADI666_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"YUHUANGDADI666_COIN", + b"yuhuangdadi666", + b"yuhuangdadi666 coin", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/77825640?v=4")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/yuhuangdadi666/code/task2/coin/sources/faucet.move b/mover/yuhuangdadi666/code/task2/coin/sources/faucet.move new file mode 100644 index 000000000..f7ef97dad --- /dev/null +++ b/mover/yuhuangdadi666/code/task2/coin/sources/faucet.move @@ -0,0 +1,35 @@ +module coin::yuhuangdadi666_FAUCET_COIN { + use sui::coin::{Self, Coin, TreasuryCap}; + use sui::url::{Self,Url}; + + public struct YUHUANGDADI666_FAUCET_COIN has drop {} + + #[allow(lint(share_owned))] + fun init(witness: YUHUANGDADI666_FAUCET_COIN, ctx: &mut TxContext) { + let (treasury_cap, metadata) = coin::create_currency( + witness, + 9, + b"YUHUANGDADI666_FAUCET", + b"YUHUANGDADI666_FAUCET", + b"yuhaungdadi666's faucet coin, everyone can access and mutate.", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/77825640?v=4")), + ctx + ); + transfer::public_freeze_object(metadata); + transfer::public_share_object(treasury_cap) + } + public entry fun mint( + treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext + ) { + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } +} \ No newline at end of file diff --git a/mover/yuhuangdadi666/code/task2/coin/tests/coin_tests.move b/mover/yuhuangdadi666/code/task2/coin/tests/coin_tests.move new file mode 100644 index 000000000..4cd0af9ad --- /dev/null +++ b/mover/yuhuangdadi666/code/task2/coin/tests/coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module coin::coin_tests { + // uncomment this line to import the module + // use coin::coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::coin::coin_tests::ENotImplemented)] + fun test_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/yuhuangdadi666/code/task3/nft/Move.lock b/mover/yuhuangdadi666/code/task3/nft/Move.lock new file mode 100644 index 000000000..4127e1e4b --- /dev/null +++ b/mover/yuhuangdadi666/code/task3/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "598F8F874C952A217CD82EAFF3EC58932307CBD6F4EAAA625ACB910AA12EC3B0" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x4ebff147600fa7625fd1266bf32b56ddf0835ccd6ba3117db77bae2a682868e9" +latest-published-id = "0x4ebff147600fa7625fd1266bf32b56ddf0835ccd6ba3117db77bae2a682868e9" +published-version = "1" diff --git a/mover/yuhuangdadi666/code/task3/nft/Move.toml b/mover/yuhuangdadi666/code/task3/nft/Move.toml new file mode 100644 index 000000000..51771cd90 --- /dev/null +++ b/mover/yuhuangdadi666/code/task3/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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://github.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] +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/yuhuangdadi666/code/task3/nft/sources/nft.move b/mover/yuhuangdadi666/code/task3/nft/sources/nft.move new file mode 100644 index 000000000..04dc0badd --- /dev/null +++ b/mover/yuhuangdadi666/code/task3/nft/sources/nft.move @@ -0,0 +1,61 @@ +module nft::nft { + + use std::string::{Self, utf8, String}; + use sui::url::{Self, Url}; + use sui::display; + use sui::package; + + public struct Nft has key, store { + id: UID, + name: String, + description: String, + creator: address, + url: Url, + } + + public struct NFT has drop {} + + #[allow(lint(share_owned))] + fun init(otw: NFT, ctx: &mut TxContext) { + let publisher = package::claim(otw, ctx); + + let keys = vector[ + utf8(b"name"), + utf8(b"description"), + utf8(b"creator"), + utf8(b"image_url"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"{description}"), + utf8(b"{creator}"), + utf8(b"{url}"), + ]; + + let mut display = display::new_with_fields( + &publisher, + keys, + values, + ctx + ); + + display::update_version(&mut display); + + transfer::public_share_object(display); + transfer::public_transfer(publisher, tx_context::sender(ctx)); + } + + entry fun mint(recipient:address, ctx: &mut TxContext) { + let nft = Nft { + id: object::new(ctx), + name: string::utf8(b"yuhuangdadi666"), + description: string::utf8(b"yuhuangdadi666 NFT"), + creator: tx_context::sender(ctx), + url: url::new_unsafe_from_bytes( + b"https://avatars.githubusercontent.com/u/77825640?v=4" + ) + }; + transfer::public_transfer(nft, recipient); + } +} \ No newline at end of file diff --git a/mover/yuhuangdadi666/code/task3/nft/tests/nft_tests.move b/mover/yuhuangdadi666/code/task3/nft/tests/nft_tests.move new file mode 100644 index 000000000..1e3625fad --- /dev/null +++ b/mover/yuhuangdadi666/code/task3/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/yuhuangdadi666/code/task4/game/Move.lock b/mover/yuhuangdadi666/code/task4/game/Move.lock new file mode 100644 index 000000000..41d07d2f5 --- /dev/null +++ b/mover/yuhuangdadi666/code/task4/game/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "7BC81EE7D5B76ECFCD5AB7348D00F8DB7D28EBCF0DDB180BDA6D422CDFEA393C" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.27.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x1ddc05449f882c7b72f9229af33106f5fbe78d1ba50dd811eb379e46d58b168b" +latest-published-id = "0x1ddc05449f882c7b72f9229af33106f5fbe78d1ba50dd811eb379e46d58b168b" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xe18b5761ac1d4e55802125ba42320cda857c6e25a23b568c6b60389c7f4c0bd4" +latest-published-id = "0xe18b5761ac1d4e55802125ba42320cda857c6e25a23b568c6b60389c7f4c0bd4" +published-version = "1" diff --git a/mover/yuhuangdadi666/code/task4/game/Move.toml b/mover/yuhuangdadi666/code/task4/game/Move.toml new file mode 100644 index 000000000..83788c73a --- /dev/null +++ b/mover/yuhuangdadi666/code/task4/game/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "game" +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/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] +game = "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/yuhuangdadi666/code/task4/game/sources/game.move b/mover/yuhuangdadi666/code/task4/game/sources/game.move new file mode 100644 index 000000000..8ebdfa14d --- /dev/null +++ b/mover/yuhuangdadi666/code/task4/game/sources/game.move @@ -0,0 +1,60 @@ +module game::game { + + use std::debug; + use std::string; + use sui::clock; + use sui::clock::Clock; + use sui::event; + + const ROCK: u64 = 0; + const SCISSORS: u64 = 1; + const PAPER: u64 = 2; + const E_INVALID_GESTURE: u64 = 0; + + public struct GameOutcome has drop, copy { + player_gesture: u64, + machine_gesture: u64, + outcome: string::String + } + + public fun play(player_gesture: u64, clock: &Clock) { + // Ensure player input is within valid range + assert!(is_valid_gesture(player_gesture), E_INVALID_GESTURE); + + let machine_gesture = generate_random_gesture(clock); + let outcome_message = determine_outcome(player_gesture, machine_gesture); + + let outcome = GameOutcome { + player_gesture, + machine_gesture, + outcome: outcome_message, + }; + + event::emit(outcome); + } + + fun is_valid_gesture(gesture: u64): bool { + gesture == ROCK || gesture == SCISSORS || gesture == PAPER + } + + fun generate_random_gesture(clock: &Clock): u64 { + let timestamp = clock::timestamp_ms(clock); + let random_value = timestamp % 3; + debug::print(&random_value); + random_value + } + + fun determine_outcome(player_gesture: u64, machine_gesture: u64): string::String { + if (player_gesture == machine_gesture) { + string::utf8(b"Oh, it's a tie. (0: Rock, 1: Scissors, 2: Paper)") + } else if (is_player_winner(player_gesture, machine_gesture)) { + string::utf8(b"Congratulations, you won! (0: Rock, 1: Scissors, 2: Paper)") + } else { + string::utf8(b"Sorry, you lost. (0: Rock, 1: Scissors, 2: Paper)") + } + } + + fun is_player_winner(player_gesture: u64, machine_gesture: u64): bool { + (player_gesture + 1) % 3 == machine_gesture + } +} diff --git a/mover/yuhuangdadi666/code/task4/game/tests/game_tests.move b/mover/yuhuangdadi666/code/task4/game/tests/game_tests.move new file mode 100644 index 000000000..c7dbc671a --- /dev/null +++ b/mover/yuhuangdadi666/code/task4/game/tests/game_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module game::game_tests { + // uncomment this line to import the module + // use game::game; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_game() { + // pass + } + + #[test, expected_failure(abort_code = ::game::game_tests::ENotImplemented)] + fun test_game_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/yuhuangdadi666/code/task5/swap/Move.toml b/mover/yuhuangdadi666/code/task5/swap/Move.toml new file mode 100644 index 000000000..9b748d2f4 --- /dev/null +++ b/mover/yuhuangdadi666/code/task5/swap/Move.toml @@ -0,0 +1,41 @@ +[package] +name = "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 (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" } +coin = { local = "../../task2/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] +swap = "0x0" +# test +coin = "0x4273c5d31de473d4d496fe5171119f2aecadb28c077f9ee5242a70a52a0cc03b" +# main +#coin = "0xe1e643943a5a76715fbb11fad80c10244462dea0143151fcf9377586e7e53dbf" + +# 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/yuhuangdadi666/code/task5/swap/sources/swap.move b/mover/yuhuangdadi666/code/task5/swap/sources/swap.move new file mode 100644 index 000000000..357075648 --- /dev/null +++ b/mover/yuhuangdadi666/code/task5/swap/sources/swap.move @@ -0,0 +1,4 @@ + +module swap::swap { + +} diff --git a/mover/yuhuangdadi666/code/task5/swap/tests/swap_tests.move b/mover/yuhuangdadi666/code/task5/swap/tests/swap_tests.move new file mode 100644 index 000000000..3da47bebd --- /dev/null +++ b/mover/yuhuangdadi666/code/task5/swap/tests/swap_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module swap::swap_tests { + // uncomment this line to import the module + // use swap::swap; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_swap() { + // pass + } + + #[test, expected_failure(abort_code = ::swap::swap_tests::ENotImplemented)] + fun test_swap_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/yuhuangdadi666/readme.md b/mover/yuhuangdadi666/readme.md new file mode 100644 index 000000000..214e2c99b --- /dev/null +++ b/mover/yuhuangdadi666/readme.md @@ -0,0 +1,44 @@ +## 基本信息 +- Sui钱包地址: `0xe0c3537f27fb84b5adf68ce69b36c3d4814e820798e126aac512bdb94627dd8e` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `yuhuangdadi666` + +## 个人简介 +- 工作经验: 3年Java 失业在家 +- 技术栈: `Java` +- 熟悉 web2 的 tomcat、jsp 等技术,准备转行学习 web3 +- 联系方式: qq 2543175043 + +## 任务 + +## 01 hello move +- [x] package id: 0x7cccb53d1cf8302dba2c99704aaad0fd4d714fc805d427a68cc4de17ebae353a + +## 02 move coin +- [x] My Coin package id : 0xe1e643943a5a76715fbb11fad80c10244462dea0143151fcf9377586e7e53dbf +- [x] Faucet package id : 0xe1e643943a5a76715fbb11fad80c10244462dea0143151fcf9377586e7e53dbf +- [x] 转账 `My Coin` hash: F6bdFAdxta84EVheNQz2swTLX82ZKiqTCLSab11JzApv + +## 03 move NFT +- [x] nft package id : 0x4ebff147600fa7625fd1266bf32b56ddf0835ccd6ba3117db77bae2a682868e9 +- [x] nft object id : 0x5536c370a47f7d8ec774a12f60fdcdd1686fdae39a8d2adc28b0ca8637d270f7 +- [x] 转账 nft hash: CnNFvPacAFMLZ7nmgNoKe2VMJVcRVorMkYsSJj9Qe5xw + +## 04 Move Game +- [x] game package id : 0xe18b5761ac1d4e55802125ba42320cda857c6e25a23b568c6b60389c7f4c0bd4 +- [x] call game hash: U2C7KPkphgaD5qqG1CY4TQuXbYxR8k64nbXEUJ8BeYM + +## 05 Move Swap +- [ ] swap package id : +- [ ] call swap hash: + +## 06 SDK PTB +- [ ] save hash : + +## 07 Move CTF Check In +- [x] CLI call 截图: ![](./F884EB01-C640-4F59-9681-8DF1475C3690.png) +- [x] flag hash: GCPBkZMqg94qkvmgvZrLxGkFTYwcYCActnHLi9rsNoKU + +## 08 Move CTF Lets Move +- [x] proof: `mmIjhC` +- [x] Transaction block: 7GSntmwd89jnesiiosEzBGg4jyRF19FBiNdyRzbkCKhB \ No newline at end of file diff --git a/mover/yxsec/notes/readme.md b/mover/yxsec/notes/readme.md index d1f8866f9..0d9cf5cc0 100644 --- a/mover/yxsec/notes/readme.md +++ b/mover/yxsec/notes/readme.md @@ -37,7 +37,7 @@ module hello_world::hello_world { 部署合约 ``` -sui client publish --gas-budget 100000000 . +sui client publish . UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git INCLUDING DEPENDENCY Sui diff --git a/mover/yymm120/code/task1/hello_world/Move.lock b/mover/yymm120/code/task1/hello_world/Move.lock new file mode 100644 index 000000000..b2862dba4 --- /dev/null +++ b/mover/yymm120/code/task1/hello_world/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "60F2000F4D6DAD240EF371DB3BC521F7BD4C8B814BC59CA473B852B77FDBE53C" +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.29.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x5ed27c232fb5592a9fd01617994e0c89fabc680761108ab6edaaba42a473dc6f" +latest-published-id = "0x5ed27c232fb5592a9fd01617994e0c89fabc680761108ab6edaaba42a473dc6f" +published-version = "1" diff --git a/mover/yymm120/code/task1/hello_world/Move.toml b/mover/yymm120/code/task1/hello_world/Move.toml new file mode 100644 index 000000000..201de1731 --- /dev/null +++ b/mover/yymm120/code/task1/hello_world/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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] +hello_world = "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/yymm120/code/task1/hello_world/sources/hello_world.move b/mover/yymm120/code/task1/hello_world/sources/hello_world.move new file mode 100644 index 000000000..49d589716 --- /dev/null +++ b/mover/yymm120/code/task1/hello_world/sources/hello_world.move @@ -0,0 +1,23 @@ + +/// Module: hello_world_package +module hello_world::hello_world { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"move"), + }; + transfer(hello_move, sender(ctx)); + } + +} + diff --git a/mover/yymm120/images/img.png b/mover/yymm120/images/img.png new file mode 100644 index 000000000..bf4d42e0a Binary files /dev/null and b/mover/yymm120/images/img.png differ diff --git a/mover/yymm120/images/img_1.png b/mover/yymm120/images/img_1.png new file mode 100644 index 000000000..ab2c385d4 Binary files /dev/null and b/mover/yymm120/images/img_1.png differ diff --git a/mover/yymm120/readme.md b/mover/yymm120/readme.md new file mode 100644 index 000000000..fd1b83682 --- /dev/null +++ b/mover/yymm120/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x8dab425712c6df084e7c87cf353ffd195b75c1b6635a417d23beed815e53f51a` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `yymm120` + +## 个人简介 +- 工作经验: 2年 +- 技术栈: `Rust` `Nextjs前端` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `@allen_ss` + +## 任务 + +## 01 hello move +- [x] Sui cli version: sui 1.29.2-09db80adf1af +- [x] Sui钱包截图: ![Sui钱包截图](./images/img.png) +- [x] package id: 0x5ed27c232fb5592a9fd01617994e0c89fabc680761108ab6edaaba42a473dc6f +- [x] package id 在 scan上的查看截图:![Scan截图](./images/img_1.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/z0yuan/code/hello_move/Move.lock b/mover/z0yuan/code/hello_move/Move.lock new file mode 100644 index 000000000..9ddb3dc0a --- /dev/null +++ b/mover/z0yuan/code/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "13E721FCFD245F098A29DA105591205736599D86E113B3B30B97132304425233" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { local = "E:\\suipackge\\crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { local = "E:\\suipackge\\crates\\sui-framework\\packages\\sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.26.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "2b337d4f" +original-published-id = "0xec177dab0c5504d8f05ad4637a63c7d45cc5a9132e913703e769b3b15706991f" +latest-published-id = "0xec177dab0c5504d8f05ad4637a63c7d45cc5a9132e913703e769b3b15706991f" +published-version = "1" diff --git a/mover/z0yuan/code/hello_move/Move.toml b/mover/z0yuan/code/hello_move/Move.toml new file mode 100644 index 000000000..9a6f7e4f2 --- /dev/null +++ b/mover/z0yuan/code/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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 = {local = "E:/suipackge/crates/sui-framework/packages/sui-framework"} + +# 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] +hello_move = "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/z0yuan/code/hello_move/sources/hello_move.move b/mover/z0yuan/code/hello_move/sources/hello_move.move new file mode 100644 index 000000000..2b8fbecc9 --- /dev/null +++ b/mover/z0yuan/code/hello_move/sources/hello_move.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self, UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key { + id: UID, + say: String, + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id: object::new(ctx), + say: string(b"move"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/z0yuan/code/hello_move/tests/hello_move_tests.move b/mover/z0yuan/code/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/z0yuan/code/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/z0yuan/code/readme.md b/mover/z0yuan/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/z0yuan/notes/readme.md b/mover/z0yuan/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/z0yuan/readme.md b/mover/z0yuan/readme.md new file mode 100644 index 000000000..83534bda0 --- /dev/null +++ b/mover/z0yuan/readme.md @@ -0,0 +1,51 @@ +## 基本信息 +- Sui钱包地址: `0xec5cbd4310aef155e2bf3a58b5f584c381821870c9ddaf45eb205f52a16710e9` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `z0yuan` + +## 个人简介 +- 工作经验: x年 +- 技术栈: `Rust` `C++` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `@z0yuan` + +## 任务 + +## 01 hello move +- [] Sui cli version:sui 1.26.0-d709c305ebf3-dirty +- [] Sui钱包截图: ![image-20240605112655135](https://zhu-yuan.oss-cn-beijing.aliyuncs.com/Blog/image-20240605112655135.png) +- [] package id: 0xec177dab0c5504d8f05ad4637a63c7d45cc5a9132e913703e769b3b15706991f +- [] package id 在 scan上的查看截图:![image-20240605112732845](https://zhu-yuan.oss-cn-beijing.aliyuncs.com/Blog/image-20240605112732845.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In + +- [] CLI call 截图 :![image-20240610175523325](https://zhu-yuan.oss-cn-beijing.aliyuncs.com/Blog/image-20240610175523325.png) +- [] flag hash :9QShg9c81cMAXCbUnN2ZdmHH7ZcoBhbFimsTj58BeGFB diff --git a/mover/zcy1024/code/task7/task7.cpp b/mover/zcy1024/code/task7/task7.cpp new file mode 100644 index 000000000..cd8060d32 --- /dev/null +++ b/mover/zcy1024/code/task7/task7.cpp @@ -0,0 +1,13 @@ +#include + +using namespace std; + +int main() +{ + int code; + while (cin >> code) { + cout << char(code); + } + return 0; +} +// 太久没写c++了,能用就行~~ \ No newline at end of file diff --git a/mover/zcy1024/notes/task2.md b/mover/zcy1024/notes/task2.md index 3a4fac682..83b4e47c9 100644 --- a/mover/zcy1024/notes/task2.md +++ b/mover/zcy1024/notes/task2.md @@ -74,7 +74,7 @@ sui move build ``` 4. 发布 ``` -sui client publish --gas-budget 100000000 +sui client publish # 成功后信息如下: UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git @@ -280,7 +280,7 @@ export TO_ADDRESS=0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee 6. 发布者交互 发布者调用`mycoin`模块,向指定地址转移1个coin ``` -sui client call --package $PACKAGE_ID --module mycoin --function mint --args $MYCOIN_TREASURYCAP 1 $TO_ADDRESS --gas-budget 100000000 +sui client call --package $PACKAGE_ID --module mycoin --function mint --args $MYCOIN_TREASURYCAP 1 $TO_ADDRESS # 成功后信息如下: Transaction Digest: H2JVz3NcQWPGQKVLnunB874MHXsLEdK8joxGHPLdjaks @@ -424,7 +424,7 @@ Transaction Digest: H2JVz3NcQWPGQKVLnunB874MHXsLEdK8joxGHPLdjaks 切换另一个地址,调用faucetcoin模块,向指定地址转移6个coin。 ``` sui client switch --address peaceful-hiddenite -sui client call --package $PACKAGE_ID --module faucetcoin --function mint --args $FAUCETCOIN_TREASURYCAP 6 $TO_ADDRESS --gas-budget 100000000 +sui client call --package $PACKAGE_ID --module faucetcoin --function mint --args $FAUCETCOIN_TREASURYCAP 6 $TO_ADDRESS # 成功后信息如下: Transaction Digest: 9jsJG1iJTQcR6aeBL2BygSCgHji1pdQBphvYDo6arins diff --git a/mover/zcy1024/notes/task3.md b/mover/zcy1024/notes/task3.md index 46a7a90af..59b1b3a6c 100644 --- a/mover/zcy1024/notes/task3.md +++ b/mover/zcy1024/notes/task3.md @@ -36,7 +36,7 @@ sui move build ``` 4. 发布 ``` -sui client publish --gas-budget 100000000 +sui client publish # 成功后信息如下: UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git @@ -185,7 +185,7 @@ export TO_ADDRESS=0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee ``` 6. 交互 ``` -sui client call --package $PACKAGE_ID --module nft --function mint --args $NAME $DESCRIPTION $URL $TO_ADDRESS --gas-budget 100000000 +sui client call --package $PACKAGE_ID --module nft --function mint --args $NAME $DESCRIPTION $URL $TO_ADDRESS # 成功后信息如下: Transaction Digest: 8PbkD3uBb6rdHoT8PvQ5j9wfpxXW1ByUqDr3ubpdhCkf diff --git a/mover/zcy1024/notes/task4.md b/mover/zcy1024/notes/task4.md index 584e40e47..6071c05a0 100644 --- a/mover/zcy1024/notes/task4.md +++ b/mover/zcy1024/notes/task4.md @@ -138,7 +138,7 @@ sui move build ``` 4. 发布 ``` -sui client publish --gas-budget 100000000 +sui client publish # 成功后信息如下: UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git diff --git a/mover/zcy1024/notes/task5.md b/mover/zcy1024/notes/task5.md index fcd4a5f70..726af1bc6 100644 --- a/mover/zcy1024/notes/task5.md +++ b/mover/zcy1024/notes/task5.md @@ -155,7 +155,7 @@ sui move build ``` 4. 发布 ``` -sui client publish --gas-budget 100000000 +sui client publish # 成功后信息如下: UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git diff --git a/mover/zcy1024/notes/task7/CLI.png b/mover/zcy1024/notes/task7/CLI.png new file mode 100644 index 000000000..34d24b999 Binary files /dev/null and b/mover/zcy1024/notes/task7/CLI.png differ diff --git a/mover/zcy1024/notes/task7/ascii_to_char.png b/mover/zcy1024/notes/task7/ascii_to_char.png new file mode 100644 index 000000000..174a73178 Binary files /dev/null and b/mover/zcy1024/notes/task7/ascii_to_char.png differ diff --git a/mover/zcy1024/notes/task7/task7.md b/mover/zcy1024/notes/task7/task7.md new file mode 100644 index 000000000..5145d96a7 --- /dev/null +++ b/mover/zcy1024/notes/task7/task7.md @@ -0,0 +1,53 @@ +1. 查询当前str + +[点击](https://testnet.suivision.xyz/object/0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56)查询,这里能直接复制成如下格式:`[68,52,95,113]` +当然,也可以通过`sui client object `等方式查看 + +2. ascii -> char + +有很多种方式,这里写了一个简单的c++ + +```c++ +#include + +using namespace std; + +int main() +{ + int code; + while (cin >> code) { + cout << char(code); + } + return 0; +} +// 太久没写c++了,能用就行~~ +``` + +运行后输入上一步得到的ascii码,去掉中括号和逗号,用空格隔开 +![ascii_to_char](ascii_to_char.png) + +3. 链上调用 + +![CLI](CLI.png) + +**重要输出** + +```bash +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: 4JsYgqQUgzDuCtmaZarofvU4LHuKkFeXJKDoT7ACBXwy:0 │ +│ │ PackageID: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd │ +│ │ Transaction Module: check_in │ +│ │ Sender: 0x9e4092b6a894e6b168aa1c6c009f5c1c1fcb83fb95e5aa39144e1d2be4ee0d67 │ +│ │ EventType: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd::check_in::Flag │ +│ │ ParsedJSON: │ +│ │ ┌────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ flag │ true │ │ +│ │ ├────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ sender │ 0x9e4092b6a894e6b168aa1c6c009f5c1c1fcb83fb95e5aa39144e1d2be4ee0d67 │ │ +│ │ └────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` \ No newline at end of file diff --git a/mover/zcy1024/readme.md b/mover/zcy1024/readme.md index aaaa63c17..883763c2a 100644 --- a/mover/zcy1024/readme.md +++ b/mover/zcy1024/readme.md @@ -29,3 +29,7 @@ ## 06 SDK PTB - [x] save hash: 3MT5e4a5LKQxijfsdYepApwPzSEQopTEB5iGj7TjbySi + +## 07 Move CTF Check In +- [x] CLI call 截图: ![CLI](./notes/task7/CLI.png) +- [x] flag hash: 4JsYgqQUgzDuCtmaZarofvU4LHuKkFeXJKDoT7ACBXwy diff --git a/mover/zhanglehui0612/code/readme.md b/mover/zhanglehui0612/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/zhanglehui0612/code/task1/Move.lock b/mover/zhanglehui0612/code/task1/Move.lock new file mode 100644 index 000000000..d67524b51 --- /dev/null +++ b/mover/zhanglehui0612/code/task1/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "8B7DC3EDF1D81F9E2D46D8251E70F4B8D7097878F02438454C30AEF9F05D81D0" +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.23.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xa2d380fae66b53b69f192b8583c0fbf1afe82acc0e6a0b1dff7dd064df6968a1" +latest-published-id = "0xa2d380fae66b53b69f192b8583c0fbf1afe82acc0e6a0b1dff7dd064df6968a1" +published-version = "1" \ No newline at end of file diff --git a/mover/zhanglehui0612/code/task1/Move.toml b/mover/zhanglehui0612/code/task1/Move.toml new file mode 100644 index 000000000..f99a76a8d --- /dev/null +++ b/mover/zhanglehui0612/code/task1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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] +hello_move = "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/zhanglehui0612/code/task1/sources/hello_move.move b/mover/zhanglehui0612/code/task1/sources/hello_move.move new file mode 100644 index 000000000..1b681e312 --- /dev/null +++ b/mover/zhanglehui0612/code/task1/sources/hello_move.move @@ -0,0 +1,18 @@ +module hello_move::hello_move { + use std::string; + use sui::object::{Self, UID}; + use sui::transfer; + use sui::tx_context::{Self, TxContext}; + public struct HelloMoveGitHubId has key, store { + id: UID, + text: string::String + } + + public entry fun mint(ctx: &mut TxContext) { + let object = HelloMoveGitHubId{ + id: object::new(ctx), + text: string::utf8(b"0xAiboo") + }; + transfer::transfer(object, tx_context::sender(ctx)); + } +} diff --git a/mover/zhanglehui0612/code/task1/tests/hello_move_tests.move b/mover/zhanglehui0612/code/task1/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/zhanglehui0612/code/task1/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/zhanglehui0612/code/task2/Move.lock b/mover/zhanglehui0612/code/task2/Move.lock new file mode 100644 index 000000000..0e8cff14f --- /dev/null +++ b/mover/zhanglehui0612/code/task2/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "199A68AF1E5B1CF6B5FBD3C604FBABE4DC3C29C02033ED305211BE4FA5D076E1" +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.mainnet] +chain-id = "35834a8a" +original-published-id = "0x8ee56689c2e689b501efdcfd74a0a1db4e87aa9a50eba47057cc1322a16d8d0e" +latest-published-id = "0x8ee56689c2e689b501efdcfd74a0a1db4e87aa9a50eba47057cc1322a16d8d0e" +published-version = "1" + +[env.devnet] +chain-id = "8d1e8102" +original-published-id = "0xa5ea0b2c792bac349daad13f92c796fa0a24179f8b4cb3d9e1d23be9aabf5a28" +latest-published-id = "0xa5ea0b2c792bac349daad13f92c796fa0a24179f8b4cb3d9e1d23be9aabf5a28" +published-version = "1" diff --git a/mover/zhanglehui0612/code/task2/Move.toml b/mover/zhanglehui0612/code/task2/Move.toml new file mode 100644 index 000000000..cb7a7a636 --- /dev/null +++ b/mover/zhanglehui0612/code/task2/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task2" +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)"] +published-at = "0x8ee56689c2e689b501efdcfd74a0a1db4e87aa9a50eba47057cc1322a16d8d0e" +[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] +currency = "0x8ee56689c2e689b501efdcfd74a0a1db4e87aa9a50eba47057cc1322a16d8d0e" + +# 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/zhanglehui0612/code/task2/sources/FaucetCoin.move b/mover/zhanglehui0612/code/task2/sources/FaucetCoin.move new file mode 100644 index 000000000..42d6f5f11 --- /dev/null +++ b/mover/zhanglehui0612/code/task2/sources/FaucetCoin.move @@ -0,0 +1,21 @@ +module currency::faucet_coin { + use sui::coin; + use sui::tx_context::{TxContext, sender}; + use std::option; + use sui::transfer; + + public struct FAUCET_COIN has drop {} + + fun init (faucet_coin: FAUCET_COIN, ctx: &mut TxContext) { + let (treasury_cap, coin_metadata) = coin::create_currency( + faucet_coin, + 8, + b"FAUCET_COIN", + b"FAUCET_COIN", + b"FAUCET_COIN", + option::none(), + ctx); + transfer::public_freeze_object(coin_metadata); + transfer::public_share_object(treasury_cap); + } +} \ No newline at end of file diff --git a/mover/zhanglehui0612/code/task2/sources/MyCoin.move b/mover/zhanglehui0612/code/task2/sources/MyCoin.move new file mode 100644 index 000000000..47ee044fd --- /dev/null +++ b/mover/zhanglehui0612/code/task2/sources/MyCoin.move @@ -0,0 +1,21 @@ +module currency::my_coin { + use sui::coin; + use sui::tx_context::{TxContext, sender}; + use std::option; + use sui::transfer; + + public struct MY_COIN has drop {} + + fun init (my_coin: MY_COIN, ctx: &mut TxContext) { + let (treasury_cap, coin_metadata) = coin::create_currency( + my_coin, + 8, + b"MY_COIN", + b"MY_COIN", + b"MY_COIN", + option::none(), + ctx); + transfer::public_freeze_object(coin_metadata); + transfer::public_transfer(treasury_cap, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/zhanglehui0612/code/task2/tests/task2_tests.move b/mover/zhanglehui0612/code/task2/tests/task2_tests.move new file mode 100644 index 000000000..81e8c886d --- /dev/null +++ b/mover/zhanglehui0612/code/task2/tests/task2_tests.move @@ -0,0 +1,19 @@ +/* +#[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 + } +} +*/ diff --git a/mover/zhanglehui0612/code/task3/Move.lock b/mover/zhanglehui0612/code/task3/Move.lock new file mode 100644 index 000000000..4e2d3a913 --- /dev/null +++ b/mover/zhanglehui0612/code/task3/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "DA1956FC08CE504D88C9603B4D673C480BF354A4FD586A93D7A19A84DD87525E" +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.mainnet] +chain-id = "35834a8a" +original-published-id = "0x7a718faaf0c4899eaec698c9038ff79eb9403ef254e4dacc620831f0d8576430" +latest-published-id = "0x7a718faaf0c4899eaec698c9038ff79eb9403ef254e4dacc620831f0d8576430" +published-version = "1" diff --git a/mover/zhanglehui0612/code/task3/Move.toml b/mover/zhanglehui0612/code/task3/Move.toml new file mode 100644 index 000000000..b09306380 --- /dev/null +++ b/mover/zhanglehui0612/code/task3/Move.toml @@ -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] +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/zhanglehui0612/code/task3/sources/nft.move b/mover/zhanglehui0612/code/task3/sources/nft.move new file mode 100644 index 000000000..7f380e48e --- /dev/null +++ b/mover/zhanglehui0612/code/task3/sources/nft.move @@ -0,0 +1,62 @@ +module nft::hero_nft { + use sui::tx_context::{sender, TxContext}; + use std::string::{utf8, String}; + use sui::transfer::transfer; + use sui::object::{Self, UID}; + use sui::package; + use sui::display; + + /// One-Time-Witness for the module. + public struct HERO_NFT has drop {} + + /// Hero NFT + public struct Hero has key, store { + id: UID, + name: String, + image_url: String + } + + fun init(witness: HERO_NFT, ctx: &mut TxContext) { + // 构造字段列表 + let fields = vector[ + utf8(b"name"), + utf8(b"link"), + utf8(b"image_url"), + utf8(b"description"), + utf8(b"project_url"), + utf8(b"creator"), + ]; + + // 构造值列表 + let values = vector[ + // For `name` one can use the `Hero.name` property + utf8(b"{name}"), + // For `link` one can build a URL using an `id` property + utf8(b"https://sui-heroes.io/hero/{id}"), + // For `image_url` use an IPFS template + `image_url` property. + utf8(b"ipfs://{image_url}"), + // Description is static for all `Hero` objects. + utf8(b"A true Hero of the Sui ecosystem!"), + // Project URL is usually static + utf8(b"https://sui-heroes.io"), + // Creator field can be any + utf8(b"Unknown Sui Fan") + ]; + + // 创建Publisher + let publisher = package::claim(witness, ctx); + + // 创建Display + let mut display = display::new_with_fields(&publisher, fields, values, ctx); + display::update_version(&mut display); + // 把publisher和display转移给合约部署的人 + transfer::public_transfer(publisher, sender(ctx)); + transfer::public_transfer(display, sender(ctx)); + } + + public entry fun mint(name: String, image_url: String, ctx: &mut TxContext) { + let id = object::new(ctx); + let hero = Hero { id, name, image_url }; + transfer::public_transfer(hero, sender(ctx)); + } +} diff --git a/mover/zhanglehui0612/code/task3/tests/task3_tests.move b/mover/zhanglehui0612/code/task3/tests/task3_tests.move new file mode 100644 index 000000000..d0f947751 --- /dev/null +++ b/mover/zhanglehui0612/code/task3/tests/task3_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task3::task3_tests { + // uncomment this line to import the module + // use task3::task3; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task3() { + // pass + } + + #[test, expected_failure(abort_code = ::task3::task3_tests::ENotImplemented)] + fun test_task3_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/zhanglehui0612/code/task4/Move.lock b/mover/zhanglehui0612/code/task4/Move.lock new file mode 100644 index 000000000..15bdf2221 --- /dev/null +++ b/mover/zhanglehui0612/code/task4/Move.lock @@ -0,0 +1,49 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "BF0A2EF978C844F021E112D75EA98640008D947885AAF03ABB080ADCB93DD7ED" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "task2" }, +] + +[[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.package]] +name = "task2" +source = { local = "../task2" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.27.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.devnet] +chain-id = "8d1e8102" +original-published-id = "0x0bea90ad64d922e4774d659d608923ad2acf2a499774f481355d310901a75b9b" +latest-published-id = "0x0bea90ad64d922e4774d659d608923ad2acf2a499774f481355d310901a75b9b" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xd047c569341da17a09510a4f06229b6e1f05dab1e219377bdad93c887b2dcee4" +latest-published-id = "0xd047c569341da17a09510a4f06229b6e1f05dab1e219377bdad93c887b2dcee4" +published-version = "1" diff --git a/mover/zhanglehui0612/code/task4/Move.toml b/mover/zhanglehui0612/code/task4/Move.toml new file mode 100644 index 000000000..b08ea764c --- /dev/null +++ b/mover/zhanglehui0612/code/task4/Move.toml @@ -0,0 +1,36 @@ +[package] +name = "task4" +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" } +task2 = { local = "../task2"} +# 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] +games = "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/zhanglehui0612/code/task4/sources/flip_coin.move b/mover/zhanglehui0612/code/task4/sources/flip_coin.move new file mode 100644 index 000000000..8f01e9312 --- /dev/null +++ b/mover/zhanglehui0612/code/task4/sources/flip_coin.move @@ -0,0 +1,80 @@ +module games::flip_coin { + use sui::balance; + use sui::balance::Balance; + use sui::coin; + use sui::coin::{Coin, from_balance, into_balance}; + use sui::object; + use sui::random; + use sui::random::Random; + use sui::transfer::{share_object, transfer, public_transfer}; + use sui::tx_context::sender; + use currency::faucet_coin::FAUCET_COIN; + const EGameBalanceInsufficient:u64 = 0x100; + + /// 定义游戏 + public struct Game has key { + id: UID, + val: Balance + } + + public struct AdminCap has key { + id: UID + } + + + fun init(ctx: &mut TxContext) { + // 创建游戏 + let game = Game { + id: object::new(ctx), + val: balance::zero() + }; + + // 发布游戏为共享所有权对象 + share_object(game); + + // 创建管理员权限 + let admin = AdminCap { + id: object::new(ctx) + }; + // 将管理员权限转移给当前交易发起者 + transfer(admin, sender(ctx)); + } + + public entry fun play(game: &mut Game, flip_value: bool, in: Coin, rand: &Random, ctx: &mut TxContext) { + // 获取玩游戏传进来的SUI的值 + let coin_value = coin::value(&in); + + + // 玩这个游戏需要的钱 + let game_value = balance::value(&game.val); + assert!(game_value > coin_value, EGameBalanceInsufficient); + + + let mut gen_rand = random::new_generator(rand, ctx); + let mut flag = random::generate_bool(&mut gen_rand); + // 是否和传进来的参数一样,如果相同表示赢了,可以游戏余额中拿走钱;否则你的钱就在游戏里 + if (flip_value == flag) { + // 游戏余额中扣除用户投入的钱 + let win_balance = balance::split(&mut game.val, coin_value); + // 将用户赢得钱转化为coin + let win_coin = from_balance(win_balance, ctx); + public_transfer(win_coin, sender(ctx)); + public_transfer(in, sender(ctx)); + }else { + // 用户如果输了迁就放在游戏池子内 + let in_balance = into_balance(in); + balance::join(&mut game.val, in_balance); + } + } + + public entry fun add_sui(game: &mut Game, in: Coin, _ctx: &TxContext) { + let in_balance = into_balance(in); + balance::join(&mut game.val, in_balance); + } + + public entry fun remove_sui(_: &AdminCap, game: &mut Game, amount: u64, ctx: &mut TxContext) { + let win_balance = balance::split(&mut game.val, amount); + let win_coin = from_balance(win_balance, ctx); + public_transfer(win_coin, sender(ctx)); + } +} \ No newline at end of file diff --git a/mover/zhanglehui0612/code/task4/tests/task4_tests.move b/mover/zhanglehui0612/code/task4/tests/task4_tests.move new file mode 100644 index 000000000..321932cc6 --- /dev/null +++ b/mover/zhanglehui0612/code/task4/tests/task4_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task4::task4_tests { + // uncomment this line to import the module + // use task4::task4; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task4() { + // pass + } + + #[test, expected_failure(abort_code = ::task4::task4_tests::ENotImplemented)] + fun test_task4_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/zhanglehui0612/images/SuiScan.png b/mover/zhanglehui0612/images/SuiScan.png new file mode 100644 index 000000000..71e108798 Binary files /dev/null and b/mover/zhanglehui0612/images/SuiScan.png differ diff --git a/mover/zhanglehui0612/images/SuiWallet.png b/mover/zhanglehui0612/images/SuiWallet.png new file mode 100644 index 000000000..667c4c8f3 Binary files /dev/null and b/mover/zhanglehui0612/images/SuiWallet.png differ diff --git a/mover/zhanglehui0612/images/nft_scan.png b/mover/zhanglehui0612/images/nft_scan.png new file mode 100644 index 000000000..bb57392d8 Binary files /dev/null and b/mover/zhanglehui0612/images/nft_scan.png differ diff --git a/mover/zhanglehui0612/notes/readme.md b/mover/zhanglehui0612/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/zhanglehui0612/readme.md b/mover/zhanglehui0612/readme.md new file mode 100644 index 000000000..dc6f371ba --- /dev/null +++ b/mover/zhanglehui0612/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0x752a51cb73279848ab3ee9802899ccd99fb293a6ad3d654825f14fc6300060df` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `zhanglehui0612` + +## 个人简介 +- 工作经验: 12年 +- 技术栈: `Java` `Go` `Solidity` +- 多年Web2开发和架构经验,熟悉以太坊技术栈, 对Move,Sui特别感兴趣 +- 联系方式: tg: [@nickyzhang0612](https://t.me/nickyzhang0612) + + +## 任务 + +## 01 hello move +- [] Sui cli version: sui 1.23.0 +- [] Sui钱包截图: ![SuiWallet.png](./images/SuiWallet.png) +- [] package id: 0xa2d380fae66b53b69f192b8583c0fbf1afe82acc0e6a0b1dff7dd064df6968a1 +- [] package id 在 scan上的查看截图:![Scan截图](./images/SuiScan.png) + +## 02 move coin +- [] My Coin package id : 0x8ee56689c2e689b501efdcfd74a0a1db4e87aa9a50eba47057cc1322a16d8d0e +- [] Faucet package id : 0x8ee56689c2e689b501efdcfd74a0a1db4e87aa9a50eba47057cc1322a16d8d0e +- [] 转账 `My Coin` hash: 4tnCTqVmafSDxzWUk8SyF7d6W3VFZNyxYtpyRY211Ms2 +- [] `Faucet Coin` address1 mint hash: 33xUHTuF22wHCf7r9ukMkXEDRTNpZDnSvLy9pUGdxXPh +- [] `Faucet Coin` address2 mint hash: EZ3S5aBRwiJpg6KG8FN3gMAXFdUEVezpQd26jPc9prT5 + +## 03 move NFT +- [] nft package id : 0x7a718faaf0c4899eaec698c9038ff79eb9403ef254e4dacc620831f0d8576430 +- [] nft object id : 0x28a11f86df88b3b7d3c5f5d55f74b8be32e84c053cec46ce7c498f8e2df57df0 +- [] 转账 nft hash: 7vSBzHFscvejPciJcoDLnWnCz53ucyURpBr7JBVXsbeF +- [] scan上的NFT截图: ![Scan截图](./images/nft_scan.png) + +## 04 Move Game +- [] game package id : 0xd047c569341da17a09510a4f06229b6e1f05dab1e219377bdad93c887b2dcee4 (mainnet) +- [] deposit Coin hash: 891Lann5bipevvwQLBVhFLuNMKNk5k8U6VdBzR4SbFSo (mainnet) +- [] withdraw `Coin` hash: EgPrqJDZA5wX4Rq9YUNa4psudYzpHDagb4qHKrWbGtUr (mainnet) +- [] play game hash: FTapaYNddSDDZYYBk4xSyNscpfCYx6pbmKvZWT42Vzw3 (devnet) + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : \ No newline at end of file diff --git a/mover/zhhuanghe/notes/task1_readme.md b/mover/zhhuanghe/notes/task1_readme.md index 202de0d10..0c35587c8 100644 --- a/mover/zhhuanghe/notes/task1_readme.md +++ b/mover/zhhuanghe/notes/task1_readme.md @@ -75,5 +75,5 @@ sui client # 合约发布 ~~~bash -sui client publish --gas-budget 100000000 +sui client publish ~~~ \ No newline at end of file diff --git a/mover/zipdata1/images/01.png b/mover/zipdata1/images/01.png new file mode 100644 index 000000000..ccd8f6aa3 Binary files /dev/null and b/mover/zipdata1/images/01.png differ diff --git a/mover/zipdata1/images/02.png b/mover/zipdata1/images/02.png new file mode 100644 index 000000000..15625b0a4 Binary files /dev/null and b/mover/zipdata1/images/02.png differ diff --git a/mover/zipdata1/readme.md b/mover/zipdata1/readme.md new file mode 100644 index 000000000..d12177472 --- /dev/null +++ b/mover/zipdata1/readme.md @@ -0,0 +1,53 @@ +## 基本信息 +- Sui钱包地址: `0x9620b4d45bf7f8e7d83dacea7b4bf226382e411b1b289c1d61d1eaa5f2442be6` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `zipdata1` + +## 个人简介 +- 技术栈: `java` +> 重要提示 请认真写自己的简介 +- 一年java开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: qq: `2976003832` + +## 任务 + +## 01 hello move +- [x] Sui cli version:`sui 1.29.2-09db80adf1af` +- [x] Sui钱包截图: ![Sui钱包截图](./images/01.png) +- [x] package id: `0x569df0c06938c7e94ad7308505b9c473b2a09889815a8d74616ff26ee9a14901` +- [x] package id 在 scan上的查看截图:![Scan截图](./images/02.png) + +## 02 move coin +- [] My Coin package id : +- [] Faucet package id : +- [] 转账 `My Coin` hash: +- [] `Faucet Coin` address1 mint hash: +- [] `Faucet Coin` address2 mint hash: + +## 03 move NFT +- [] nft package id : +- [] nft object id : +- [] 转账 nft hash: +- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) + +## 04 Move Game +- [] game package id : +- [] deposit Coin hash: +- [] withdraw `Coin` hash: +- [] play game hash: + +## 05 Move Swap +- [] swap package id : +- [] call swap CoinA-> CoinB hash : +- [] call swap CoinB-> CoinA hash : + +## 06 Dapp-kit SDK PTB +- [] save hash : + +## 07 Move CTF Check In +- [] CLI call 截图 : ![截图](./images/你的图片地址) +- [] flag hash : + +## 08 Move CTF Lets Move +- [] proof : +- [] flag hash : diff --git a/mover/zouyuxuan/code/task2/Move.lock b/mover/zouyuxuan/code/task2/Move.lock new file mode 100644 index 000000000..18eb5a1c2 --- /dev/null +++ b/mover/zouyuxuan/code/task2/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E7A65BF39B740E195045E87B46B06936199C063AFE29D8948B9C6B9B853033A8" +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.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x9228294c31b82eec07043b4149a3ccc452acac04421de26f7dde2d9b2290bc47" +latest-published-id = "0x9228294c31b82eec07043b4149a3ccc452acac04421de26f7dde2d9b2290bc47" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0x07ecf577ddc505e10c567d4c9113cfc0a9e4da8d314225a69732d2a19624b646" +latest-published-id = "0x07ecf577ddc505e10c567d4c9113cfc0a9e4da8d314225a69732d2a19624b646" +published-version = "1" diff --git a/mover/zouyuxuan/code/task2/Move.toml b/mover/zouyuxuan/code/task2/Move.toml new file mode 100644 index 000000000..6a6098d99 --- /dev/null +++ b/mover/zouyuxuan/code/task2/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "task2" +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] +task2 = "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/zouyuxuan/code/task2/call.sh b/mover/zouyuxuan/code/task2/call.sh new file mode 100644 index 000000000..04b4decf2 --- /dev/null +++ b/mover/zouyuxuan/code/task2/call.sh @@ -0,0 +1,23 @@ +export PACKAGE_ID=0x07ecf577ddc505e10c567d4c9113cfc0a9e4da8d314225a69732d2a19624b646 +export MY_COIN=0xd9906b63af0634c6ecc51059df7d2be5c681decb03bd6c8395c54d802906b191 +export FAUCET_COIN=0x62843846a3db489dec77710826596c791ef0850f54885b20aaf1e59c59650e45 +export ADDRESS=0xd4c2b315c859535fd1596f145ef5a4c6659469d3d4334def47b3aadba3f02b52 + +sui client call --function mint --module my_coin --package $PACKAGE_ID --args $MY_COIN 100000000000 $ADDRESS --gas-budget 20000000 +sui client call --function mint --module zyx_faucet_coin --package $PACKAGE_ID --args $FAUCET_COIN 100000000000 $ADDRESS --gas-budget 20000000 + +sui client call \ + --package 0x2 \ + --module coin \ + --function mint_and_transfer \ + --type-args '0x9228294c31b82eec07043b4149a3ccc452acac04421de26f7dde2d9b2290bc47::zyx_faucet_coin::ZYX_FAUCET_COIN' \ + --args 0x3d788fa2f2bb2273e18f7e4cbc8ffef3eec972a6caf1773eb6a1b1000ae413b8 100000000000 0xb9f26f352f0ad3eda2ec2b728e4e8d11789fd34989d5fbaf448969dd384379a4 + + +sui client call \ + --package 0x2 \ + --module coin \ + --function mint_and_transfer \ + --type-args '0x07ecf577ddc505e10c567d4c9113cfc0a9e4da8d314225a69732d2a19624b646::zyx_faucet_coin::ZYX_FAUCET_COIN' \ + --args 0x62843846a3db489dec77710826596c791ef0850f54885b20aaf1e59c59650e45 100000000000 0xdfc6639fb044f3c65075dcb415c603b541104b47c9c2ef626a2dd616af532800 + diff --git a/mover/zouyuxuan/code/task2/sources/my_coin.move b/mover/zouyuxuan/code/task2/sources/my_coin.move new file mode 100644 index 000000000..9de56b136 --- /dev/null +++ b/mover/zouyuxuan/code/task2/sources/my_coin.move @@ -0,0 +1,21 @@ +module task2::my_coin{ + + use sui::coin::{Self,Coin,TreasuryCap}; + + // 定义一次性见证 + public struct MY_COIN has drop{} + + fun init(otw:MY_COIN,ctx:&mut TxContext){ + let (treasury_cap,metedata) = + coin::create_currency(otw,8,b"mc",b"Mcoin",b"new coin name mc",option::none(),ctx); + transfer::public_freeze_object(metedata); + transfer::public_transfer(treasury_cap,tx_context::sender(ctx)) + } + public entry fun mint(treasury_cap:& mut TreasuryCap,amount:u64,recipient:address,ctx:& mut TxContext){ + coin::mint_and_transfer(treasury_cap,amount,recipient,ctx) + } + public entry fun burn(managedCap:&mut TreasuryCap,c:Coin){ + coin::burn(managedCap,c); + } + +} \ No newline at end of file diff --git a/mover/zouyuxuan/code/task2/sources/zyx_faucet_coin.move b/mover/zouyuxuan/code/task2/sources/zyx_faucet_coin.move new file mode 100644 index 000000000..3e5a00db6 --- /dev/null +++ b/mover/zouyuxuan/code/task2/sources/zyx_faucet_coin.move @@ -0,0 +1,36 @@ +module task2::zyx_faucet_coin{ + + use sui::coin::{Self,Coin,TreasuryCap}; + use sui::url::{Self,Url}; + + public struct ZYX_FAUCET_COIN has drop{} + + fun init(otw:ZYX_FAUCET_COIN,ctx: &mut TxContext){ + let(treasury_cap ,metedata) = coin::create_currency( + otw, + 9, + b"ZYX_FAUCET", + b"ZYX_FAUCET", + b"zyx's faucet coin, everyone can access and mutate.", + option::some(url::new_unsafe_from_bytes(b"https://avatars.githubusercontent.com/u/33485252?s=400&u=65637567260caf13c84d5df70b2b725d375de5eb&v=4")), + ctx + ); + transfer::public_freeze_object(metedata); + transfer::public_share_object(treasury_cap); + + } + public fun mint(treasury_cap: &mut TreasuryCap, + amount: u64, + recipient: address, + ctx: &mut TxContext){ + coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); + } + + public fun burn( + treasury_cap: &mut TreasuryCap, + coin: Coin + ) { + coin::burn(treasury_cap, coin); + } + +} \ No newline at end of file diff --git a/mover/zouyuxuan/code/task2/tests/task2_tests.move b/mover/zouyuxuan/code/task2/tests/task2_tests.move new file mode 100644 index 000000000..81e8c886d --- /dev/null +++ b/mover/zouyuxuan/code/task2/tests/task2_tests.move @@ -0,0 +1,19 @@ +/* +#[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 + } +} +*/ diff --git a/mover/zouyuxuan/code/task3/Move.lock b/mover/zouyuxuan/code/task3/Move.lock new file mode 100644 index 000000000..93bab03fa --- /dev/null +++ b/mover/zouyuxuan/code/task3/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "DEDE53BD567ECEDC2009BE853A86F47F6BDC3F1F03A6B00FAED274F07E74A18B" +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.4" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xd4d8535fbd6bb212ce60d2f4674e5b3fb078a92328441b835d7c4707eaacb03a" +latest-published-id = "0xd4d8535fbd6bb212ce60d2f4674e5b3fb078a92328441b835d7c4707eaacb03a" +published-version = "1" diff --git a/mover/zouyuxuan/code/task3/Move.toml b/mover/zouyuxuan/code/task3/Move.toml new file mode 100644 index 000000000..480be1592 --- /dev/null +++ b/mover/zouyuxuan/code/task3/Move.toml @@ -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" + diff --git a/mover/zouyuxuan/code/task3/call.sh b/mover/zouyuxuan/code/task3/call.sh new file mode 100644 index 000000000..8e2f07e6b --- /dev/null +++ b/mover/zouyuxuan/code/task3/call.sh @@ -0,0 +1,9 @@ +export PACKAGE=0xd4d8535fbd6bb212ce60d2f4674e5b3fb078a92328441b835d7c4707eaacb03a +export NFT_NAME="\"zyx\"" +export DESCRIPTION="\"simple nft, power by zyx\"" +export ADDRESS=0xd4c2b315c859535fd1596f145ef5a4c6659469d3d4334def47b3aadba3f02b52 +sui client call --gas-budget 7500000 --package $PACKAGE_ID --module mynft --function mint --args $NFT_NAME $DESCRIPTION $ADDRESS + +sui client call --package $PACKAGE --module mynft --function mint --args zyx simple_nft 0xd4c2b315c859535fd1596f145ef5a4c6659469d3d4334def47b3aadba3f02b52 --gas-budget 7500000 + +sui client call --package $PACKAGE --module mynft --function mint --args zyx simple_nft 0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2 --gas-budget 7500000 diff --git a/mover/zouyuxuan/code/task3/sources/nft.move b/mover/zouyuxuan/code/task3/sources/nft.move new file mode 100644 index 000000000..d3074b798 --- /dev/null +++ b/mover/zouyuxuan/code/task3/sources/nft.move @@ -0,0 +1,65 @@ +module task3::mynft { + use sui::tx_context::{Self, TxContext,sender}; + use sui::display; + use sui::object::{Self, UID}; + use sui::package; + use sui::transfer; + use std::string::{String, utf8}; + + public struct MYNFT has drop {} + + public struct Zyx has key, store { + id: UID, + name: String, + description: String, + } + + fun init(otw: MYNFT, ctx: &mut TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"link"), + utf8(b"image_url"), + utf8(b"description"), + utf8(b"project_url"), + utf8(b"creator"), + ]; + + let values = vector[ + // For `name` one can use the `Hero.name` property + utf8(b"{name}"), + // For `link` one can build a URL using an `id` property + utf8(b"https://sui-heroes.io/hero/{id}"), + // For `image_url` use an IPFS template + `image_url` property. + utf8(b"ipfs://{image_url}"), + // Description is static for all `Hero` objects. + utf8(b"A true Hero of the Sui ecosystem!"), + // Project URL is usually static + utf8(b"https://sui-heroes.io"), + // Creator field can be any + utf8(b"Unknown Sui Fan") + ]; + + // Claim the `Publisher` for the package! + let publisher = package::claim(otw, ctx); + + // Get a new `Display` object for the `Hero` type. + let mut display = display::new_with_fields( + &publisher, keys, values, ctx + ); + + // Commit first version of `Display` to apply changes. + display::update_version(&mut display); + + transfer::public_transfer(publisher, sender(ctx)); + transfer::public_transfer(display, sender(ctx)); + } + + public entry fun mint(name: String, description: String, recipient: address, ctx: &mut TxContext) { + let nft = Zyx { + id: object::new(ctx), + name: name, + description: description, + }; + transfer::public_transfer(nft, recipient); + } +} \ No newline at end of file diff --git a/mover/zouyuxuan/code/task3/tests/task3_tests.move b/mover/zouyuxuan/code/task3/tests/task3_tests.move new file mode 100644 index 000000000..d0f947751 --- /dev/null +++ b/mover/zouyuxuan/code/task3/tests/task3_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module task3::task3_tests { + // uncomment this line to import the module + // use task3::task3; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_task3() { + // pass + } + + #[test, expected_failure(abort_code = ::task3::task3_tests::ENotImplemented)] + fun test_task3_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/zouyuxuan/readme.md b/mover/zouyuxuan/readme.md index 8de212687..7bbbedf8a 100644 --- a/mover/zouyuxuan/readme.md +++ b/mover/zouyuxuan/readme.md @@ -19,9 +19,9 @@ ## 02 move coin -- [] My Coin package id : -- [] Faucet package id : -- [] 转账 `My Coin` hash: +- [] My Coin package id : 0xd9906b63af0634c6ecc51059df7d2be5c681decb03bd6c8395c54d802906b191 +- [] Faucet package id : 0x62843846a3db489dec77710826596c791ef0850f54885b20aaf1e59c59650e45 +- [] 转账 `My Coin` hash:https://suiscan.xyz/mainnet/tx/CDCYZRUZ7dz1X9qSBTuhdb8vEhb1Mb6xnGu3FEuRp5B6 ## 03 move NFT diff --git a/mover/zrr1999/code/task7/README.md b/mover/zrr1999/code/task7/README.md new file mode 100644 index 000000000..15e231a0f --- /dev/null +++ b/mover/zrr1999/code/task7/README.md @@ -0,0 +1,141 @@ +```sh +sui client call --package 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd --module check_in --function get_flag --gas-budget 10000000 --args "h[p55J|3_hAMRuqJ@8x\`a]DFIi;e]m" 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 0x8 +``` + +Transaction Digest: HE2rer7Yi53MjQYw9451gHdF8Lu3bfJHifPbiEBdStU2 +╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├─────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0x0da178626ee2b7910f827a26491cb28f6ef67d1679e5068d2e2407a54f4008ce │ +│ Gas Owner: 0x0da178626ee2b7910f827a26491cb28f6ef67d1679e5068d2e2407a54f4008ce │ +│ Gas Budget: 10000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0x0bfeaca713da023ce965c47a44b7ebe12eb2fc81aa903f1163fdd05ad89780c5 │ +│ │ Version: 48023961 │ +│ │ Digest: 9qhcp3TYg6yG9iB1kRteqS8oonhHn8Lnf6dQAfYWrZ4c │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: vector, Value: "h[p55J|3_hAMRuqJ@8x`a]DFIi;e]m" │ │ +│ │ 1 Shared Object ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ │ +│ │ 2 Shared Object ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ │ +│ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 MoveCall: │ │ +│ │ ┌ │ │ +│ │ │ Function: get_flag │ │ +│ │ │ Module: check_in │ │ +│ │ │ Package: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd │ │ +│ │ │ Arguments: │ │ +│ │ │ Input 0 │ │ +│ │ │ Input 1 │ │ +│ │ │ Input 2 │ │ +│ │ └ │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ RB1Ang6Zua+eiRPuaJcDUhrOYdyksb6KlpTuNURSDpt8ROMuBAhpQmOc9mxlKDH740NC6M7Ed2NLnPEFOBh8Cw== │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: HE2rer7Yi53MjQYw9451gHdF8Lu3bfJHifPbiEBdStU2 │ +│ Status: Success │ +│ Executed Epoch: 395 │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0x0bfeaca713da023ce965c47a44b7ebe12eb2fc81aa903f1163fdd05ad89780c5 │ +│ │ Owner: Account Address ( 0x0da178626ee2b7910f827a26491cb28f6ef67d1679e5068d2e2407a54f4008ce ) │ +│ │ Version: 48023962 │ +│ │ Digest: Hb7CajQXdPiGFHKb9vDf4s6db75nrRjvfFnSHz5xEPrS │ +│ └── │ +│ ┌── │ +│ │ ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Owner: Shared( 12674957 ) │ +│ │ Version: 48023962 │ +│ │ Digest: 83GeQkDcubPGVPq7geTMxzYayd9GHfWCwTguCTXQfHJj │ +│ └── │ +│ Shared Objects: │ +│ ┌── │ +│ │ ID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Version: 48023961 │ +│ │ Digest: 2qaWgxyskb6hnewavYYZ4ihqZjaXHEJnwpVipm1eEcwF │ +│ └── │ +│ ┌── │ +│ │ ID: 0x0000000000000000000000000000000000000000000000000000000000000008 │ +│ │ Version: 45290557 │ +│ │ Digest: NZBNYmyjqr3b3yx1XMLJabLrYjSL5DRzZDfPbDGJPSx │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0x0bfeaca713da023ce965c47a44b7ebe12eb2fc81aa903f1163fdd05ad89780c5 │ +│ │ Owner: Account Address ( 0x0da178626ee2b7910f827a26491cb28f6ef67d1679e5068d2e2407a54f4008ce ) │ +│ │ Version: 48023962 │ +│ │ Digest: Hb7CajQXdPiGFHKb9vDf4s6db75nrRjvfFnSHz5xEPrS │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 2462400 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 2588256 MIST │ +│ Non-refundable Storage Fee: 26144 MIST │ +│ │ +│ Transaction Dependencies: │ +│ 9vofkrxrxeHoL2SqJhPE3n3Sh3ZKUCNmf2q2DM76zfen │ +│ GvtDcAEMFwzCSEPUqkaPGxD4CpKyD7DDfhLrnU8KuMBR │ +│ HhSnjS56f6qMbMznhgtG1zEqFm3ZrC3ZCG6Ben6UZgw2 │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Block Events │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ EventID: HE2rer7Yi53MjQYw9451gHdF8Lu3bfJHifPbiEBdStU2:0 │ +│ │ PackageID: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd │ +│ │ Transaction Module: check_in │ +│ │ Sender: 0x0da178626ee2b7910f827a26491cb28f6ef67d1679e5068d2e2407a54f4008ce │ +│ │ EventType: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd::check_in::Flag │ +│ │ ParsedJSON: │ +│ │ ┌────────┬────────────────────────────────────────────────────────────────────┐ │ +│ │ │ flag │ true │ │ +│ │ ├────────┼────────────────────────────────────────────────────────────────────┤ │ +│ │ │ sender │ 0x0da178626ee2b7910f827a26491cb28f6ef67d1679e5068d2e2407a54f4008ce │ │ +│ │ └────────┴────────────────────────────────────────────────────────────────────┘ │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0x0bfeaca713da023ce965c47a44b7ebe12eb2fc81aa903f1163fdd05ad89780c5 │ +│ │ Sender: 0x0da178626ee2b7910f827a26491cb28f6ef67d1679e5068d2e2407a54f4008ce │ +│ │ Owner: Account Address ( 0x0da178626ee2b7910f827a26491cb28f6ef67d1679e5068d2e2407a54f4008ce ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 48023962 │ +│ │ Digest: Hb7CajQXdPiGFHKb9vDf4s6db75nrRjvfFnSHz5xEPrS │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0x10f3302f86607d758ab4e8519314aa368d2e53b3661e530fbc3e8a6988f82b56 │ +│ │ Sender: 0x0da178626ee2b7910f827a26491cb28f6ef67d1679e5068d2e2407a54f4008ce │ +│ │ Owner: Shared( 12674957 ) │ +│ │ ObjectType: 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd::check_in::FlagString │ +│ │ Version: 48023962 │ +│ │ Digest: 83GeQkDcubPGVPq7geTMxzYayd9GHfWCwTguCTXQfHJj │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0x0da178626ee2b7910f827a26491cb28f6ef67d1679e5068d2e2407a54f4008ce ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -874144 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ diff --git a/mover/zrr1999/readme.md b/mover/zrr1999/readme.md index ab0b2a0b8..8f07b608c 100644 --- a/mover/zrr1999/readme.md +++ b/mover/zrr1999/readme.md @@ -43,3 +43,7 @@ ## 06 SDK PTB - [x] save hash: [BMT4pPJLXobRs1Jqn2s7znyC5bisXjWqPaWaipsDKtNi](https://suiscan.xyz/mainnet/tx/BMT4pPJLXobRs1Jqn2s7znyC5bisXjWqPaWaipsDKtNi) + +## 07 Move CTF Check In + +- [x] save hash: [HE2rer7Yi53MjQYw9451gHdF8Lu3bfJHifPbiEBdStU2](https://suiscan.xyz/testnet/tx/HE2rer7Yi53MjQYw9451gHdF8Lu3bfJHifPbiEBdStU2) diff --git a/mover/zsyzqm/notes/sacn.png b/mover/zsyzqm/notes/sacn.png new file mode 100644 index 000000000..95c32553c Binary files /dev/null and b/mover/zsyzqm/notes/sacn.png differ diff --git a/mover/zsyzqm/readme.md b/mover/zsyzqm/readme.md index af19fd6f4..c571700c1 100644 --- a/mover/zsyzqm/readme.md +++ b/mover/zsyzqm/readme.md @@ -34,4 +34,12 @@ - [x] call swap hash: `GvEF8b1krgUxb5jJ7bBToBz4MbjAqV9w5j1JxvX4ZYV6` ## 06 SDK PTB -- [x] save hash: `A35K6RPk8ct77U2jNdjFf6iELxTRyxH1A7TU4g8y9Cxo` \ No newline at end of file +- [x] save hash: `A35K6RPk8ct77U2jNdjFf6iELxTRyxH1A7TU4g8y9Cxo` + +## 07 Move CTF Check In +- [x] CLI call 截图 : ![截图](./notes/sacn.png) +- [x] flag hash : D1tAF8ZSUjzcPkdMX7SAsUWaRijXy1d5RSyQy6yMenfT + +## 08 Move CTF Lets Move +- [x] proof : cbd344ce56c373c20139 +- [x] flag hash : 2v9kaPZ1yC8CuBtZJSCXpyqUg2rzuNiKXPFv6f2tzqYw diff --git a/mover/zzf222/code/task4/mygame/Move.lock b/mover/zzf222/code/task4/mygame/Move.lock new file mode 100644 index 000000000..b4217a3f0 --- /dev/null +++ b/mover/zzf222/code/task4/mygame/Move.lock @@ -0,0 +1,55 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "F5BFF01F3340B11EDB8620D3DBD4F63E23EC85588AFB820F35E17F5AE0E195E9" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "mycoin" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { local = "D:\\sui1\\crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { local = "D:\\sui1\\crates\\sui-framework\\packages\\sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "mycoin" +source = { local = "D:\\move\\task2\\mycoin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.26.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xc8f1bc31bb1cb8c61c34304b29c37707a043ac37044c52620ce64b3ac88d013a" +latest-published-id = "0xc8f1bc31bb1cb8c61c34304b29c37707a043ac37044c52620ce64b3ac88d013a" +published-version = "1" + +[env.devnet] +chain-id = "ddb98719" +original-published-id = "0x0d64291469b9e67fb1417c53b16a9676403178969fee16ce928bf7bd58434a58" +latest-published-id = "0x0d64291469b9e67fb1417c53b16a9676403178969fee16ce928bf7bd58434a58" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xbb0e8bfd4ef25edffb060c1b7b9d94c5b47703006ac8642564aa9d12fd3910c8" +latest-published-id = "0xbb0e8bfd4ef25edffb060c1b7b9d94c5b47703006ac8642564aa9d12fd3910c8" +published-version = "1" diff --git a/mover/zzf222/code/task4/mygame/Move.toml b/mover/zzf222/code/task4/mygame/Move.toml new file mode 100644 index 000000000..bb5441eb1 --- /dev/null +++ b/mover/zzf222/code/task4/mygame/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "mygame" +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 = {local = "D:/sui1/crates/sui-framework/packages/sui-framework" } +mycoin = { local = "D:/move/task2/mycoin/" } + +# 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] +mygame = "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/zzf222/code/task4/mygame/sources/mygame.move b/mover/zzf222/code/task4/mygame/sources/mygame.move new file mode 100644 index 000000000..254cc4e00 --- /dev/null +++ b/mover/zzf222/code/task4/mygame/sources/mygame.move @@ -0,0 +1,109 @@ +module mygame::mygame { +use sui::tx_context::{Self,TxContext,sender}; +use sui::url::{Self,Url}; +use std::option::{Self}; +use std::string::{Self,String}; +use sui::random::{Self,Random}; +use sui::event; +use mycoin::zzf222_faucet_coin::{Self,ZZF222_FAUCET_COIN}; +use sui::coin::{Self,Coin,TreasuryCap}; +use sui::balance::{Self, Balance}; + +const EInvalid:u64=0; +const EInputNotEnough:u64 = 1; +const EPoolNotEnough:u64 = 2; + +public struct Event has copy,drop{ + choice:u8, + random:u8, + win:bool, + github_id:string::String, + record:string::String} + +public struct Game has key { + id: UID, + pool: Balance, + ticket: u64, + reward: u64, + } + +public struct AdminCap has key{id:UID} + +fun init(ctx:&mut TxContext){ + let game=Game{ + id:object::new(ctx), + pool:balance::zero(), + ticket: 1_000, + reward: 2_000,}; + transfer::share_object(game); + transfer::transfer(AdminCap{id:object::new(ctx)},sender(ctx)); +} + +//get faucet_coin +public entry fun get_zzf222_faucet_coin( + treasury_cap:&mut TreasuryCap, + amount:u64,ctx: &mut TxContext) { + zzf222_faucet_coin::mint(treasury_cap,amount,tx_context::sender(ctx),ctx); + } + +//Please enter your guess for an integer between 1 and 5 +public entry fun guess( + input:Coin, + game: &mut Game, + choice:u8, + r:&Random, + ctx:&mut TxContext){ +//Check if the input value is an integer between 1 and 5 +assert!(choice==1 || choice==2 || choice==3 || choice==4 || choice==5,EInvalid); +assert!(balance::value(&game.pool) >= game.reward - game.ticket, EPoolNotEnough); +let input_value = coin::value(&input); +assert!(input_value >= game.ticket, EInputNotEnough); +let mut input_balance = coin::into_balance(input); +if (input_value > game.ticket) { + balance::join(&mut game.pool,balance::split(&mut input_balance, game.ticket)); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); +} else {balance::join(&mut game.pool, input_balance);}; +//generate a random number +let mut generator=random::new_generator(r,ctx); +let random_value=random::generate_u8_in_range(&mut generator,1,5); +//You win or you lose +if(choice==random_value){ + let reward_balance = balance::split(&mut game.pool, game.reward); + let reward = coin::from_balance(reward_balance, ctx); + transfer::public_transfer(reward, sender(ctx)); +event::emit( + Event{choice,random:random_value,win:true,github_id:b"zzf222".to_string(),record:b"You Win!".to_string()}); +} +else{ +event::emit( + Event{choice,random:random_value,win:false,github_id:b"zzf222".to_string(),record:b"You Lose!".to_string()}); +}; +} + +//deposit Coin +public entry fun deposit(game: &mut Game, input: Coin, amount: u64, ctx: &mut TxContext) { + let input_value = coin::value(&input); + assert!(input_value >= amount, EInputNotEnough); + let mut input_balance = coin::into_balance(input); + if (input_value > amount) { + balance::join( + &mut game.pool, + balance::split(&mut input_balance, amount) + ); + let change = coin::from_balance(input_balance, ctx); + transfer::public_transfer(change, sender(ctx)); + } else { + balance::join(&mut game.pool, input_balance); + } + } + +//withdraw Coin +public entry fun withdraw(_: &AdminCap, game: &mut Game, amount: u64, ctx: &mut TxContext) { + let output_balance = balance::split(&mut game.pool, amount); + let output = coin::from_balance(output_balance, ctx); + transfer::public_transfer(output, sender(ctx)); + } + +} + diff --git a/mover/zzf222/code/task4/mygame/tests/mygame_tests.move b/mover/zzf222/code/task4/mygame/tests/mygame_tests.move new file mode 100644 index 000000000..a9a48e8ce --- /dev/null +++ b/mover/zzf222/code/task4/mygame/tests/mygame_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module mygame::mygame_tests { + // uncomment this line to import the module + // use mygame::mygame; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_mygame() { + // pass + } + + #[test, expected_failure(abort_code = ::mygame::mygame_tests::ENotImplemented)] + fun test_mygame_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/zzf222/code/task5/zzf222_swap/Move.lock b/mover/zzf222/code/task5/zzf222_swap/Move.lock new file mode 100644 index 000000000..0c8365f2e --- /dev/null +++ b/mover/zzf222/code/task5/zzf222_swap/Move.lock @@ -0,0 +1,49 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "4FF88879142BB8E6B8900BE6419FCA29DF1B7F48112750FAC40707DF99228B8A" +deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600" +dependencies = [ + { name = "Sui" }, + { name = "mycoin" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { local = "D:\\sui1\\crates\\sui-framework\\packages\\move-stdlib" } + +[[move.package]] +name = "Sui" +source = { local = "D:\\sui1\\crates\\sui-framework\\packages\\sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "mycoin" +source = { local = "D:\\move\\task2\\mycoin" } + +dependencies = [ + { name = "Sui" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xf5f9a9ba02dc63ca36ddf032ce7cb71552d6c7626885a015c2da494b69fd4ac8" +latest-published-id = "0xf5f9a9ba02dc63ca36ddf032ce7cb71552d6c7626885a015c2da494b69fd4ac8" +published-version = "1" + +[env.mainnet] +chain-id = "35834a8a" +original-published-id = "0xc15c1483fe48ef1aed79376fc78ab5e83441482f909a76f4553dca580edebe61" +latest-published-id = "0xc15c1483fe48ef1aed79376fc78ab5e83441482f909a76f4553dca580edebe61" +published-version = "1" diff --git a/mover/zzf222/code/task5/zzf222_swap/Move.toml b/mover/zzf222/code/task5/zzf222_swap/Move.toml new file mode 100644 index 000000000..83683ffc2 --- /dev/null +++ b/mover/zzf222/code/task5/zzf222_swap/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "zzf222_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 (joesmith@noemail.com)", "John Snow (johnsnow@noemail.com)"] + +[dependencies] +Sui = {local = "D:/sui1/crates/sui-framework/packages/sui-framework" } +mycoin = { local = "D:/move/task2/mycoin/" } + +# 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] +zzf222_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" + diff --git a/mover/zzf222/code/task5/zzf222_swap/sources/zzf222_swap.move b/mover/zzf222/code/task5/zzf222_swap/sources/zzf222_swap.move new file mode 100644 index 000000000..deac89f26 --- /dev/null +++ b/mover/zzf222/code/task5/zzf222_swap/sources/zzf222_swap.move @@ -0,0 +1,59 @@ +module zzf222_swap::zzf222_swap{ +use sui::object::{Self,UID}; +use sui::balance::{Self,Balance}; +use sui::coin::{Self,Coin}; +use mycoin::zzf222_coin::{Self,ZZF222_COIN}; +use mycoin::zzf222_faucet_coin::{Self,ZZF222_FAUCET_COIN}; +use sui::tx_context::{Self,TxContext}; +use sui::transfer::{Self}; +public struct AdminCap has key{id:UID} +public struct Bank has key{id:UID, +zzf222_coin:Balance, +zzf222_faucet_coin:Balance} +fun init(ctx:&mut TxContext){ + let bank=Bank{id:object::new(ctx),zzf222_coin:balance::zero(), + zzf222_faucet_coin:balance::zero()}; + transfer::share_object(bank); + let admin=AdminCap{id:object::new(ctx)}; + transfer::transfer(admin,tx_context::sender(ctx)); + +} +public entry fun deposit_zzf222_coin(bank:&mut Bank,zzf222_coin:Coin,_:&mut TxContext){ + let zzf222_coin_balance = coin::into_balance(zzf222_coin); + balance::join(&mut bank.zzf222_coin,zzf222_coin_balance); + } +public entry fun deposit_zzf222_faucetcoin(bank:&mut Bank,zzf222_faucet_coin:Coin, +_:&mut TxContext){ + let zzf222_faucet_coin_balance=coin::into_balance(zzf222_faucet_coin); + balance::join(&mut bank.zzf222_faucet_coin,zzf222_faucet_coin_balance); +} +public entry fun withdraw_zzf222_coin(_:&AdminCap, bank:&mut Bank,amt:u64,ctx:&mut TxContext){ + let zzf222_coin_balance = balance::split(&mut bank.zzf222_coin,amt); + let zzf222_coin = coin::from_balance(zzf222_coin_balance,ctx); + transfer::public_transfer(zzf222_coin,tx_context::sender(ctx)); +} +public entry fun withdraw_zzf222_faucet_coin(_:&AdminCap,bank:&mut Bank,amt:u64,ctx:&mut TxContext){ + let zzf222_faucet_coin_balance=balance::split(&mut bank.zzf222_faucet_coin,amt); + let zzf222_faucet_coin=coin::from_balance(zzf222_faucet_coin_balance,ctx); + transfer::public_transfer(zzf222_faucet_coin,tx_context::sender(ctx)); +} +//zzf222_coin:zzf222_faucet_coin=1:2 +public entry fun swap_zzf222_coin_to_zzf222_faucet_coin(bank:&mut Bank,zzf222_coin:Coin, +ctx:&mut TxContext){ + let amt = coin::value(&zzf222_coin);//balance + balance::join(&mut bank.zzf222_coin,coin::into_balance(zzf222_coin));//balance + let amt_zzf222_faucet_coin=amt*1000/2000;//balance + let zzf222_faucet_coin_balance=balance::split(&mut bank.zzf222_faucet_coin,amt_zzf222_faucet_coin);//balance + let zzf222_faucet_coin=coin::from_balance(zzf222_faucet_coin_balance,ctx);//coin + transfer::public_transfer(zzf222_faucet_coin,tx_context::sender(ctx)); +} +public entry fun swap_zzf222_faucet_coin_to_zzf222_coin(bank:&mut Bank,zzf222_faucet_coin:Coin, +ctx:&mut TxContext){ + let amt=coin::value(&zzf222_faucet_coin); + balance::join(&mut bank.zzf222_faucet_coin,coin::into_balance(zzf222_faucet_coin)); + let amt_zzf222_coin_balannce=amt*2000/1000; + let zzf222_coin_balance=balance::split(&mut bank.zzf222_coin,amt_zzf222_coin_balannce); + let zzf222_coin=coin::from_balance(zzf222_coin_balance,ctx); + transfer::public_transfer(zzf222_coin,tx_context::sender(ctx)); +} +} diff --git a/mover/zzf222/code/task5/zzf222_swap/tests/zzf222_swap_tests.move b/mover/zzf222/code/task5/zzf222_swap/tests/zzf222_swap_tests.move new file mode 100644 index 000000000..bf40ecaa6 --- /dev/null +++ b/mover/zzf222/code/task5/zzf222_swap/tests/zzf222_swap_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module zzf222_swap::zzf222_swap_tests { + // uncomment this line to import the module + // use zzf222_swap::zzf222_swap; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_zzf222_swap() { + // pass + } + + #[test, expected_failure(abort_code = ::zzf222_swap::zzf222_swap_tests::ENotImplemented)] + fun test_zzf222_swap_fail() { + abort ENotImplemented + } +} +*/ diff --git a/mover/zzf222/code/task7/readme.md b/mover/zzf222/code/task7/readme.md new file mode 100644 index 000000000..986de8fe5 --- /dev/null +++ b/mover/zzf222/code/task7/readme.md @@ -0,0 +1,140 @@ +sui client call --package 0x5f67669cbad74f7eccdb9ff9310e540fbe09cae5c81281e962cb65ac5094aadd --module check_in --function get_flag --gas-budget 10000000 --args "7@Rceer[, Value: "7@Rceer[ + Version: 48024058 + Digest: AG5xfFCBemftAGZfErS3asQChkuU25W1EXso6KZXcicx + +ts +qr + Balance Changes + + + Owner: Account Address ( 0x63844509e44ca9480b7d3b8564c242bd1cc4fc3bc9a734eda8503dafa16afcdb ) + CoinType: 0x2::sui::SUI + Amount: -1078736 + +ts diff --git a/mover/zzf222/readme.md b/mover/zzf222/readme.md index 308dbba07..26fc85910 100644 --- a/mover/zzf222/readme.md +++ b/mover/zzf222/readme.md @@ -21,32 +21,36 @@ ## 02 move coin -* [] My Coin package id : 0xd9c9c49e9ea667689797bbde157f85113c97c375fdb0198132c4624073114256 -* [] Faucet package id : 0xd9c9c49e9ea667689797bbde157f85113c97c375fdb0198132c4624073114256 -* [] 转账 `My Coin` hash:G4wNfeX7fbEGjVddERgWbjcxZtKRtvTFtysP6DrNbzrb +* [x] My Coin package id : 0xd9c9c49e9ea667689797bbde157f85113c97c375fdb0198132c4624073114256 +* [x] Faucet package id : 0xd9c9c49e9ea667689797bbde157f85113c97c375fdb0198132c4624073114256 +* [x] 转账 `My Coin` hash:G4wNfeX7fbEGjVddERgWbjcxZtKRtvTFtysP6DrNbzrb ## 03 move NFT -- [] nft package id :0xe24d1dd5860dd4466d1f8f2da1fa8f3c3b37b007ff7be7865a6f8a6a1242c830 -- [] nft object id : 0x8af31c6714f7cc80b505a9e05b55d78a49124ba46d1274136ca68ac8002c331e -- [] 转账 nft hash:3bjmP9hKUgjzJTPz9L2vbqxHxr4wbGF5NR2fgBR1UvMa -- [] scan上的NFT截图:![Scan截图](./image/1.png) +- [x] nft package id :0xe24d1dd5860dd4466d1f8f2da1fa8f3c3b37b007ff7be7865a6f8a6a1242c830 +- [x] nft object id : 0x8af31c6714f7cc80b505a9e05b55d78a49124ba46d1274136ca68ac8002c331e +- [x] 转账 nft hash:3bjmP9hKUgjzJTPz9L2vbqxHxr4wbGF5NR2fgBR1UvMa +- [x] scan上的NFT截图:![Scan截图](./image/1.png) -## 04 Move Game +## 04 Move Game(testnet) -- [] game package id : -- [] deposit Coin hash: -- [] withdraw `Coin` hash: -- [] play game hash: +- [x] game package id :0xc8f1bc31bb1cb8c61c34304b29c37707a043ac37044c52620ce64b3ac88d013a +- [x] deposit Coin hash:HNem8ymD6Uc5fA4NtB1oUExytLFhVwmWgmuSoVGG5fku +- [x] withdraw `Coin` hash:9eWnQmZxfB9ZK7yEHA6mJoY1rQjQ9K29EnC3wh7yMt7s +- [x] play game hash:5vAs2Lbdqj3PJdfHYemSS2gKrXp7XrnsX9Zcqun59ekK ## 05 Move Swap -- [] swap package id : -- [] call swap CoinA-> CoinB hash : -- [] call swap CoinB-> CoinA hash : +- [x] swap package id :0xc15c1483fe48ef1aed79376fc78ab5e83441482f909a76f4553dca580edebe61 +- [x] call swap CoinA-> CoinB hash :3NXBY7M3AaUFV2dnCbVb4sv6HN96BPrLDLSmyNcrbXtB +- [x] call swap CoinB-> CoinA hash :F6nN3y1y6N359x2roSqpisTuvFkvFyhBSg3hWTEcGS6u ## 06 SDK PTB - [] save hash : + +## 07 Move CTF Check In + +- [x] save hash: [9S7wBmRFpT65tcaGR9mJ8w9UFKauwwcsM6cbg55mvrTr](https://suiscan.xyz/testnet/tx/9S7wBmRFpT65tcaGR9mJ8w9UFKauwwcsM6cbg55mvrTr) diff --git a/task/01.hello_move.md b/task/01.hello_move.md index c6bcf2654..b320f6d1d 100644 --- a/task/01.hello_move.md +++ b/task/01.hello_move.md @@ -1,34 +1,51 @@ # 完成第一个合约上链 + - 上链网络: 测试网(testnet) ## 需求 + - 加入社交群 - 完成Sui钱包安装 - 完成Sui CLI安装 - 完成获取测试网络SUI学习 - 完成Sui浏览器学习 -- Hello Move 合约必须包含自己github id 输出内容是 `github id` -- 提交Sui Cli的版本ID: +- Hello Move 合约必须包含自己github id 输出内容是 `github id` +- 提交Sui Cli的版本ID: - 提交`Hello Move`合约发布`package id` - 提交安装好浏览器钱包的截图到 `images` - ## 学习要点 + - 安装好钱包 - 安装好cli - 部署上链 ## 任务指南 + - 获取Sui版本信息 + ```shell sui --version ``` +## 注册钱包 + +*钱包*是进入 Web3 世界大门的钥匙,*钱包*能够很好管理你的账户信息和链上的资产。 + +* [Sui Wallet](https://chrome.google.com/webstore/detail/opcgpfmipidbgpenhmajoajpbobppdil) | [教程-如何开始使用Sui钱包](https://mp.weixin.qq.com/s/-_hCFUO-62hv9amPzmJdeg) +* [Suiet Wallet](https://chrome.google.com/webstore/detail/suiet-sui-wallet/khpkpbbcccdmmclmpigdgddabeilkdpd) | [教程-如何获取Suiet钱包](https://suiet.app/blog/what-is-suiet-sui-wallet-how-to-use-sui-wallet) +* [Ethos Wallet](https://ethoswallet.xyz/) + 当你注册好钱包就可以开启 Web3 之旅了,接下来介绍参与方式。 + +## 安装好编辑器 +* RustRover `Sui Move` 插件 [教程](https://learnblockchain.cn/article/8221) +* VS Code `Move` 插件 [教程](https://learnblockchain.cn/article/8210) + + ### 区块链浏览器 Scan + - https://suivision.xyz/ - https://suiscan.xyz/ +### 安装Sui - - -### 安装Sui - https://docs.sui.io/guides/developer/getting-started/sui-install diff --git a/task/02.move_coin.md b/task/02.move_coin.md index 4dec3b725..52ec5e989 100644 --- a/task/02.move_coin.md +++ b/task/02.move_coin.md @@ -11,14 +11,14 @@ - 发送 `My Coin` 给地址 `0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2` - `Faucet Coin` 需要至少用两个地址mint +# 学习要点 -# 学习要点 -1. 理解Coin协议 创建Coin +1. 理解Coin协议 创建Coin 2. 理解独享所有权和共享所有权的区别 -3. 对共享所有权保持敬畏 因为权限被共享了 +3. 对共享所有权保持敬畏 因为权限被共享了 -public_transfer 独享 mint权限 -public_share_object 共享 mint权限 +public_transfer 独享 mint权限 +public_share_object 共享 mint权限 ## 任务指南 diff --git a/task/03.move_nft.md b/task/03.move_nft.md index eab7eb1e8..0cfd18f54 100644 --- a/task/03.move_nft.md +++ b/task/03.move_nft.md @@ -1,11 +1,13 @@ -# 完成NFT的上链部署 +# 完成NFT的上链部署 + - 上链网络: 主网(mainnet) ## 需求 + - 完成 NFT相关知识的学习 - 完成可以mint NFT的合约上链 - 给自己地址mint一个NFT -- NFT必须是自己 github 的头像作为图片 +- NFT必须是自己 github 的头像作为图片 - mint 一个 nft 发送到地址: `0x7b8e0864967427679b4e129f79dc332a885c6087ec9e187b53451a9006ee15f2` - 提交mint到自己地址的浏览器查看(Scan)截图 diff --git a/task/04.move_game.md b/task/04.move_game.md index c0edfc8ef..9100a26e9 100644 --- a/task/04.move_game.md +++ b/task/04.move_game.md @@ -1,18 +1,20 @@ -# 完成游戏的上链部署 +# 完成游戏的上链部署 + - 上链网络: 主网(mainnet) ## 需求 + - 完成 链游相关知识的学习 - 完成 随机数的学习,游戏必须包含随机数 - 完成 存和取游戏资金池 -- 完成 如何存储Coin在合约的学习,游戏必须能存取[task2] 发行的`Faucet Coin`,用`task2`的 `Faucet Coin`作为游戏输赢的资产 +- 完成 如何存储Coin在合约的学习,游戏必须能存取[task2] 发行的`Faucet Coin`,用`task2`的 `Faucet Coin`作为游戏输赢的资产 - 完成 第一个游戏合约部署主网 - 的game 必须包含自己的 `github id`的元素 ## 任务指南 - ## 学习要点 + - 理解随机数 - 理解资金池 - 理解输赢逻辑 \ No newline at end of file diff --git a/task/05.move_swap.md b/task/05.move_swap.md index 4c5095b91..196ce225e 100644 --- a/task/05.move_swap.md +++ b/task/05.move_swap.md @@ -1,8 +1,11 @@ -# 实现一个最简单的swap +# 实现一个最简单的swap + - 上链网络: 主网(mainnet) ## 需求 + - 完成 swap相关知识的学习 - 完成第一个Swap合约的上链部署 - swap 必须是 swap 自己发行的 task2 两个 Coin的互换,包名必须是自己的`github id` + ## 任务指南 \ No newline at end of file diff --git a/task/06.SDK_PTB_NAVI.md b/task/06.SDK_PTB_NAVI.md index ddd989ab6..72cdf1805 100644 --- a/task/06.SDK_PTB_NAVI.md +++ b/task/06.SDK_PTB_NAVI.md @@ -1,24 +1,30 @@ -# 用 Sui SDK 和 Navi SDK 在Navi Protocol 存入 1 SUI +# 用 Sui SDK 和 Navi SDK 在Navi Protocol 存入 1 SUI + - 上链网络: 主网(mainnet) ## 特别感谢 + - 本 task 由 [Navi Protocol](https://app.naviprotocol.io) 特别赞助 ## 需求 -- 完成 dapp-kit 学习 -- 完成 Sui SDK 学习 -- 完成 PTB的概念学习 -- 完成 Navi Protocol 学习 -- 在 dapp-kit里面用chrome钱包签名提交 -- 完成 必须在同一个PTB完成 Navi SDK 1.[存入Navi Protocol 1 SUI] 2.[借出当前日期的USDC 0.[月][天][小时] 的 USDC ] 3.[然后在存入等额的USDC] -> 当前时间是2024年4月25日15点 借出的金额就是 `0.042515` 月 天 小时 必须是两位数 2024年5月1日2点 `0.050102` + +- 完成 dapp-kit 学习 +- 完成 Sui SDK 学习 +- 完成 PTB的概念学习 +- 完成 Navi Protocol 学习 +- 在 dapp-kit里面用chrome钱包签名提交 +- 完成 必须在同一个PTB完成 Navi SDK 1.[存入Navi Protocol 1 SUI] 2.[借出当前日期的USDC 0.[月][天][小时] 的 USDC ] + 3.[然后在存入等额的USDC] + +> 当前时间是2024年4月25日15点 借出的金额就是 `0.042515` 月 天 小时 必须是两位数 2024年5月1日2点 `0.050102` ## 报错信息 -> 如果遇到报错可能是更新了 `package id` 下面可以看到最新的id 替换一下sdk的值就行 -https://open-api.naviprotocol.io/api/package +> 如果遇到报错可能是更新了 `package id` 下面可以看到最新的id 替换一下sdk的值就行 +https://open-api.naviprotocol.io/api/package ## 任务指南 + - [sui sdk](https://sdk.mystenlabs.com/typescript) - [ptb sdk](https://sdk.mystenlabs.com/typescript/transaction-building/basics) - [ptb concepts](https://docs.sui.io/concepts/transactions/prog-txn-blocks) diff --git a/task/07.move_ctf_check_in.md b/task/07.move_ctf_check_in.md new file mode 100644 index 000000000..06f8e2e39 --- /dev/null +++ b/task/07.move_ctf_check_in.md @@ -0,0 +1,21 @@ +完成 Move CTF Check in + +- 目标网络: 测试网(testnet) + +## 需求 + +- 完成 CLI 调用学习 +- 理解合约交互传值 +- 完成 Move CTF Check In +- 必须用Sui CLI 调用完成 + +## 任务指南 + +- 合约部署地址: `0x914099b4d1b4f5513acc8aaa4fdc1f67578522b81d818f61bae527d590c6d87d` +- FlagStr Object:`0xc8dcd54baa7724177593a9f70598a09ae6a4286f996542e058f248209db08147` +- random: `0x8` +- github id: 填写自己的github id + +### 题目源码 + +[Move CTF Check In](https://github.com/move-cn/letsmove-ctf/tree/main/src/01_check_in/check_in) diff --git a/task/08.move_ctf_lets_move.md b/task/08.move_ctf_lets_move.md new file mode 100644 index 000000000..99ad5fdd3 --- /dev/null +++ b/task/08.move_ctf_lets_move.md @@ -0,0 +1,20 @@ +完成 Move CTF Lets Move + +- 目标网络: 测试网(testnet) + +## 需求 + +- 完成 CLI 调用学习 +- 理解合约交互传值 +- 完成 Move CTF Lets Move + +## 任务指南 + +- 合约部署地址: `0x097a3833b6b5c62ca6ad10f0509dffdadff7ce31e1d86e63e884a14860cedc0f` +- Challenge Object: `0x19e76ca504c5a5fa5e214a45fca6c058171ba333f6da897b82731094504d5ab9` +- random: `0x8` +- github id: 填写自己的github id + +### 题目源码 + +[Move CTF Lets Move](https://github.com/move-cn/letsmove-ctf/tree/main/src/02_lets_move/lets_move) diff --git a/task/readme.md b/task/readme.md index 72f94d2cf..6b2123e44 100644 --- a/task/readme.md +++ b/task/readme.md @@ -1 +1,43 @@ -# 任务指南 +## 情详细阅读本任务指南 + +## 任务交流群 +**必须加入任务群发出PR 才会被合并,提交PR一周内不发出PR的视为放弃任务奖励** +- [move中文 TG](https://t.me/move_cn) +- QQ群: 79489587 + +## 如何参与并获取奖励 +**必须加入任务群发出PR 才会被合并,提交PR一周内不发出PR的视为放弃任务奖励** + +- 复制 `mover` 目录下的 `001` 并且用自己的 `github id` 命名复制的目录 +- 在 `readme.md` 里面填写个人信息 后面的任务模板暂时不管 +- 在自己`github id`目录的 readme.md 对应的任务列表填写完成信息 +- 提交PR 如果只完成 task 1 用 `完成 task 1` 取名 完成多个 用 `完成 task 1 2 3` 等取名 +- 审核任务完成会把Sui打入 `readme.md` 提供的Sui地址 + + + +## 重要提醒 +**必须加入任务群发出PR 才会被合并,提交PR一周内不发出PR的视为放弃任务奖励** +- 必须包含作业源代码 +- task 1 必须包含自己的`github id` 也就是 hello `github id` +- task 2 必须是自己 `github id` 开头的Coin名字,水龙头的Coin是 `github id` + `Faucet` +- task 3 NFT必须是自己 github 的头像作为图片 +- task 4 的game 必须包含自己的 `github id`的元素, 必须包含随机数,必须用task2的 `Faucet Coin` +- task 5 swap 必须是 swap 自己发行的 task2 两个 Coin的互换,包名必须是自己的`github id` +- task 6 必须在一个PTB内完成三步,必须包含当前时间的因子,必须用dapp-kit + + +## 奖励明细 请仔细阅读要求 +**必须加入任务群发出PR 才会被合并,提交PR一周内不发出PR的视为放弃任务奖励** + +| 任务 | 名称 | 人民币等值Token | 说明 | +|:-------------------------------------------|-------------------|:----------:|:-----------------------| +| [task 1](01.hello_move.md) | hello move | ¥20 | 完成第一个合约部署上链 | +| [task 2](02.move_coin.md) | move coin | ¥20 | 完成Coin协议学习,并发布两个Coin上链 | +| [task 3](03.move_nft.md) | move nft | ¥20 | 完成NFT的学习,并发布NFT上链 | +| [task 4](04.move_game.md) | move game | ¥20 | 完成链上游戏学习,并上链交互 | +| [task 5](05.move_swap.md) | move swap | ¥20 | 完成Swap学习,并上链交互 | +| [task 6](06.SDK_PTB_NAVI.md) | sdk ptb | ¥20(NAVX) | 完成SDK学习,并用SDK完成链上交互 | +| [task 7](07.move_ctf_check_in.md) | move ctf check in | ¥20 | 完成move ctf check in | +| [task 8](08.move_ctf_lets_move.md) | move ctf pow | ¥20 | 完成move ctf pow | +| [defi](https://dacade.org/communities/sui) | defi | 35SUI | 完成Defi学习挑战 | \ No newline at end of file diff --git a/tutorial/bootcamp/01_hello/hello_move/Move.lock b/tutorial/bootcamp/01_hello/hello_move/Move.lock new file mode 100644 index 000000000..ce9a3c299 --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "917E16C3795B3F01271FED120E5CF6A90FC4A63AD087DB58B7C5D6EC50750EEB" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/mystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/mystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.30.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xe6a7061d928ce12042e7d99c2c95faba18f2fbf99637e209606af88fa618f1eb" +latest-published-id = "0xe6a7061d928ce12042e7d99c2c95faba18f2fbf99637e209606af88fa618f1eb" +published-version = "1" diff --git a/tutorial/bootcamp/01_hello/hello_move/Move.toml b/tutorial/bootcamp/01_hello/hello_move/Move.toml new file mode 100644 index 000000000..59cfe8daf --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "hello_move" +edition = "2024.beta" + + +# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha +# 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/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] +hello_move = "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/tutorial/bootcamp/01_hello/hello_move/hello-dapp/README.md b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/README.md new file mode 100644 index 000000000..ec054a25a --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/README.md @@ -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": "" + } +}' +``` + +### 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 = ""; +``` + +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 +``` diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/index.html b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/index.html new file mode 100644 index 000000000..bb7f75b16 --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/index.html @@ -0,0 +1,59 @@ + + + + + + + Sui dApp Starter + + + + +
+ + + diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/move/counter/Move.lock b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/move/counter/Move.lock new file mode 100644 index 000000000..18e438f8e --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/move/counter/Move.lock @@ -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 = "0x26bc718fb0cfd4897b7d7ca321814eca33215afc54ddffed7ebe1c981bf6f918" +latest-published-id = "0x26bc718fb0cfd4897b7d7ca321814eca33215afc54ddffed7ebe1c981bf6f918" +published-version = "1" diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/move/counter/Move.toml b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/move/counter/Move.toml new file mode 100644 index 000000000..94e850382 --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/move/counter/Move.toml @@ -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" diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/move/counter/sources/counter.move b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/move/counter/sources/counter.move new file mode 100644 index 000000000..857c95d19 --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/move/counter/sources/counter.move @@ -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) + } +} diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/package-lock.json b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/package-lock.json new file mode 100644 index 000000000..600190a73 --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/package-lock.json @@ -0,0 +1,7995 @@ +{ + "name": "hello-dapp", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "hello-dapp", + "version": "0.0.0", + "dependencies": { + "@mysten/dapp-kit": "0.14.10", + "@mysten/sui": "1.2.0", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@tanstack/react-query": "^5.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } + }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, + "node_modules/@0no-co/graphqlsp": { + "version": "1.12.11", + "resolved": "https://registry.npmjs.org/@0no-co/graphqlsp/-/graphqlsp-1.12.11.tgz", + "integrity": "sha512-vLja9r7L6BBXwxW86Wyi5z5hjTHscH7qoQooy+MXHkM9srBB6ZuesYZq5DQ/+SErQrFyaxeY+hwv2qBAksxriw==", + "dependencies": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", + "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.4.tgz", + "integrity": "sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==", + "dependencies": { + "@floating-ui/utils": "^0.2.4" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.7.tgz", + "integrity": "sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.4" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.1.tgz", + "integrity": "sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.4.tgz", + "integrity": "sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==" + }, + "node_modules/@gql.tada/cli-utils": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@gql.tada/cli-utils/-/cli-utils-1.5.0.tgz", + "integrity": "sha512-BqbrcpKmE2FyM3tQgK3vzTIn1ghCOf+lH9MThPow7NbtS9K2+bH4u/1fPAhZMR1Zg5GExKsDvij+zLP64Ge6Ig==", + "dependencies": { + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/internal": "1.0.3", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + }, + "peerDependencies": { + "@0no-co/graphqlsp": "^1.12.9", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@gql.tada/internal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@gql.tada/internal/-/internal-1.0.3.tgz", + "integrity": "sha512-n52/OjAkoPsX4ZyEufFBnncjnv0UrbXKs4OUG66db8gxtV5437EkLjI4MTAI1M6dsaj+VLi0unpraPPPbFR59A==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mysten/bcs": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-1.0.2.tgz", + "integrity": "sha512-haHT0km/9yIIe8lwo8gDFxGLnoxfRF4WmEVCz4lDXbEVQRsZkF0zB97kukiwMjDuFBaGVUhrOMCLz6td8tSMaQ==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/dapp-kit": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/@mysten/dapp-kit/-/dapp-kit-0.14.10.tgz", + "integrity": "sha512-IjCRND4pgr8nr2fLg9XLEACtyxTO1Y4/Fl8/5taxZyhb09kTfS7hcpHkRw3xPmJ/b83DOQW3X0/l/d213k4OVQ==", + "dependencies": { + "@mysten/sui": "1.2.0", + "@mysten/wallet-standard": "0.12.10", + "@mysten/zksend": "0.9.10", + "@radix-ui/react-dialog": "^1.0.4", + "@radix-ui/react-dropdown-menu": "^2.0.5", + "@radix-ui/react-slot": "^1.0.2", + "@vanilla-extract/css": "^1.13.0", + "@vanilla-extract/dynamic": "^2.0.3", + "@vanilla-extract/recipes": "^0.5.0", + "clsx": "^2.0.0", + "zustand": "^4.4.1" + }, + "peerDependencies": { + "@tanstack/react-query": "^5.0.0", + "react": "*" + } + }, + "node_modules/@mysten/sui": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@mysten/sui/-/sui-1.2.0.tgz", + "integrity": "sha512-USDOckZPGcwi2QAuKHEcieoVuW8Xgsm8vtKyXaRrhVLG2t2q3hCEigquiLXh7S3okBbD/P35xjvhR9PdUeqweA==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "1.0.2", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.7.0", + "graphql": "^16.8.1", + "tweetnacl": "^1.0.3", + "valibot": "^0.25.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@mysten/wallet-standard": { + "version": "0.12.10", + "resolved": "https://registry.npmjs.org/@mysten/wallet-standard/-/wallet-standard-0.12.10.tgz", + "integrity": "sha512-hwy9S63D/J9llrGHDRqmJTauUcAL2tKeiRut9NdePCe4BJphzowwZxTLZTsyam4fT2K2yvufyVZwp4Ij4FII6Q==", + "dependencies": { + "@mysten/sui": "1.2.0", + "@wallet-standard/core": "1.0.3" + } + }, + "node_modules/@mysten/zksend": { + "version": "0.9.10", + "resolved": "https://registry.npmjs.org/@mysten/zksend/-/zksend-0.9.10.tgz", + "integrity": "sha512-ExKtKZT9bL3BKTQZww1zOv8gFDju/40rx2kqjO+qy2Ju+0Mc3jmtoR7NYpCdPK19DvvOl0eKGs6f2P+LN0+rlQ==", + "dependencies": { + "@mysten/sui": "1.2.0", + "@mysten/wallet-standard": "0.12.10", + "mitt": "^3.0.1", + "nanostores": "^0.9.3", + "valibot": "^0.25.0" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@radix-ui/colors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/colors/-/colors-3.0.0.tgz", + "integrity": "sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==" + }, + "node_modules/@radix-ui/number": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.0.tgz", + "integrity": "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz", + "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==" + }, + "node_modules/@radix-ui/react-accessible-icon": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.1.0.tgz", + "integrity": "sha512-i9Zg4NOSXlfUva0agzI2DjWrvFJm9uO4L6CMW7nmMa5CIOOX/Yin894W7WwjodFQWPwe5kmAJ4JF33R8slKI2g==", + "dependencies": { + "@radix-ui/react-visually-hidden": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-alert-dialog": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.1.tgz", + "integrity": "sha512-wmCoJwj7byuVuiLKqDLlX7ClSUU0vd9sdCeM+2Ls+uf13+cpSJoMgwysHq1SGVVkJj5Xn0XWi1NoRCdkMpr6Mw==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dialog": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", + "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-aspect-ratio": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.0.tgz", + "integrity": "sha512-dP87DM/Y7jFlPgUZTlhx6FF5CEzOiaxp2rBCKlaXlpH5Ip/9Fg5zZ9lDOQ5o/MOfUlf36eak14zoWYpgcgGoOg==", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.0.tgz", + "integrity": "sha512-Q/PbuSMk/vyAd/UoIShVGZ7StHHeRFYU7wXmi5GV+8cLXflZAEpHL/F697H1klrzxKXNtZ97vWiC0q3RKUH8UA==", + "dependencies": { + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.1.tgz", + "integrity": "sha512-0i/EKJ222Afa1FE0C6pNJxDq1itzcl3HChE9DwskA4th4KRse8ojx8a1nVcOjwJdbpDLcz7uol77yYnQNMHdKw==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", + "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", + "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context-menu": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.2.1.tgz", + "integrity": "sha512-wvMKKIeb3eOrkJ96s722vcidZ+2ZNfcYZWBPRHIB1VWrF+fiF851Io6LX0kmK5wTDQFKdulCCKJk2c3SBaQHvA==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-menu": "2.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.1.tgz", + "integrity": "sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz", + "integrity": "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.1.tgz", + "integrity": "sha512-y8E+x9fBq9qvteD2Zwa4397pUVhYsh9iq44b5RD5qu1GMJWBCBuVg1hMyItbc6+zH00TxGRqd9Iot4wzf3OoBQ==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-menu": "2.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.0.tgz", + "integrity": "sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", + "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-form/-/react-form-0.0.3.tgz", + "integrity": "sha512-kgE+Z/haV6fxE5WqIXj05KkaXa3OkZASoTDy25yX2EIp/x0c54rOH/vFr5nOZTg7n7T1z8bSyXmiVIFP9bbhPQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-label": "2.0.2", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-context": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form/node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-hover-card": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.1.tgz", + "integrity": "sha512-IwzAOP97hQpDADYVKrEEHUH/b2LA+9MgB0LgdmnbFO2u/3M5hmEofjjr2M6CyzUblaAqJdFm6B7oFtU72DPXrA==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-icons": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz", + "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==", + "peerDependencies": { + "react": "^16.x || ^17.x || ^18.x" + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.0.2.tgz", + "integrity": "sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.1.tgz", + "integrity": "sha512-oa3mXRRVjHi6DZu/ghuzdylyjaMXLymx83irM7hTxutQbD+7IhPKdMdRHD26Rm+kHRrWcrUkkRPv5pd47a2xFQ==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.1.tgz", + "integrity": "sha512-3y1A3isulwnWhvTTwmIreiB8CF4L+qRjZnK1wYLO7pplddzXKby/GnZ2M7OZY3qgnl6p9AodUIHRYGXNah8Y7g==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz", + "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz", + "integrity": "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.0.tgz", + "integrity": "sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", + "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "dependencies": { + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-radio-group": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.2.0.tgz", + "integrity": "sha512-yv+oiLaicYMBpqgfpSPw6q+RyXlLdIpQWDHZbUKURxe+nEh53hFXPPlfhfQQtYkS5MMK/5IWIa76SksleQZSzw==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz", + "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.1.0.tgz", + "integrity": "sha512-9ArIZ9HWhsrfqS765h+GZuLoxaRHD/j0ZWOWilsCvYTpYJp8XwCqNG7Dt9Nu/TItKOdgLGkOPCodQvDc+UMwYg==", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.1.tgz", + "integrity": "sha512-8iRDfyLtzxlprOo9IicnzvpsO1wNCkuwzzCM+Z5Rb5tNOpCdMvcc2AkzX0Fz+Tz9v6NJ5B/7EEgyZveo4FBRfQ==", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.0.tgz", + "integrity": "sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slider": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.2.0.tgz", + "integrity": "sha512-dAHCDA4/ySXROEPaRtaMV5WHL8+JB/DbtyTbJjYkY0RXmKMO2Ln8DFZhywG5/mVQ4WqHDBc8smc14yPXPqZHYA==", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", + "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.0.tgz", + "integrity": "sha512-OBzy5WAj641k0AOSpKQtreDMe+isX0MQJ1IVyF03ucdF3DunOnROVrjWs8zsXUxC3zfZ6JL9HFVCUlMghz9dJw==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.0.tgz", + "integrity": "sha512-bZgOKB/LtZIij75FSuPzyEti/XBhJH52ExgtdVqjCIh+Nx/FW+LhnbXtbCzIi34ccyMsyOja8T0thCzoHFXNKA==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.2.tgz", + "integrity": "sha512-9XRsLwe6Yb9B/tlnYCPVUd/TFS4J7HuOZW345DCeC6vKIxQGMZdx21RK4VoZauPD5frgkXTYVS5y90L+3YBn4w==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz", + "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "dependencies": { + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz", + "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==" + }, + "node_modules/@radix-ui/themes": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/themes/-/themes-2.0.3.tgz", + "integrity": "sha512-yaXQ8aWT2P1CQ0Xe6YCRD9HXsfMTvKkrIYkrc4aitCzhGTLS0sjtTqKmrxIWMVA+3DIbEuG9K/8aAMRJBhep8g==", + "dependencies": { + "@radix-ui/colors": "^3.0.0", + "@radix-ui/primitive": "^1.0.1", + "@radix-ui/react-accessible-icon": "^1.0.3", + "@radix-ui/react-alert-dialog": "^1.0.5", + "@radix-ui/react-aspect-ratio": "^1.0.3", + "@radix-ui/react-avatar": "^1.0.4", + "@radix-ui/react-checkbox": "^1.0.4", + "@radix-ui/react-context-menu": "^2.1.5", + "@radix-ui/react-dialog": "^1.0.5", + "@radix-ui/react-direction": "^1.0.1", + "@radix-ui/react-dropdown-menu": "^2.0.6", + "@radix-ui/react-form": "^0.0.3", + "@radix-ui/react-hover-card": "^1.0.7", + "@radix-ui/react-popover": "^1.0.7", + "@radix-ui/react-portal": "^1.0.4", + "@radix-ui/react-radio-group": "^1.1.3", + "@radix-ui/react-scroll-area": "^1.0.5", + "@radix-ui/react-select": "^2.0.0", + "@radix-ui/react-separator": "^1.0.3", + "@radix-ui/react-slider": "^1.1.2", + "@radix-ui/react-slot": "^1.0.2", + "@radix-ui/react-switch": "^1.0.3", + "@radix-ui/react-tabs": "^1.0.4", + "@radix-ui/react-tooltip": "^1.0.7", + "@radix-ui/react-use-callback-ref": "^1.0.1", + "@radix-ui/react-visually-hidden": "^1.0.3", + "classnames": "^2.3.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@scure/base": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.7.tgz", + "integrity": "sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "node_modules/@swc/core": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.6.13.tgz", + "integrity": "sha512-eailUYex6fkfaQTev4Oa3mwn0/e3mQU4H8y1WPuImYQESOQDtVrowwUGDSc19evpBbHpKtwM+hw8nLlhIsF+Tw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.9" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.6.13", + "@swc/core-darwin-x64": "1.6.13", + "@swc/core-linux-arm-gnueabihf": "1.6.13", + "@swc/core-linux-arm64-gnu": "1.6.13", + "@swc/core-linux-arm64-musl": "1.6.13", + "@swc/core-linux-x64-gnu": "1.6.13", + "@swc/core-linux-x64-musl": "1.6.13", + "@swc/core-win32-arm64-msvc": "1.6.13", + "@swc/core-win32-ia32-msvc": "1.6.13", + "@swc/core-win32-x64-msvc": "1.6.13" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.6.13.tgz", + "integrity": "sha512-SOF4buAis72K22BGJ3N8y88mLNfxLNprTuJUpzikyMGrvkuBFNcxYtMhmomO0XHsgLDzOJ+hWzcgjRNzjMsUcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.6.13.tgz", + "integrity": "sha512-AW8akFSC+tmPE6YQQvK9S2A1B8pjnXEINg+gGgw0KRUUXunvu1/OEOeC5L2Co1wAwhD7bhnaefi06Qi9AiwOag==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.6.13.tgz", + "integrity": "sha512-f4gxxvDXVUm2HLYXRd311mSrmbpQF2MZ4Ja6XCQz1hWAxXdhRl1gpnZ+LH/xIfGSwQChrtLLVrkxdYUCVuIjFg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.6.13.tgz", + "integrity": "sha512-Nf/eoW2CbG8s+9JoLtjl9FByBXyQ5cjdBsA4efO7Zw4p+YSuXDgc8HRPC+E2+ns0praDpKNZtLvDtmF2lL+2Gg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.6.13.tgz", + "integrity": "sha512-2OysYSYtdw79prJYuKIiux/Gj0iaGEbpS2QZWCIY4X9sGoETJ5iMg+lY+YCrIxdkkNYd7OhIbXdYFyGs/w5LDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.6.13.tgz", + "integrity": "sha512-PkR4CZYJNk5hcd2+tMWBpnisnmYsUzazI1O5X7VkIGFcGePTqJ/bWlfUIVVExWxvAI33PQFzLbzmN5scyIUyGQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.6.13.tgz", + "integrity": "sha512-OdsY7wryTxCKwGQcwW9jwWg3cxaHBkTTHi91+5nm7hFPpmZMz1HivJrWAMwVE7iXFw+M4l6ugB/wCvpYrUAAjA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.6.13.tgz", + "integrity": "sha512-ap6uNmYjwk9M/+bFEuWRNl3hq4VqgQ/Lk+ID/F5WGqczNr0L7vEf+pOsRAn0F6EV+o/nyb3ePt8rLhE/wjHpPg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.6.13.tgz", + "integrity": "sha512-IJ8KH4yIUHTnS/U1jwQmtbfQals7zWPG0a9hbEfIr4zI0yKzjd83lmtS09lm2Q24QBWOCFGEEbuZxR4tIlvfzA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.6.13.tgz", + "integrity": "sha512-f6/sx6LMuEnbuxtiSL/EkR0Y6qUHFw1XVrh6rwzKXptTipUdOY+nXpKoh+1UsBm/r7H0/5DtOdrn3q5ZHbFZjQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true + }, + "node_modules/@swc/types": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.9.tgz", + "integrity": "sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg==", + "dev": true, + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.50.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.50.1.tgz", + "integrity": "sha512-lpfhKPrJlyV2DSVcQb/HuozH3Av3kws4ge22agx+lNGpFkS4vLZ7St0l3GLwlAD+bqB+qXGex3JdRKUNtMviEQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.50.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.50.1.tgz", + "integrity": "sha512-s0DW3rVBDPReDDovUjVqItVa3R2nPfUANK9nqGvarO2DwTiY9U4EBTsqizMxItRCoGgK5apeM7D3mxlHrSKpdQ==", + "dependencies": { + "@tanstack/query-core": "5.50.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "peer": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "devOptional": true + }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "devOptional": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "devOptional": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vanilla-extract/css": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.15.3.tgz", + "integrity": "sha512-mxoskDAxdQAspbkmQRxBvolUi1u1jnyy9WZGm+GeH8V2wwhEvndzl1QoK7w8JfA0WFevTxbev5d+i+xACZlPhA==", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@vanilla-extract/private": "^1.0.5", + "css-what": "^6.1.0", + "cssesc": "^3.0.0", + "csstype": "^3.0.7", + "dedent": "^1.5.3", + "deep-object-diff": "^1.1.9", + "deepmerge": "^4.2.2", + "media-query-parser": "^2.0.2", + "modern-ahocorasick": "^1.0.0", + "picocolors": "^1.0.0" + } + }, + "node_modules/@vanilla-extract/dynamic": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@vanilla-extract/dynamic/-/dynamic-2.1.1.tgz", + "integrity": "sha512-iqf736036ujEIKsIq28UsBEMaLC2vR2DhwKyrG3NDb/fRy9qL9FKl1TqTtBV4daU30Uh3saeik4vRzN8bzQMbw==", + "dependencies": { + "@vanilla-extract/private": "^1.0.5" + } + }, + "node_modules/@vanilla-extract/private": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.5.tgz", + "integrity": "sha512-6YXeOEKYTA3UV+RC8DeAjFk+/okoNz/h88R+McnzA2zpaVqTR/Ep+vszkWYlGBcMNO7vEkqbq5nT/JMMvhi+tw==" + }, + "node_modules/@vanilla-extract/recipes": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@vanilla-extract/recipes/-/recipes-0.5.3.tgz", + "integrity": "sha512-SPREq1NmaoKuvJeOV0pppOkwy3pWZUoDufsyQ6iHrbkHhAU7XQqG9o0iZSmg5JoVgDLIiOr9djQb0x9wuxig7A==", + "peerDependencies": { + "@vanilla-extract/css": "^1.0.0" + } + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.0.tgz", + "integrity": "sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==", + "dev": true, + "dependencies": { + "@swc/core": "^1.5.7" + }, + "peerDependencies": { + "vite": "^4 || ^5" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.0-alpha.15", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.0-alpha.15.tgz", + "integrity": "sha512-mt8z4Fm2WxfQYoQHPcKVjLQV6PgPqyKLbkCVY2cr5RSaamqCHjhKEpsFX66aL4D/7oYguuaUw9Bx03Vt0TpIIA==", + "dependencies": { + "@volar/source-map": "2.4.0-alpha.15" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.0-alpha.15", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.0-alpha.15.tgz", + "integrity": "sha512-8Htngw5TmBY4L3ClDqBGyfLhsB8EmoEXUH1xydyEtEoK0O6NX5ur4Jw8jgvscTlwzizyl/wsN1vn0cQXVbbXYg==" + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.31.tgz", + "integrity": "sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.31", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.31.tgz", + "integrity": "sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==", + "dependencies": { + "@vue/compiler-core": "3.4.31", + "@vue/shared": "3.4.31" + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.26.tgz", + "integrity": "sha512-/lt6SfQ3O1yDAhPsnLv9iSUgXd1dMHqUm/t3RctfqjuwQf1LnftZ414X3UBn6aXT4MiwXWtbNJ4Z0NZWwDWgJQ==", + "dependencies": { + "@volar/language-core": "~2.4.0-alpha.15", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.31.tgz", + "integrity": "sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==" + }, + "node_modules/@wallet-standard/app": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/app/-/app-1.0.1.tgz", + "integrity": "sha512-LnLYq2Vy2guTZ8GQKKSXQK3+FRGPil75XEdkZqE6fiLixJhZJoJa5hT7lXxwe0ykVTt9LEThdTbOpT7KadS26Q==", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/base/-/base-1.0.1.tgz", + "integrity": "sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w==", + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/core": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@wallet-standard/core/-/core-1.0.3.tgz", + "integrity": "sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==", + "dependencies": { + "@wallet-standard/app": "^1.0.1", + "@wallet-standard/base": "^1.0.1", + "@wallet-standard/features": "^1.0.3", + "@wallet-standard/wallet": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/features": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@wallet-standard/features/-/features-1.0.3.tgz", + "integrity": "sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/wallet": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/wallet/-/wallet-1.0.1.tgz", + "integrity": "sha512-qkhJeuQU2afQTZ02yMZE5SFc91Fo3hyFjFkpQglHudENNyiSG0oUKcIjky8X32xVSaumgTZSQUAzpXnCTWHzKQ==", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/code-red/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "peer": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deep-object-diff": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz", + "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.7.tgz", + "integrity": "sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gql.tada": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/gql.tada/-/gql.tada-1.8.1.tgz", + "integrity": "sha512-SKiWid+21JP1rCqXsWJr+A+fPcEUY2kz4XcQ6marzbMaFyXaf8LSLdYQPaZAFfqQ6tP2ZabG6Al7RFYByAsZwg==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5", + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/cli-utils": "1.5.0", + "@gql.tada/internal": "1.0.3" + }, + "bin": { + "gql-tada": "bin/cli.js", + "gql.tada": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/graphql": { + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", + "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "peer": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "peer": true + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "peer": true + }, + "node_modules/media-query-parser": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/media-query-parser/-/media-query-parser-2.0.2.tgz", + "integrity": "sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==", + "dependencies": { + "@babel/runtime": "^7.12.5" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + }, + "node_modules/modern-ahocorasick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-1.0.1.tgz", + "integrity": "sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanostores": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/nanostores/-/nanostores-0.9.5.tgz", + "integrity": "sha512-Z+p+g8E7yzaWwOe5gEUB2Ox0rCEeXWYIZWmYvw/ajNYX8DlXdMvMDj8DWfM/subqPAcsf8l8Td4iAwO1DeIIRQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/periscopic/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/svelte": { + "version": "4.2.18", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.18.tgz", + "integrity": "sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/svelte2tsx": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.13.tgz", + "integrity": "sha512-aObZ93/kGAiLXA/I/kP+x9FriZM+GboB/ReOIGmLNbVGEd2xC+aTCppm3mk1cc9I/z60VQf7b2QDxC3jOXu3yw==", + "dependencies": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + }, + "peerDependencies": { + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", + "typescript": "^4.9.4 || ^5.0.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/valibot": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-0.25.0.tgz", + "integrity": "sha512-cmD0ca15oyAbT75iYLNW6uU6doAeIwYfOshpXka/E1Bx4frzbkrgb7gvkI7K0YK/DVOksei4FfxWfRoBP3NFTg==" + }, + "node_modules/vite": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", + "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zustand": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.4.tgz", + "integrity": "sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg==", + "dependencies": { + "use-sync-external-store": "1.2.0" + }, + "engines": { + "node": ">=12.7.0" + }, + "peerDependencies": { + "@types/react": ">=16.8", + "immer": ">=9.0.6", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + } + } + } + }, + "dependencies": { + "@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "requires": {} + }, + "@0no-co/graphqlsp": { + "version": "1.12.11", + "resolved": "https://registry.npmjs.org/@0no-co/graphqlsp/-/graphqlsp-1.12.11.tgz", + "integrity": "sha512-vLja9r7L6BBXwxW86Wyi5z5hjTHscH7qoQooy+MXHkM9srBB6ZuesYZq5DQ/+SErQrFyaxeY+hwv2qBAksxriw==", + "requires": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + } + }, + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "peer": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==" + }, + "@babel/runtime": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", + "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "dev": true, + "optional": true + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true + }, + "@floating-ui/core": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.4.tgz", + "integrity": "sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==", + "requires": { + "@floating-ui/utils": "^0.2.4" + } + }, + "@floating-ui/dom": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.7.tgz", + "integrity": "sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==", + "requires": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.4" + } + }, + "@floating-ui/react-dom": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.1.tgz", + "integrity": "sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==", + "requires": { + "@floating-ui/dom": "^1.0.0" + } + }, + "@floating-ui/utils": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.4.tgz", + "integrity": "sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==" + }, + "@gql.tada/cli-utils": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@gql.tada/cli-utils/-/cli-utils-1.5.0.tgz", + "integrity": "sha512-BqbrcpKmE2FyM3tQgK3vzTIn1ghCOf+lH9MThPow7NbtS9K2+bH4u/1fPAhZMR1Zg5GExKsDvij+zLP64Ge6Ig==", + "requires": { + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/internal": "1.0.3", + "@vue/compiler-dom": "^3.4.23", + "@vue/language-core": "^2.0.17", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "svelte2tsx": "^0.7.6" + } + }, + "@gql.tada/internal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@gql.tada/internal/-/internal-1.0.3.tgz", + "integrity": "sha512-n52/OjAkoPsX4ZyEufFBnncjnv0UrbXKs4OUG66db8gxtV5437EkLjI4MTAI1M6dsaj+VLi0unpraPPPbFR59A==", + "requires": { + "@0no-co/graphql.web": "^1.0.5" + } + }, + "@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "requires": {} + }, + "@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "peer": true, + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "peer": true + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "peer": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "peer": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "peer": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@mysten/bcs": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-1.0.2.tgz", + "integrity": "sha512-haHT0km/9yIIe8lwo8gDFxGLnoxfRF4WmEVCz4lDXbEVQRsZkF0zB97kukiwMjDuFBaGVUhrOMCLz6td8tSMaQ==", + "requires": { + "bs58": "^5.0.0" + } + }, + "@mysten/dapp-kit": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/@mysten/dapp-kit/-/dapp-kit-0.14.10.tgz", + "integrity": "sha512-IjCRND4pgr8nr2fLg9XLEACtyxTO1Y4/Fl8/5taxZyhb09kTfS7hcpHkRw3xPmJ/b83DOQW3X0/l/d213k4OVQ==", + "requires": { + "@mysten/sui": "1.2.0", + "@mysten/wallet-standard": "0.12.10", + "@mysten/zksend": "0.9.10", + "@radix-ui/react-dialog": "^1.0.4", + "@radix-ui/react-dropdown-menu": "^2.0.5", + "@radix-ui/react-slot": "^1.0.2", + "@vanilla-extract/css": "^1.13.0", + "@vanilla-extract/dynamic": "^2.0.3", + "@vanilla-extract/recipes": "^0.5.0", + "clsx": "^2.0.0", + "zustand": "^4.4.1" + } + }, + "@mysten/sui": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@mysten/sui/-/sui-1.2.0.tgz", + "integrity": "sha512-USDOckZPGcwi2QAuKHEcieoVuW8Xgsm8vtKyXaRrhVLG2t2q3hCEigquiLXh7S3okBbD/P35xjvhR9PdUeqweA==", + "requires": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "1.0.2", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.7.0", + "graphql": "^16.8.1", + "tweetnacl": "^1.0.3", + "valibot": "^0.25.0" + } + }, + "@mysten/wallet-standard": { + "version": "0.12.10", + "resolved": "https://registry.npmjs.org/@mysten/wallet-standard/-/wallet-standard-0.12.10.tgz", + "integrity": "sha512-hwy9S63D/J9llrGHDRqmJTauUcAL2tKeiRut9NdePCe4BJphzowwZxTLZTsyam4fT2K2yvufyVZwp4Ij4FII6Q==", + "requires": { + "@mysten/sui": "1.2.0", + "@wallet-standard/core": "1.0.3" + } + }, + "@mysten/zksend": { + "version": "0.9.10", + "resolved": "https://registry.npmjs.org/@mysten/zksend/-/zksend-0.9.10.tgz", + "integrity": "sha512-ExKtKZT9bL3BKTQZww1zOv8gFDju/40rx2kqjO+qy2Ju+0Mc3jmtoR7NYpCdPK19DvvOl0eKGs6f2P+LN0+rlQ==", + "requires": { + "@mysten/sui": "1.2.0", + "@mysten/wallet-standard": "0.12.10", + "mitt": "^3.0.1", + "nanostores": "^0.9.3", + "valibot": "^0.25.0" + } + }, + "@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "requires": { + "@noble/hashes": "1.4.0" + } + }, + "@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@radix-ui/colors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/colors/-/colors-3.0.0.tgz", + "integrity": "sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==" + }, + "@radix-ui/number": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.0.tgz", + "integrity": "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==" + }, + "@radix-ui/primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz", + "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==" + }, + "@radix-ui/react-accessible-icon": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.1.0.tgz", + "integrity": "sha512-i9Zg4NOSXlfUva0agzI2DjWrvFJm9uO4L6CMW7nmMa5CIOOX/Yin894W7WwjodFQWPwe5kmAJ4JF33R8slKI2g==", + "requires": { + "@radix-ui/react-visually-hidden": "1.1.0" + } + }, + "@radix-ui/react-alert-dialog": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.1.tgz", + "integrity": "sha512-wmCoJwj7byuVuiLKqDLlX7ClSUU0vd9sdCeM+2Ls+uf13+cpSJoMgwysHq1SGVVkJj5Xn0XWi1NoRCdkMpr6Mw==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dialog": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" + } + }, + "@radix-ui/react-arrow": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", + "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", + "requires": { + "@radix-ui/react-primitive": "2.0.0" + } + }, + "@radix-ui/react-aspect-ratio": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.0.tgz", + "integrity": "sha512-dP87DM/Y7jFlPgUZTlhx6FF5CEzOiaxp2rBCKlaXlpH5Ip/9Fg5zZ9lDOQ5o/MOfUlf36eak14zoWYpgcgGoOg==", + "requires": { + "@radix-ui/react-primitive": "2.0.0" + } + }, + "@radix-ui/react-avatar": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.0.tgz", + "integrity": "sha512-Q/PbuSMk/vyAd/UoIShVGZ7StHHeRFYU7wXmi5GV+8cLXflZAEpHL/F697H1klrzxKXNtZ97vWiC0q3RKUH8UA==", + "requires": { + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + } + }, + "@radix-ui/react-checkbox": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.1.tgz", + "integrity": "sha512-0i/EKJ222Afa1FE0C6pNJxDq1itzcl3HChE9DwskA4th4KRse8ojx8a1nVcOjwJdbpDLcz7uol77yYnQNMHdKw==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + } + }, + "@radix-ui/react-collection": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", + "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", + "requires": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" + } + }, + "@radix-ui/react-compose-refs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", + "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", + "requires": {} + }, + "@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "requires": {} + }, + "@radix-ui/react-context-menu": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.2.1.tgz", + "integrity": "sha512-wvMKKIeb3eOrkJ96s722vcidZ+2ZNfcYZWBPRHIB1VWrF+fiF851Io6LX0kmK5wTDQFKdulCCKJk2c3SBaQHvA==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-menu": "2.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + } + }, + "@radix-ui/react-dialog": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.1.tgz", + "integrity": "sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + } + }, + "@radix-ui/react-direction": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", + "requires": {} + }, + "@radix-ui/react-dismissable-layer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz", + "integrity": "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + } + }, + "@radix-ui/react-dropdown-menu": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.1.tgz", + "integrity": "sha512-y8E+x9fBq9qvteD2Zwa4397pUVhYsh9iq44b5RD5qu1GMJWBCBuVg1hMyItbc6+zH00TxGRqd9Iot4wzf3OoBQ==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-menu": "2.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + } + }, + "@radix-ui/react-focus-guards": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.0.tgz", + "integrity": "sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==", + "requires": {} + }, + "@radix-ui/react-focus-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", + "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", + "requires": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0" + } + }, + "@radix-ui/react-form": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-form/-/react-form-0.0.3.tgz", + "integrity": "sha512-kgE+Z/haV6fxE5WqIXj05KkaXa3OkZASoTDy25yX2EIp/x0c54rOH/vFr5nOZTg7n7T1z8bSyXmiVIFP9bbhPQ==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-label": "2.0.2", + "@radix-ui/react-primitive": "1.0.3" + }, + "dependencies": { + "@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-context": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + } + }, + "@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + } + }, + "@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + } + }, + "@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "requires": { + "@babel/runtime": "^7.13.10" + } + } + } + }, + "@radix-ui/react-hover-card": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.1.tgz", + "integrity": "sha512-IwzAOP97hQpDADYVKrEEHUH/b2LA+9MgB0LgdmnbFO2u/3M5hmEofjjr2M6CyzUblaAqJdFm6B7oFtU72DPXrA==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + } + }, + "@radix-ui/react-icons": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz", + "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==", + "requires": {} + }, + "@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "requires": { + "@radix-ui/react-use-layout-effect": "1.1.0" + } + }, + "@radix-ui/react-label": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.0.2.tgz", + "integrity": "sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "dependencies": { + "@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + } + }, + "@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + } + } + } + }, + "@radix-ui/react-menu": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.1.tgz", + "integrity": "sha512-oa3mXRRVjHi6DZu/ghuzdylyjaMXLymx83irM7hTxutQbD+7IhPKdMdRHD26Rm+kHRrWcrUkkRPv5pd47a2xFQ==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + } + }, + "@radix-ui/react-popover": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.1.tgz", + "integrity": "sha512-3y1A3isulwnWhvTTwmIreiB8CF4L+qRjZnK1wYLO7pplddzXKby/GnZ2M7OZY3qgnl6p9AodUIHRYGXNah8Y7g==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + } + }, + "@radix-ui/react-popper": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz", + "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==", + "requires": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" + } + }, + "@radix-ui/react-portal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz", + "integrity": "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==", + "requires": { + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + } + }, + "@radix-ui/react-presence": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.0.tgz", + "integrity": "sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==", + "requires": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + } + }, + "@radix-ui/react-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", + "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "requires": { + "@radix-ui/react-slot": "1.1.0" + } + }, + "@radix-ui/react-radio-group": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.2.0.tgz", + "integrity": "sha512-yv+oiLaicYMBpqgfpSPw6q+RyXlLdIpQWDHZbUKURxe+nEh53hFXPPlfhfQQtYkS5MMK/5IWIa76SksleQZSzw==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + } + }, + "@radix-ui/react-roving-focus": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz", + "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + } + }, + "@radix-ui/react-scroll-area": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.1.0.tgz", + "integrity": "sha512-9ArIZ9HWhsrfqS765h+GZuLoxaRHD/j0ZWOWilsCvYTpYJp8XwCqNG7Dt9Nu/TItKOdgLGkOPCodQvDc+UMwYg==", + "requires": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + } + }, + "@radix-ui/react-select": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.1.tgz", + "integrity": "sha512-8iRDfyLtzxlprOo9IicnzvpsO1wNCkuwzzCM+Z5Rb5tNOpCdMvcc2AkzX0Fz+Tz9v6NJ5B/7EEgyZveo4FBRfQ==", + "requires": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + } + }, + "@radix-ui/react-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.0.tgz", + "integrity": "sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==", + "requires": { + "@radix-ui/react-primitive": "2.0.0" + } + }, + "@radix-ui/react-slider": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.2.0.tgz", + "integrity": "sha512-dAHCDA4/ySXROEPaRtaMV5WHL8+JB/DbtyTbJjYkY0RXmKMO2Ln8DFZhywG5/mVQ4WqHDBc8smc14yPXPqZHYA==", + "requires": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + } + }, + "@radix-ui/react-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", + "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", + "requires": { + "@radix-ui/react-compose-refs": "1.1.0" + } + }, + "@radix-ui/react-switch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.0.tgz", + "integrity": "sha512-OBzy5WAj641k0AOSpKQtreDMe+isX0MQJ1IVyF03ucdF3DunOnROVrjWs8zsXUxC3zfZ6JL9HFVCUlMghz9dJw==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + } + }, + "@radix-ui/react-tabs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.0.tgz", + "integrity": "sha512-bZgOKB/LtZIij75FSuPzyEti/XBhJH52ExgtdVqjCIh+Nx/FW+LhnbXtbCzIi34ccyMsyOja8T0thCzoHFXNKA==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + } + }, + "@radix-ui/react-tooltip": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.2.tgz", + "integrity": "sha512-9XRsLwe6Yb9B/tlnYCPVUd/TFS4J7HuOZW345DCeC6vKIxQGMZdx21RK4VoZauPD5frgkXTYVS5y90L+3YBn4w==", + "requires": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0" + } + }, + "@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "requires": {} + }, + "@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "requires": { + "@radix-ui/react-use-callback-ref": "1.1.0" + } + }, + "@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "requires": { + "@radix-ui/react-use-callback-ref": "1.1.0" + } + }, + "@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "requires": {} + }, + "@radix-ui/react-use-previous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz", + "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==", + "requires": {} + }, + "@radix-ui/react-use-rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "requires": { + "@radix-ui/rect": "1.1.0" + } + }, + "@radix-ui/react-use-size": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", + "requires": { + "@radix-ui/react-use-layout-effect": "1.1.0" + } + }, + "@radix-ui/react-visually-hidden": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz", + "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==", + "requires": { + "@radix-ui/react-primitive": "2.0.0" + } + }, + "@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==" + }, + "@radix-ui/themes": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/themes/-/themes-2.0.3.tgz", + "integrity": "sha512-yaXQ8aWT2P1CQ0Xe6YCRD9HXsfMTvKkrIYkrc4aitCzhGTLS0sjtTqKmrxIWMVA+3DIbEuG9K/8aAMRJBhep8g==", + "requires": { + "@radix-ui/colors": "^3.0.0", + "@radix-ui/primitive": "^1.0.1", + "@radix-ui/react-accessible-icon": "^1.0.3", + "@radix-ui/react-alert-dialog": "^1.0.5", + "@radix-ui/react-aspect-ratio": "^1.0.3", + "@radix-ui/react-avatar": "^1.0.4", + "@radix-ui/react-checkbox": "^1.0.4", + "@radix-ui/react-context-menu": "^2.1.5", + "@radix-ui/react-dialog": "^1.0.5", + "@radix-ui/react-direction": "^1.0.1", + "@radix-ui/react-dropdown-menu": "^2.0.6", + "@radix-ui/react-form": "^0.0.3", + "@radix-ui/react-hover-card": "^1.0.7", + "@radix-ui/react-popover": "^1.0.7", + "@radix-ui/react-portal": "^1.0.4", + "@radix-ui/react-radio-group": "^1.1.3", + "@radix-ui/react-scroll-area": "^1.0.5", + "@radix-ui/react-select": "^2.0.0", + "@radix-ui/react-separator": "^1.0.3", + "@radix-ui/react-slider": "^1.1.2", + "@radix-ui/react-slot": "^1.0.2", + "@radix-ui/react-switch": "^1.0.3", + "@radix-ui/react-tabs": "^1.0.4", + "@radix-ui/react-tooltip": "^1.0.7", + "@radix-ui/react-use-callback-ref": "^1.0.1", + "@radix-ui/react-visually-hidden": "^1.0.3", + "classnames": "^2.3.2" + } + }, + "@scure/base": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.7.tgz", + "integrity": "sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==" + }, + "@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "requires": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "requires": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "@swc/core": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.6.13.tgz", + "integrity": "sha512-eailUYex6fkfaQTev4Oa3mwn0/e3mQU4H8y1WPuImYQESOQDtVrowwUGDSc19evpBbHpKtwM+hw8nLlhIsF+Tw==", + "dev": true, + "requires": { + "@swc/core-darwin-arm64": "1.6.13", + "@swc/core-darwin-x64": "1.6.13", + "@swc/core-linux-arm-gnueabihf": "1.6.13", + "@swc/core-linux-arm64-gnu": "1.6.13", + "@swc/core-linux-arm64-musl": "1.6.13", + "@swc/core-linux-x64-gnu": "1.6.13", + "@swc/core-linux-x64-musl": "1.6.13", + "@swc/core-win32-arm64-msvc": "1.6.13", + "@swc/core-win32-ia32-msvc": "1.6.13", + "@swc/core-win32-x64-msvc": "1.6.13", + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.9" + } + }, + "@swc/core-darwin-arm64": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.6.13.tgz", + "integrity": "sha512-SOF4buAis72K22BGJ3N8y88mLNfxLNprTuJUpzikyMGrvkuBFNcxYtMhmomO0XHsgLDzOJ+hWzcgjRNzjMsUcQ==", + "dev": true, + "optional": true + }, + "@swc/core-darwin-x64": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.6.13.tgz", + "integrity": "sha512-AW8akFSC+tmPE6YQQvK9S2A1B8pjnXEINg+gGgw0KRUUXunvu1/OEOeC5L2Co1wAwhD7bhnaefi06Qi9AiwOag==", + "dev": true, + "optional": true + }, + "@swc/core-linux-arm-gnueabihf": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.6.13.tgz", + "integrity": "sha512-f4gxxvDXVUm2HLYXRd311mSrmbpQF2MZ4Ja6XCQz1hWAxXdhRl1gpnZ+LH/xIfGSwQChrtLLVrkxdYUCVuIjFg==", + "dev": true, + "optional": true + }, + "@swc/core-linux-arm64-gnu": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.6.13.tgz", + "integrity": "sha512-Nf/eoW2CbG8s+9JoLtjl9FByBXyQ5cjdBsA4efO7Zw4p+YSuXDgc8HRPC+E2+ns0praDpKNZtLvDtmF2lL+2Gg==", + "dev": true, + "optional": true + }, + "@swc/core-linux-arm64-musl": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.6.13.tgz", + "integrity": "sha512-2OysYSYtdw79prJYuKIiux/Gj0iaGEbpS2QZWCIY4X9sGoETJ5iMg+lY+YCrIxdkkNYd7OhIbXdYFyGs/w5LDg==", + "dev": true, + "optional": true + }, + "@swc/core-linux-x64-gnu": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.6.13.tgz", + "integrity": "sha512-PkR4CZYJNk5hcd2+tMWBpnisnmYsUzazI1O5X7VkIGFcGePTqJ/bWlfUIVVExWxvAI33PQFzLbzmN5scyIUyGQ==", + "dev": true, + "optional": true + }, + "@swc/core-linux-x64-musl": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.6.13.tgz", + "integrity": "sha512-OdsY7wryTxCKwGQcwW9jwWg3cxaHBkTTHi91+5nm7hFPpmZMz1HivJrWAMwVE7iXFw+M4l6ugB/wCvpYrUAAjA==", + "dev": true, + "optional": true + }, + "@swc/core-win32-arm64-msvc": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.6.13.tgz", + "integrity": "sha512-ap6uNmYjwk9M/+bFEuWRNl3hq4VqgQ/Lk+ID/F5WGqczNr0L7vEf+pOsRAn0F6EV+o/nyb3ePt8rLhE/wjHpPg==", + "dev": true, + "optional": true + }, + "@swc/core-win32-ia32-msvc": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.6.13.tgz", + "integrity": "sha512-IJ8KH4yIUHTnS/U1jwQmtbfQals7zWPG0a9hbEfIr4zI0yKzjd83lmtS09lm2Q24QBWOCFGEEbuZxR4tIlvfzA==", + "dev": true, + "optional": true + }, + "@swc/core-win32-x64-msvc": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.6.13.tgz", + "integrity": "sha512-f6/sx6LMuEnbuxtiSL/EkR0Y6qUHFw1XVrh6rwzKXptTipUdOY+nXpKoh+1UsBm/r7H0/5DtOdrn3q5ZHbFZjQ==", + "dev": true, + "optional": true + }, + "@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true + }, + "@swc/types": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.9.tgz", + "integrity": "sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg==", + "dev": true, + "requires": { + "@swc/counter": "^0.1.3" + } + }, + "@tanstack/query-core": { + "version": "5.50.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.50.1.tgz", + "integrity": "sha512-lpfhKPrJlyV2DSVcQb/HuozH3Av3kws4ge22agx+lNGpFkS4vLZ7St0l3GLwlAD+bqB+qXGex3JdRKUNtMviEQ==" + }, + "@tanstack/react-query": { + "version": "5.50.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.50.1.tgz", + "integrity": "sha512-s0DW3rVBDPReDDovUjVqItVa3R2nPfUANK9nqGvarO2DwTiY9U4EBTsqizMxItRCoGgK5apeM7D3mxlHrSKpdQ==", + "requires": { + "@tanstack/query-core": "5.50.1" + } + }, + "@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "peer": true + }, + "@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "devOptional": true + }, + "@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "devOptional": true, + "requires": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "devOptional": true, + "requires": { + "@types/react": "*" + } + }, + "@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + } + }, + "@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + } + }, + "@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + } + }, + "@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + } + }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "@vanilla-extract/css": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.15.3.tgz", + "integrity": "sha512-mxoskDAxdQAspbkmQRxBvolUi1u1jnyy9WZGm+GeH8V2wwhEvndzl1QoK7w8JfA0WFevTxbev5d+i+xACZlPhA==", + "requires": { + "@emotion/hash": "^0.9.0", + "@vanilla-extract/private": "^1.0.5", + "css-what": "^6.1.0", + "cssesc": "^3.0.0", + "csstype": "^3.0.7", + "dedent": "^1.5.3", + "deep-object-diff": "^1.1.9", + "deepmerge": "^4.2.2", + "media-query-parser": "^2.0.2", + "modern-ahocorasick": "^1.0.0", + "picocolors": "^1.0.0" + } + }, + "@vanilla-extract/dynamic": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@vanilla-extract/dynamic/-/dynamic-2.1.1.tgz", + "integrity": "sha512-iqf736036ujEIKsIq28UsBEMaLC2vR2DhwKyrG3NDb/fRy9qL9FKl1TqTtBV4daU30Uh3saeik4vRzN8bzQMbw==", + "requires": { + "@vanilla-extract/private": "^1.0.5" + } + }, + "@vanilla-extract/private": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.5.tgz", + "integrity": "sha512-6YXeOEKYTA3UV+RC8DeAjFk+/okoNz/h88R+McnzA2zpaVqTR/Ep+vszkWYlGBcMNO7vEkqbq5nT/JMMvhi+tw==" + }, + "@vanilla-extract/recipes": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@vanilla-extract/recipes/-/recipes-0.5.3.tgz", + "integrity": "sha512-SPREq1NmaoKuvJeOV0pppOkwy3pWZUoDufsyQ6iHrbkHhAU7XQqG9o0iZSmg5JoVgDLIiOr9djQb0x9wuxig7A==", + "requires": {} + }, + "@vitejs/plugin-react-swc": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.0.tgz", + "integrity": "sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==", + "dev": true, + "requires": { + "@swc/core": "^1.5.7" + } + }, + "@volar/language-core": { + "version": "2.4.0-alpha.15", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.0-alpha.15.tgz", + "integrity": "sha512-mt8z4Fm2WxfQYoQHPcKVjLQV6PgPqyKLbkCVY2cr5RSaamqCHjhKEpsFX66aL4D/7oYguuaUw9Bx03Vt0TpIIA==", + "requires": { + "@volar/source-map": "2.4.0-alpha.15" + } + }, + "@volar/source-map": { + "version": "2.4.0-alpha.15", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.0-alpha.15.tgz", + "integrity": "sha512-8Htngw5TmBY4L3ClDqBGyfLhsB8EmoEXUH1xydyEtEoK0O6NX5ur4Jw8jgvscTlwzizyl/wsN1vn0cQXVbbXYg==" + }, + "@vue/compiler-core": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.31.tgz", + "integrity": "sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==", + "requires": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.31", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "@vue/compiler-dom": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.31.tgz", + "integrity": "sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==", + "requires": { + "@vue/compiler-core": "3.4.31", + "@vue/shared": "3.4.31" + } + }, + "@vue/language-core": { + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.26.tgz", + "integrity": "sha512-/lt6SfQ3O1yDAhPsnLv9iSUgXd1dMHqUm/t3RctfqjuwQf1LnftZ414X3UBn6aXT4MiwXWtbNJ4Z0NZWwDWgJQ==", + "requires": { + "@volar/language-core": "~2.4.0-alpha.15", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + } + }, + "@vue/shared": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.31.tgz", + "integrity": "sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==" + }, + "@wallet-standard/app": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/app/-/app-1.0.1.tgz", + "integrity": "sha512-LnLYq2Vy2guTZ8GQKKSXQK3+FRGPil75XEdkZqE6fiLixJhZJoJa5hT7lXxwe0ykVTt9LEThdTbOpT7KadS26Q==", + "requires": { + "@wallet-standard/base": "^1.0.1" + } + }, + "@wallet-standard/base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/base/-/base-1.0.1.tgz", + "integrity": "sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w==" + }, + "@wallet-standard/core": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@wallet-standard/core/-/core-1.0.3.tgz", + "integrity": "sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==", + "requires": { + "@wallet-standard/app": "^1.0.1", + "@wallet-standard/base": "^1.0.1", + "@wallet-standard/features": "^1.0.3", + "@wallet-standard/wallet": "^1.0.1" + } + }, + "@wallet-standard/features": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@wallet-standard/features/-/features-1.0.3.tgz", + "integrity": "sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==", + "requires": { + "@wallet-standard/base": "^1.0.1" + } + }, + "@wallet-standard/wallet": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/wallet/-/wallet-1.0.1.tgz", + "integrity": "sha512-qkhJeuQU2afQTZ02yMZE5SFc91Fo3hyFjFkpQglHudENNyiSG0oUKcIjky8X32xVSaumgTZSQUAzpXnCTWHzKQ==", + "requires": { + "@wallet-standard/base": "^1.0.1" + } + }, + "acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==" + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "requires": { + "tslib": "^2.0.0" + } + }, + "aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "peer": true, + "requires": { + "dequal": "^2.0.3" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "peer": true, + "requires": { + "dequal": "^2.0.3" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "requires": { + "base-x": "^4.0.0" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" + }, + "clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==" + }, + "code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "peer": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + }, + "dependencies": { + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "requires": { + "@types/estree": "^1.0.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "peer": true, + "requires": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "requires": {} + }, + "dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==" + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deep-object-diff": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz", + "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==" + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==" + }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "peer": true + }, + "detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + }, + "esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "requires": {} + }, + "eslint-plugin-react-refresh": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.7.tgz", + "integrity": "sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==", + "dev": true, + "requires": {} + }, + "eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true + }, + "espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "requires": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + } + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "requires": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==" + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gql.tada": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/gql.tada/-/gql.tada-1.8.1.tgz", + "integrity": "sha512-SKiWid+21JP1rCqXsWJr+A+fPcEUY2kz4XcQ6marzbMaFyXaf8LSLdYQPaZAFfqQ6tP2ZabG6Al7RFYByAsZwg==", + "requires": { + "@0no-co/graphql.web": "^1.0.5", + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/cli-utils": "1.5.0", + "@gql.tada/internal": "1.0.3" + } + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "graphql": { + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", + "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "peer": true, + "requires": { + "@types/estree": "*" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "peer": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "peer": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "peer": true + }, + "media-query-parser": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/media-query-parser/-/media-query-parser-2.0.2.tgz", + "integrity": "sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==", + "requires": { + "@babel/runtime": "^7.12.5" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + }, + "modern-ahocorasick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-1.0.1.tgz", + "integrity": "sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" + }, + "nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true + }, + "nanostores": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/nanostores/-/nanostores-0.9.5.tgz", + "integrity": "sha512-Z+p+g8E7yzaWwOe5gEUB2Ox0rCEeXWYIZWmYvw/ajNYX8DlXdMvMDj8DWfM/subqPAcsf8l8Td4iAwO1DeIIRQ==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "peer": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + }, + "dependencies": { + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "requires": { + "@types/estree": "^1.0.0" + } + } + } + }, + "picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "postcss": { + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "dev": true, + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "dev": true + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + } + }, + "react-remove-scroll": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", + "requires": { + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + } + }, + "react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "requires": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + } + }, + "react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "requires": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + } + }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "svelte": { + "version": "4.2.18", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.18.tgz", + "integrity": "sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==", + "peer": true, + "requires": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "dependencies": { + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "peer": true, + "requires": { + "@types/estree": "^1.0.0" + } + } + } + }, + "svelte2tsx": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.13.tgz", + "integrity": "sha512-aObZ93/kGAiLXA/I/kP+x9FriZM+GboB/ReOIGmLNbVGEd2xC+aTCppm3mk1cc9I/z60VQf7b2QDxC3jOXu3yw==", + "requires": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "requires": {} + }, + "tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typescript": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "requires": { + "tslib": "^2.0.0" + } + }, + "use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "requires": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + } + }, + "use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "requires": {} + }, + "valibot": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-0.25.0.tgz", + "integrity": "sha512-cmD0ca15oyAbT75iYLNW6uU6doAeIwYfOshpXka/E1Bx4frzbkrgb7gvkI7K0YK/DVOksei4FfxWfRoBP3NFTg==" + }, + "vite": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", + "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", + "dev": true, + "requires": { + "esbuild": "^0.18.10", + "fsevents": "~2.3.2", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + } + }, + "vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + }, + "zustand": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.4.tgz", + "integrity": "sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg==", + "requires": { + "use-sync-external-store": "1.2.0" + } + } + } +} diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/package.json b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/package.json new file mode 100644 index 000000000..cea9903f2 --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/package.json @@ -0,0 +1,35 @@ +{ + "name": "hello-dapp", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@mysten/dapp-kit": "0.14.10", + "@mysten/sui": "1.2.0", + "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^2.0.0", + "@tanstack/react-query": "^5.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "eslint": "^8.45.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "prettier": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^4.4.4" + } +} \ No newline at end of file diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/prettier.config.cjs b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/prettier.config.cjs new file mode 100644 index 000000000..c07541106 --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/prettier.config.cjs @@ -0,0 +1,4 @@ +// eslint-disable-next-line no-undef +module.exports = { + proseWrap: "always", +}; diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/App.tsx b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/App.tsx new file mode 100644 index 000000000..dd5506c95 --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/App.tsx @@ -0,0 +1,61 @@ +import { ConnectButton, useCurrentAccount } from "@mysten/dapp-kit"; +import { isValidSuiObjectId } from "@mysten/sui/utils"; +import { Box, Container, Flex, Heading } from "@radix-ui/themes"; +import { useState } from "react"; +import { Counter } from "./Counter"; +import { CreateCounter } from "./CreateCounter"; + +function App() { + const currentAccount = useCurrentAccount(); + const [counterId, setCounter] = useState(() => { + const hash = window.location.hash.slice(1); + return isValidSuiObjectId(hash) ? hash : null; + }); + + return ( + <> + + + dApp Starter Template + + + + + + + + + {currentAccount ? ( + counterId ? ( + + ) : ( + { + window.location.hash = id; + setCounter(id); + }} + /> + ) + ) : ( + Please connect your wallet + )} + + + + ); +} + +export default App; diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/Counter.tsx b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/Counter.tsx new file mode 100644 index 000000000..bbd54cfd2 --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/Counter.tsx @@ -0,0 +1,87 @@ +import { + useCurrentAccount, + useSignAndExecuteTransaction, + useSuiClient, + useSuiClientQuery, +} from "@mysten/dapp-kit"; +import type { SuiObjectData } from "@mysten/sui/client"; +import { Transaction } from "@mysten/sui/transactions"; +import { Button, Flex, Heading, Text } from "@radix-ui/themes"; +import { useNetworkVariable } from "./networkConfig"; + +export function Counter({ id }: { id: string }) { + const client = useSuiClient(); + const currentAccount = useCurrentAccount(); + const counterPackageId = useNetworkVariable("counterPackageId"); + const { mutate: signAndExecute } = useSignAndExecuteTransaction(); + const { data, isPending, error, refetch } = useSuiClientQuery("getObject", { + id, + options: { + showContent: true, + showOwner: true, + }, + }); + + const executeMoveCall = (method: "increment" | "reset") => { + const tx = new Transaction(); + + if (method === "reset") { + tx.moveCall({ + arguments: [tx.object(id), tx.pure.u64(0)], + target: `${counterPackageId}::counter::set_value`, + }); + } else { + tx.moveCall({ + arguments: [tx.object(id)], + target: `${counterPackageId}::counter::increment`, + }); + } + + signAndExecute( + { + transaction: tx, + }, + { + onSuccess: (tx) => { + client.waitForTransaction({ digest: tx.digest }).then(() => { + refetch(); + }); + }, + }, + ); + }; + + if (isPending) return Loading...; + + if (error) return Error: {error.message}; + + if (!data.data) return Not found; + + const ownedByCurrentAccount = + getCounterFields(data.data)?.owner === currentAccount?.address; + + return ( + <> + Counter {id} + + + Count: {getCounterFields(data.data)?.value} + + + {ownedByCurrentAccount ? ( + + ) : null} + + + + ); +} +function getCounterFields(data: SuiObjectData) { + if (data.content?.dataType !== "moveObject") { + return null; + } + + return data.content.fields as { value: number; owner: string }; +} diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/CreateCounter.tsx b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/CreateCounter.tsx new file mode 100644 index 000000000..38dc3f93f --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/CreateCounter.tsx @@ -0,0 +1,60 @@ +import { Transaction } from "@mysten/sui/transactions"; +import { Button, Container } from "@radix-ui/themes"; +import { useSignAndExecuteTransaction, useSuiClient } from "@mysten/dapp-kit"; +import { useNetworkVariable } from "./networkConfig"; + +export function CreateCounter({ + onCreated, +}: { + onCreated: (id: string) => void; +}) { + const client = useSuiClient(); + const counterPackageId = useNetworkVariable("counterPackageId"); + const { mutate: signAndExecute } = useSignAndExecuteTransaction(); + + return ( + + + + ); + + function create() { + const tx = new Transaction(); + + tx.moveCall({ + arguments: [], + target: `${counterPackageId}::counter::create`, + }); + + signAndExecute( + { + transaction: tx, + }, + { + onSuccess: ({ digest }) => { + client + .waitForTransaction({ + digest: digest, + options: { + showEffects: true, + }, + }) + .then((tx) => { + const objectId = tx.effects?.created?.[0]?.reference?.objectId; + + if (objectId) { + onCreated(objectId); + } + }); + }, + }, + ); + } +} diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/constants.ts b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/constants.ts new file mode 100644 index 000000000..4a7d4b397 --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/constants.ts @@ -0,0 +1,3 @@ +export const DEVNET_COUNTER_PACKAGE_ID = "0xTODO"; +export const TESTNET_COUNTER_PACKAGE_ID = "0x26bc718fb0cfd4897b7d7ca321814eca33215afc54ddffed7ebe1c981bf6f918"; +export const MAINNET_COUNTER_PACKAGE_ID = "0xTODO"; diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/main.tsx b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/main.tsx new file mode 100644 index 000000000..55f323a5d --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/main.tsx @@ -0,0 +1,26 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "@mysten/dapp-kit/dist/index.css"; +import "@radix-ui/themes/styles.css"; + +import { SuiClientProvider, WalletProvider } from "@mysten/dapp-kit"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { Theme } from "@radix-ui/themes"; +import App from "./App.tsx"; +import { networkConfig } from "./networkConfig.ts"; + +const queryClient = new QueryClient(); + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + + + + + + + , +); diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/networkConfig.ts b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/networkConfig.ts new file mode 100644 index 000000000..7b6f8b73d --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/networkConfig.ts @@ -0,0 +1,31 @@ +import { getFullnodeUrl } from "@mysten/sui/client"; +import { + DEVNET_COUNTER_PACKAGE_ID, + TESTNET_COUNTER_PACKAGE_ID, + MAINNET_COUNTER_PACKAGE_ID, +} from "./constants.ts"; +import { createNetworkConfig } from "@mysten/dapp-kit"; + +const { networkConfig, useNetworkVariable, useNetworkVariables } = + createNetworkConfig({ + devnet: { + url: getFullnodeUrl("devnet"), + variables: { + counterPackageId: DEVNET_COUNTER_PACKAGE_ID, + }, + }, + testnet: { + url: getFullnodeUrl("testnet"), + variables: { + counterPackageId: TESTNET_COUNTER_PACKAGE_ID, + }, + }, + mainnet: { + url: getFullnodeUrl("mainnet"), + variables: { + counterPackageId: MAINNET_COUNTER_PACKAGE_ID, + }, + }, + }); + +export { useNetworkVariable, useNetworkVariables, networkConfig }; diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/vite-env.d.ts b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/tsconfig.json b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/tsconfig.json new file mode 100644 index 000000000..a7fc6fbf2 --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/tsconfig.node.json b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/tsconfig.node.json new file mode 100644 index 000000000..42872c59f --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/tutorial/bootcamp/01_hello/hello_move/hello-dapp/vite.config.ts b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/vite.config.ts new file mode 100644 index 000000000..d366e8c8d --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/hello-dapp/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); diff --git a/tutorial/bootcamp/01_hello/hello_move/sources/hello.move b/tutorial/bootcamp/01_hello/hello_move/sources/hello.move new file mode 100644 index 000000000..c0f866d00 --- /dev/null +++ b/tutorial/bootcamp/01_hello/hello_move/sources/hello.move @@ -0,0 +1,19 @@ +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"move"), + }; + transfer(hello_move, sender(ctx)); + } +} diff --git a/tutorial/bootcamp/01_hello/readme.md b/tutorial/bootcamp/01_hello/readme.md new file mode 100644 index 000000000..7b28ccd1b --- /dev/null +++ b/tutorial/bootcamp/01_hello/readme.md @@ -0,0 +1,126 @@ +## 学习资源 +- [PPT](https://docs.google.com/presentation/d/1s3zfVe_yHz4cDI44hKh5bc5TlYL5GmdiAFB-buj-bnk) +- [什么是Move](https://mp.weixin.qq.com/s/MEZXP8l8x67lBDZWQsgg8g) +- [什么是智能合约](https://mp.weixin.qq.com/s/5yQuNUsa0lt-krJint_lkw) +- [钱包和区块链浏览器](https://mp.weixin.qq.com/s/9Zc2u5l8c1LiatNNEkN_Ow) + +# 运行前提 + +## 安装好Sui Cli (move编译器) +- [sui安装文档](https://docs.sui.io/guides/developer/getting-started/sui-install) +- [预编译的下载包](https://github.com/MystenLabs/sui/releases) + +### MacOS 包工具安装 +* [安装brew](https://brew.sh/) + +```shell +brew install sui +``` + +### Windows 包工具安装 +* [安装 choco](https://chocolatey.org/) + +```shell +choco install sui +``` + + +### docker 方式的安装 +pull 镜像 `devnet` 可以换成 `testnet` `mainnet` +```shell + docker pull mysten/sui-tools:devnet +``` +运行镜像 +```shell + docker run --name suidevcontainer -itd mysten/sui-tools:devnet + + docker exec -it suidevcontainer bash +``` + +## 如何验证自己是否安装好 +```shell +sui --version +``` + +输出 +```shell +sui 1.26.0 +``` + + +## 安装Sui钱包 +* [Sui Wallet](https://chrome.google.com/webstore/detail/opcgpfmipidbgpenhmajoajpbobppdil) | [教程-如何开始使用Sui钱包](https://mp.weixin.qq.com/s/-_hCFUO-62hv9amPzmJdeg) +* [Suiet Wallet](https://chrome.google.com/webstore/detail/suiet-sui-wallet/khpkpbbcccdmmclmpigdgddabeilkdpd) | [教程-如何获取Suiet钱包](https://suiet.app/blog/what-is-suiet-sui-wallet-how-to-use-sui-wallet) +* [surf](https://surf.tech) +* [Ethos Wallet](https://ethoswallet.xyz/) + +## 熟悉区块链浏览器 +- https://suiscan.xyz/ +- https://suivision.xyz/ + +## 获取测试网 SUI +- [水龙头1](https://github.com/uvd/sui-faucet) +- [水龙头2](https://docs.sui.io/guides/developer/getting-started/get-coins) + +```shell +sui client addresses +``` + +```shell + +curl --location --request POST 'https://faucet.testnet.sui.io/gas' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "FixedAmountRequest": { + "recipient": "0x1fdcbc218b29c5d91eb445781016a24658c45825a8469b76f0efb289ccc89f86" + } +}' +``` + + +### 创建项目 + +```shell +sui move new hello_move +``` + +```move +module hello_move::hello { + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"move"), + }; + transfer(hello_move, sender(ctx)); + } +} +``` + + +### 发布上链 +```shell +sui client publish +``` + + +### hello dapp +https://sdk.mystenlabs.com/dapp-kit/create-dapp + +```shell +npm create @mysten/dapp@0.3.10 +``` + +# 提交作业 hello move的作业 20人民币等值SUI的奖励 +- [let's move](https://github.com/move-cn/letsmove) + + diff --git a/tutorial/bootcamp/01_hello/sui_cli.md b/tutorial/bootcamp/01_hello/sui_cli.md new file mode 100644 index 000000000..e69de29bb diff --git a/tutorial/bootcamp/02_var_primitive_operator/hello_hello/Move.toml b/tutorial/bootcamp/02_var_primitive_operator/hello_hello/Move.toml new file mode 100644 index 000000000..11d2a506c --- /dev/null +++ b/tutorial/bootcamp/02_var_primitive_operator/hello_hello/Move.toml @@ -0,0 +1,38 @@ +[package] +name = "hello_hello" +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/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] +hello_hello = "0x0" +hello1 = "0xff71ff2dfa9f5ba0176fb40fdda9d13d738ec97143b46bdfa1addc09e2263b02" + +# 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/tutorial/bootcamp/02_var_primitive_operator/hello_hello/sources/hello_hello.move b/tutorial/bootcamp/02_var_primitive_operator/hello_hello/sources/hello_hello.move new file mode 100644 index 000000000..92e4bf827 --- /dev/null +++ b/tutorial/bootcamp/02_var_primitive_operator/hello_hello/sources/hello_hello.move @@ -0,0 +1,21 @@ +module hello_hello::hello_hello { + + use std::ascii::{String, string}; + use sui::object::{Self,UID}; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + public struct Hello has key{ + id:UID, + say: String + } + + fun init(ctx: &mut TxContext) { + let hello_move = Hello { + id:object::new(ctx), + say: string(b"move"), + }; + transfer(hello_move, sender(ctx)); + } +} + diff --git a/tutorial/bootcamp/02_var_primitive_operator/hello_hello/tests/hello_hello_tests.move b/tutorial/bootcamp/02_var_primitive_operator/hello_hello/tests/hello_hello_tests.move new file mode 100644 index 000000000..6633cd0a8 --- /dev/null +++ b/tutorial/bootcamp/02_var_primitive_operator/hello_hello/tests/hello_hello_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_hello::hello_hello_tests { + // uncomment this line to import the module + // use hello_hello::hello_hello; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_hello() { + // pass + } + + #[test, expected_failure(abort_code = hello_hello::hello_hello_tests::ENotImplemented)] + fun test_hello_hello_fail() { + abort ENotImplemented + } +} +*/ diff --git a/tutorial/bootcamp/02_var_primitive_operator/operator/Move.lock b/tutorial/bootcamp/02_var_primitive_operator/operator/Move.lock new file mode 100644 index 000000000..33289e57e --- /dev/null +++ b/tutorial/bootcamp/02_var_primitive_operator/operator/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "A3FB1CDC3BBAD3C8068C9E41BE6D96B5CE5BA7B1AD6F985C3A519D8E0C4577BD" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "2024.beta" +flavor = "sui" diff --git a/tutorial/bootcamp/02_var_primitive_operator/operator/Move.toml b/tutorial/bootcamp/02_var_primitive_operator/operator/Move.toml new file mode 100644 index 000000000..efc42b6e8 --- /dev/null +++ b/tutorial/bootcamp/02_var_primitive_operator/operator/Move.toml @@ -0,0 +1,39 @@ +[package] +name = "operator" +edition = "2024.beta" + +# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha +# 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/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] +operator = "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/tutorial/bootcamp/02_var_primitive_operator/operator/sources/as_op.move b/tutorial/bootcamp/02_var_primitive_operator/operator/sources/as_op.move new file mode 100644 index 000000000..e24ad4a85 --- /dev/null +++ b/tutorial/bootcamp/02_var_primitive_operator/operator/sources/as_op.move @@ -0,0 +1,27 @@ +module operator::as_op { + + use sui::tx_context::{TxContext}; + + #[allow(unused_variable)] + fun init(ctx: &mut TxContext) { + + let a : u16 = 1000; + let b : u64 = 999; + let c : u32 = 1000; + + let d = b + (c as u64); + + let f = a + (c as u16); + + let u8_1: u8 = 222; + let u8_2: u8 = 222; + let u8_3 = u8_1 + u8_2; + + + + + } + + + +} diff --git a/tutorial/bootcamp/02_var_primitive_operator/operator/sources/operator.move b/tutorial/bootcamp/02_var_primitive_operator/operator/sources/operator.move new file mode 100644 index 000000000..4f3375dae --- /dev/null +++ b/tutorial/bootcamp/02_var_primitive_operator/operator/sources/operator.move @@ -0,0 +1,26 @@ +module operator::operator { + use sui::tx_context::{TxContext}; + + #[allow(unused_variable)] + fun init(_: &mut TxContext) { + + let a : u64 = 1000; + let b : u64 = 999; + let c : u32 = 1000; + + // + - * / % + let _a = a + b; + let _a = a - b; + let _a = a * b; + let _a = a / b; + let _a = a % b; + // ? + // let _b = b - a; + + + + + } + + +} diff --git a/tutorial/bootcamp/02_var_primitive_operator/primitive/Move.lock b/tutorial/bootcamp/02_var_primitive_operator/primitive/Move.lock new file mode 100644 index 000000000..470f17a5c --- /dev/null +++ b/tutorial/bootcamp/02_var_primitive_operator/primitive/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "C654D27A936DC29F0BF95A7D7FE8ADD7F2603DE65A4218A3BA3B3DB48825CF11" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.22.0" +edition = "legacy" +flavor = "sui" diff --git a/tutorial/bootcamp/02_var_primitive_operator/primitive/Move.toml b/tutorial/bootcamp/02_var_primitive_operator/primitive/Move.toml new file mode 100644 index 000000000..7af28fdef --- /dev/null +++ b/tutorial/bootcamp/02_var_primitive_operator/primitive/Move.toml @@ -0,0 +1,41 @@ +[package] +name = "primitive" +edition = "2024.beta" + +# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha +# 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/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] +primitive = "0x0" +hello1 = "0xff71ff2dfa9f5ba0176fb40fdda9d13d738ec97143b46bdfa1addc09e2263b02" + + +# 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/tutorial/bootcamp/02_var_primitive_operator/primitive/sources/primitive.move b/tutorial/bootcamp/02_var_primitive_operator/primitive/sources/primitive.move new file mode 100644 index 000000000..f0cf11cc1 --- /dev/null +++ b/tutorial/bootcamp/02_var_primitive_operator/primitive/sources/primitive.move @@ -0,0 +1,46 @@ +module primitive::primitive { + + use sui::tx_context::TxContext; + + #[allow(unused_variable)] + fun init(ctx: &mut TxContext) { + + let int_8 = 8u8; + let int_16 = 16u16; + let int_32 = 32u32; + let int_32_1 = 320; + let int_64= 32u64; + let int_128= 32u128; + let int_256= 32u256; + let int_spit : u64 = 111_1_1_1_222; + let int_spit : u128 = 111_111_222; + let int_spit : u128 = 1111112_223_132_324; + + let int_spit : u64 = 0x000; + + let int_88: u64 = 0x0fff; + + let hex_u8: u8 = 0x1; + let hex_u16: u16 = 0x1BAE; + let hex_u32: u32 = 0xDEAD80; + let hex_u64: u64 = 0xCAFE; + let hex_u128: u128 = 0xDEADBEEF; + let hex_u256: u256 = 0x1123_456A_BCDE_F; + + + let bool_false = false; + let bool_true = true; + + let addr: address = @0x1; + let addr2 = @0x2; + + let address1 = @0x1; // shorthand for 0x0000000000000000000000000000000000000000000000000000000000000001 + let address2: address = @0x42; // shorthand for 0x0000000000000000000000000000000000000000000000000000000000000042 + let address3: address = @0xDEADBEEF; // shorthand for 0x00000000000000000000000000000000000000000000000000000000DEADBEEF + let address4: address = @0x000000000000000000000000000000000000000000000000000000000000000A; + let address_2 = @primitive; + let hello1 = @hello1; + } + + +} diff --git a/tutorial/bootcamp/02_var_primitive_operator/readme.md b/tutorial/bootcamp/02_var_primitive_operator/readme.md new file mode 100644 index 000000000..e4c2b3812 --- /dev/null +++ b/tutorial/bootcamp/02_var_primitive_operator/readme.md @@ -0,0 +1,76 @@ +## 资源 +- [ppt](https://docs.google.com/presentation/d/14Y5Au0GQkOoRpjKQtwk9Ib41UvQaqbW7QQATL1z0SPw) + +# 变量 +Move程序使用let将变量名绑定到值: +```rust +let x = 1; +let y = x + x: +``` +Let也可以在不将值绑定到局部的情况下使用。 +然后可以为局部变量赋值。 +```rust +let x; +if (cond) { + x = 1u32 +} else { + x = 0u32 +} +``` + +变量必须在使用前赋值 + +```rust +let x; +x + x // ERROR! +``` + + +### 变量的名字 + +必须是 _a-zA-Z 开始 只能包含字母数字和下划线 _ + +```move +module var::var { + + use sui::tx_context::{TxContext}; + + #[allow(unused_variable)] + fun init(_: &mut TxContext) { + + let s = b"hello"; + + let s2 = s; + + let x = 0; + let b = false; + let addr = @0x42; + let x_ref = &x; + + let b2 = b; + let addr2 = @0x42; + let x_ref2 = x_ref; +} + +} + +``` + + + + +# 无符号整数 +- `u8` `u16` `u32` `u64` `u128` `u256` +- `+` `-` `*` `/` `%` +- `=` `>` `<` `!=` + + +# bool +- `false` `false` + +# address 地址类型 + + + + + diff --git a/tutorial/bootcamp/02_var_primitive_operator/var/Move.lock b/tutorial/bootcamp/02_var_primitive_operator/var/Move.lock new file mode 100644 index 000000000..210277eec --- /dev/null +++ b/tutorial/bootcamp/02_var_primitive_operator/var/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "5D5C69AD90CF6F6B6E68BCDDD20898A78211B082570753DCDBCCCF68B351F17F" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.22.0" +edition = "legacy" +flavor = "sui" diff --git a/tutorial/bootcamp/02_var_primitive_operator/var/Move.toml b/tutorial/bootcamp/02_var_primitive_operator/var/Move.toml new file mode 100644 index 000000000..332ff3ab4 --- /dev/null +++ b/tutorial/bootcamp/02_var_primitive_operator/var/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "var" +edition = "2024.beta" + +# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha +# 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/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] +var = "0x0" +zhangsan = "0xc91876f4fbbe05e672ccbd316b133d24c3b0e770d68659beb0f3796345ac633e" + +# 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/tutorial/bootcamp/02_var_primitive_operator/var/sources/var.move b/tutorial/bootcamp/02_var_primitive_operator/var/sources/var.move new file mode 100644 index 000000000..e7121ddf5 --- /dev/null +++ b/tutorial/bootcamp/02_var_primitive_operator/var/sources/var.move @@ -0,0 +1,48 @@ +module var::var { + + use sui::tx_context::{TxContext}; + + #[allow(unused_variable)] + fun init(_: &mut TxContext) { + + + let abc: u64 = 45; + + let abc1 = 45u64; + + + let a = 1; + + + let s = b"hello"; + + let s2 = s; + + let x = 0; + let b:bool = false; + + + let addr2 :address = @0x1; + + let addr2 :address = @var; + let zhangsan = @zhangsan; + let zhangsan2 = @0xc91876f4fbbe05e672ccbd316b133d24c3b0e770d68659beb0f3796345ac633e; + + + let zhangsan_1 = (zhangsan == zhangsan2); + + + let addr = @0x42; + + + let addr = @0x42; + + + let x_ref = &x; + + let b2 = b; + let addr2 = @0x42; + let x_ref2 = x_ref; + } + +} diff --git a/tutorial/bootcamp/02_var_primitive_operator/var/sources/var_float.move b/tutorial/bootcamp/02_var_primitive_operator/var/sources/var_float.move new file mode 100644 index 000000000..135a49ade --- /dev/null +++ b/tutorial/bootcamp/02_var_primitive_operator/var/sources/var_float.move @@ -0,0 +1,25 @@ +module var::var { + + use sui::tx_context::{TxContext}; + + #[allow(unused_variable)] + fun init(_: &mut TxContext) { + + let a : u32 = 100; + let b : u32 = 1000; + + // let c = a / b; + + + let c = 100_000_000u32; + + let d = c * a / b; + + + + + + + } + +} diff --git a/tutorial/bootcamp/03_mod_function/function/Move.lock b/tutorial/bootcamp/03_mod_function/function/Move.lock new file mode 100644 index 000000000..0f8e40b47 --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/function/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "C41FE50FAAA0856300F9F513B8CA26BD6354D786DDB47705FB1A0D21B9394882" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.22.0" +edition = "legacy" +flavor = "sui" diff --git a/tutorial/bootcamp/03_mod_function/function/Move.toml b/tutorial/bootcamp/03_mod_function/function/Move.toml new file mode 100644 index 000000000..8b53a5234 --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/function/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "function" +edition = "2024.beta" # edition = "legacy" to use legacy (pre-2024) Move + + +# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha +# 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/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] +function = "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/tutorial/bootcamp/03_mod_function/function/sources/fun2.move b/tutorial/bootcamp/03_mod_function/function/sources/fun2.move new file mode 100644 index 000000000..65cbf1566 --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/function/sources/fun2.move @@ -0,0 +1,8 @@ +module function::fun2 { + + use function::function::b; + + fun abc(){ + b(); + } +} diff --git a/tutorial/bootcamp/03_mod_function/function/sources/fun3.move b/tutorial/bootcamp/03_mod_function/function/sources/fun3.move new file mode 100644 index 000000000..9d66ab1c1 --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/function/sources/fun3.move @@ -0,0 +1,9 @@ +module function::fun3 { + + use function::function::c; + + + fun abc(){ + c(); + } +} diff --git a/tutorial/bootcamp/03_mod_function/function/sources/function.move b/tutorial/bootcamp/03_mod_function/function/sources/function.move new file mode 100644 index 000000000..8cb4dfad8 --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/function/sources/function.move @@ -0,0 +1,33 @@ +module function::function { + + use sui::transfer::{transfer, public_transfer, share_object, public_share_object}; + + fun init(_:&mut TxContext){ + + + + } + + + fun a(){ + } + + public fun b(){ + } + + public(package) fun c(){} + + + public entry fun d(){ + } + + + public fun f(a:u32, b:u32): bool { + a > b + } + + public fun f2(a:u32, b:u32): (bool,bool){ + (a > b, a < b) + } + +} diff --git a/tutorial/bootcamp/03_mod_function/function/sources/init1.move b/tutorial/bootcamp/03_mod_function/function/sources/init1.move new file mode 100644 index 000000000..a74f47ef2 --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/function/sources/init1.move @@ -0,0 +1,7 @@ +module function::init1 { + + fun init(_:&mut TxContext){ + + + } +} diff --git a/tutorial/bootcamp/03_mod_function/function/sources/init2.move b/tutorial/bootcamp/03_mod_function/function/sources/init2.move new file mode 100644 index 000000000..b61cc5122 --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/function/sources/init2.move @@ -0,0 +1,11 @@ +module function::init2 { + + + public struct INIT2 has drop{ + + } + + fun init(_winess:INIT2, _:&mut TxContext){ + + } +} diff --git a/tutorial/bootcamp/03_mod_function/mod/Move.lock b/tutorial/bootcamp/03_mod_function/mod/Move.lock new file mode 100644 index 000000000..aea02762a --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/mod/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "A4E5CD26580B0E2BD1281086CD12CA0BF3A7411AE2744150050ED590D0B2FA1A" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.22.0" +edition = "legacy" +flavor = "sui" diff --git a/tutorial/bootcamp/03_mod_function/mod/Move.toml b/tutorial/bootcamp/03_mod_function/mod/Move.toml new file mode 100644 index 000000000..f8363e160 --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/mod/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "mod" +edition = "2024.beta" # edition = "legacy" to use legacy (pre-2024) Move + + +# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha +# 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/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] +mod = "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/tutorial/bootcamp/03_mod_function/mod/sources/a.move b/tutorial/bootcamp/03_mod_function/mod/sources/a.move new file mode 100644 index 000000000..aa105ba0b --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/mod/sources/a.move @@ -0,0 +1,9 @@ +module mod::a { + + use sui::tx_context::TxContext; + + fun init(_ctx: &mut TxContext) { + + } + +} diff --git a/tutorial/bootcamp/03_mod_function/mod/sources/b.move b/tutorial/bootcamp/03_mod_function/mod/sources/b.move new file mode 100644 index 000000000..fddead4bb --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/mod/sources/b.move @@ -0,0 +1,7 @@ +module mod::b { + use sui::tx_context::TxContext; + + fun init(_ctx: &mut TxContext) { + + } +} diff --git a/tutorial/bootcamp/03_mod_function/pageage1/Move.lock b/tutorial/bootcamp/03_mod_function/pageage1/Move.lock new file mode 100644 index 000000000..1e63bd0e6 --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/pageage1/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "0DF2D666B7CF6AC436E18632F017FC4D9CDE5E22635E17F4359589FCDDE30FE3" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.22.0" +edition = "legacy" +flavor = "sui" diff --git a/tutorial/bootcamp/03_mod_function/pageage1/Move.toml b/tutorial/bootcamp/03_mod_function/pageage1/Move.toml new file mode 100644 index 000000000..a917b2870 --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/pageage1/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "pageage1" +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/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] +pageage1 = "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/tutorial/bootcamp/03_mod_function/pageage1/sources/b.move b/tutorial/bootcamp/03_mod_function/pageage1/sources/b.move new file mode 100644 index 000000000..94a026312 --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/pageage1/sources/b.move @@ -0,0 +1,3 @@ +module pageage1::b { + +} diff --git a/tutorial/bootcamp/03_mod_function/pageage1/sources/pageage1.move b/tutorial/bootcamp/03_mod_function/pageage1/sources/pageage1.move new file mode 100644 index 000000000..1b41c8d39 --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/pageage1/sources/pageage1.move @@ -0,0 +1,6 @@ +/* +/// Module: pageage1 +module pageage1::pageage1 { + +} +*/ diff --git a/tutorial/bootcamp/03_mod_function/pageage1/tests/pageage1_tests.move b/tutorial/bootcamp/03_mod_function/pageage1/tests/pageage1_tests.move new file mode 100644 index 000000000..417abfd19 --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/pageage1/tests/pageage1_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module pageage1::pageage1_tests { + // uncomment this line to import the module + // use pageage1::pageage1; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_pageage1() { + // pass + } + + #[test, expected_failure(abort_code = pageage1::pageage1_tests::ENotImplemented)] + fun test_pageage1_fail() { + abort ENotImplemented + } +} +*/ diff --git a/tutorial/bootcamp/03_mod_function/readme.md b/tutorial/bootcamp/03_mod_function/readme.md new file mode 100644 index 000000000..274c2c246 --- /dev/null +++ b/tutorial/bootcamp/03_mod_function/readme.md @@ -0,0 +1,24 @@ +## 资料 +- [ppt](https://docs.google.com/presentation/d/1Rj7ZzdVsJCUUucYkJ9X6X3al3ZSYmJEWveAEoYpl4Fg) + +## 什么是包 +包是同一个合约地址包含的全部代码的集合,由很多模块组成 + +## 什么是模块 +代码模块是代码划分访问权限和代码的组织方式 + + +## 什么是方法 +方法是组织代码调用和抽象片段的最小单位 + + +## init方法 + +- 只能是私有的 +- 会在发布合约的是自动调用一次 +- 只有两种形式 + +```rust +fun init(ctx: &mut TxContext){} +fun init(witness: Struct, ctx: &mut TxContext) {} +``` diff --git a/tutorial/bootcamp/04_comment_flow_control/comment/Move.lock b/tutorial/bootcamp/04_comment_flow_control/comment/Move.lock new file mode 100644 index 000000000..d9ddc1c48 --- /dev/null +++ b/tutorial/bootcamp/04_comment_flow_control/comment/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "45F87EC81DBF3078C954410C99190073A890E42E428AFEE30709A6488E9AB79B" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.22.0" +edition = "legacy" +flavor = "sui" diff --git a/tutorial/bootcamp/04_comment_flow_control/comment/Move.toml b/tutorial/bootcamp/04_comment_flow_control/comment/Move.toml new file mode 100644 index 000000000..d1340b047 --- /dev/null +++ b/tutorial/bootcamp/04_comment_flow_control/comment/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "comment" +edition = "2024.beta" # edition = "legacy" to use legacy (pre-2024) Move + + +# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha +# 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/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] +comment = "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/tutorial/bootcamp/04_comment_flow_control/comment/sources/comment.move b/tutorial/bootcamp/04_comment_flow_control/comment/sources/comment.move new file mode 100644 index 000000000..f9fdcd4c0 --- /dev/null +++ b/tutorial/bootcamp/04_comment_flow_control/comment/sources/comment.move @@ -0,0 +1,19 @@ +/// this is mod comment +module comment::comment { + + // this is comment + // this is comment 2 + use sui::tx_context::TxContext; + + /// this is docs comment + fun init(_: &mut TxContext) { + + } + + /** + line 1 + line 2 + line 3 + */ + +} diff --git a/tutorial/bootcamp/04_comment_flow_control/flow_con/Move.lock b/tutorial/bootcamp/04_comment_flow_control/flow_con/Move.lock new file mode 100644 index 000000000..59c12361c --- /dev/null +++ b/tutorial/bootcamp/04_comment_flow_control/flow_con/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "0BF4D62C2AD2F2E37D13EBDEFB0D388D5525DDCCB951A84E3680E9EDC3DD8CA0" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.22.0" +edition = "legacy" +flavor = "sui" diff --git a/tutorial/bootcamp/04_comment_flow_control/flow_con/Move.toml b/tutorial/bootcamp/04_comment_flow_control/flow_con/Move.toml new file mode 100644 index 000000000..eaebcb7a5 --- /dev/null +++ b/tutorial/bootcamp/04_comment_flow_control/flow_con/Move.toml @@ -0,0 +1,40 @@ +[package] +name = "flow_con" +edition = "2024.beta" # edition = "legacy" to use legacy (pre-2024) Move + + +# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha +# 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/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] +flow_con = "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/tutorial/bootcamp/04_comment_flow_control/flow_con/sources/break_con.move b/tutorial/bootcamp/04_comment_flow_control/flow_con/sources/break_con.move new file mode 100644 index 000000000..45f577d3f --- /dev/null +++ b/tutorial/bootcamp/04_comment_flow_control/flow_con/sources/break_con.move @@ -0,0 +1,21 @@ +module flow_con::break_con { + + use std::debug::print; + use sui::tx_context::TxContext; + + fun init(_ctx: &mut TxContext) { + let b = min_factor(10); + print(&b); + } + + fun min_factor(n: u64): u64 { + let mut i = 2; + + while (i <= n) { + if (n % i == 0) break ; + i = i + 1 + }; + + i + } +} diff --git a/tutorial/bootcamp/04_comment_flow_control/flow_con/sources/continue_con.move b/tutorial/bootcamp/04_comment_flow_control/flow_con/sources/continue_con.move new file mode 100644 index 000000000..8ea7d3b0a --- /dev/null +++ b/tutorial/bootcamp/04_comment_flow_control/flow_con/sources/continue_con.move @@ -0,0 +1,24 @@ +module flow_con::continue_con { + + use std::debug::print; + use sui::tx_context::TxContext; + + fun init(_ctx: &mut TxContext) { + let b = sum(10); + print(&b); + } + + + fun sum(n: u64): u64 { + let mut sum = 0; + let mut i = 0; + while (i < n) { + i = i + 1; + if (i % 20 == 0) continue; + + sum = sum + i; + }; + + sum + } +} diff --git a/tutorial/bootcamp/04_comment_flow_control/flow_con/sources/if_con.move b/tutorial/bootcamp/04_comment_flow_control/flow_con/sources/if_con.move new file mode 100644 index 000000000..bb72e0f65 --- /dev/null +++ b/tutorial/bootcamp/04_comment_flow_control/flow_con/sources/if_con.move @@ -0,0 +1,27 @@ +module flow_con::if_con { + + + use sui::tx_context::TxContext; + + fun init(ctx: &mut TxContext) { + + let mut x:u32 = 10; + if (x > 5) x = x - 5; + + + let mut y = 10; + if (y <= 10) y = y + 1 else y = 10; + + + + } + + fun max(a:u32,b:u32):u32{ + if(a > b){ + a + }else { + b + } + } + +} diff --git a/tutorial/bootcamp/04_comment_flow_control/flow_con/sources/loop_con.move b/tutorial/bootcamp/04_comment_flow_control/flow_con/sources/loop_con.move new file mode 100644 index 000000000..bc95aad7f --- /dev/null +++ b/tutorial/bootcamp/04_comment_flow_control/flow_con/sources/loop_con.move @@ -0,0 +1,26 @@ +module flow_con::loop_con { + + use std::debug::print; + use sui::tx_context::TxContext; + + fun init(_ctx: &mut TxContext) { + let b = sum(10); + print(&b); + + } + + fun sum(n: u64): u64 { + let mut sum = 0; + let mut i = 0; + + loop { + i = i + 1; + if (i > n) break; + sum = sum + i + }; + + sum + } + + +} diff --git a/tutorial/bootcamp/04_comment_flow_control/flow_con/sources/while_con.move b/tutorial/bootcamp/04_comment_flow_control/flow_con/sources/while_con.move new file mode 100644 index 000000000..28643725f --- /dev/null +++ b/tutorial/bootcamp/04_comment_flow_control/flow_con/sources/while_con.move @@ -0,0 +1,24 @@ +module flow_con::while_con { + + use std::debug::print; + use sui::tx_context::TxContext; + + fun init(_ctx: &mut TxContext) { + let b = sum(10); + print(&b); + + } + + fun sum(n: u64): u64 { + let mut sum = 0; + let mut i = 1; + + while (i <= n) { + sum = sum + i; + i = i + 1 + }; + + sum + } + +} diff --git a/tutorial/bootcamp/04_comment_flow_control/readme.md b/tutorial/bootcamp/04_comment_flow_control/readme.md new file mode 100644 index 000000000..2cd21ced1 --- /dev/null +++ b/tutorial/bootcamp/04_comment_flow_control/readme.md @@ -0,0 +1,45 @@ +## 资料 +- [ppt](https://docs.google.com/presentation/d/1MGwZtOzAJ66PbETBkI7lOxKat_K9A7hdZ5eTPb3puV8) + +# 注释 +> 注释不支持中文等UTF-8字符 ,只支持英文,否则会报错 +- `//` 注释 +- `/* */` 块注释 +- `///` 文档注释 + + +```move +/// this is mod comment +module comment::comment { + + // this is comment + use sui::tx_context::TxContext; + + /// this is docs comment + fun init(ctx: &mut TxContext) { + + } + + /** + line 1 + line 2 + line 3 + */ + +} + +``` + + +# if + +```rust + +``` + + +# while +- 语法 +- `break` `continue` + + diff --git a/tutorial/bootcamp/05_struct_object_ownership/obj/Move.lock b/tutorial/bootcamp/05_struct_object_ownership/obj/Move.lock new file mode 100644 index 000000000..1f6acd227 --- /dev/null +++ b/tutorial/bootcamp/05_struct_object_ownership/obj/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "5598B404A0189223D885E3FF37A58C5AFCB8184394DF3304EA094A67299628E6" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "2024.beta" +flavor = "sui" diff --git a/tutorial/bootcamp/05_struct_object_ownership/obj/Move.toml b/tutorial/bootcamp/05_struct_object_ownership/obj/Move.toml new file mode 100644 index 000000000..0ce26e122 --- /dev/null +++ b/tutorial/bootcamp/05_struct_object_ownership/obj/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "obj" +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/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] +obj = "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/tutorial/bootcamp/05_struct_object_ownership/obj/sources/obj.move b/tutorial/bootcamp/05_struct_object_ownership/obj/sources/obj.move new file mode 100644 index 000000000..8a59475ae --- /dev/null +++ b/tutorial/bootcamp/05_struct_object_ownership/obj/sources/obj.move @@ -0,0 +1,174 @@ +module obj::obj { + use std::vector; + use sui::object; + use sui::object::UID; + use sui::transfer::{transfer, share_object, freeze_object}; + use sui::tx_context::sender; + + + public struct Person { + age: u8, + gender: u8, + height: u16 + } + + public struct PersonObject has key { + id: UID, + age: u8, + gender: u8, + height: u16 + } + + + public struct People has key { + id: UID, + gender: u8, + } + + + public struct House has key { + id: UID, + age: u8, + onwer_address: vector
+ } + + + public struct Dog has key { + id: UID, + age: u8, + } + + + fun aaa(ctx: &mut TxContext){ + + } + + + + /// dog 检查所有权 + /// dog 张三拥有 张三来调用 不会报错 , 李四 来调用 方法 + public entry fun use_dog(dog: Dog, _ctx: &mut TxContext){ + // 把对象的所有权交给了这个函数 + + // 1 transfer(dog, @0x3333); + + + // 2 delete(dog, @0x3333); + + + // transfer(dog, @0x3333) + transfer(dog, @0x3333); + + } + + + public entry fun use_dog2(dog: &Dog, _ctx: &mut TxContext){ + // 不涉及所有权 所以没法内部改变所有权 + let _age = dog.age; + } + + public entry fun use_dog3(dog: &mut Dog, _ctx: &mut TxContext){ + // 不涉及所有权 所以没法内部改变所有权 + + let _age = dog.age; + + dog.age = 111; + + + } + + + + /// 共享所有权 检查所有权 + public entry fun use_house( house: &House, ctx: &mut TxContext){ + // + // let adress = sender(ctx); + // let flag = vector::contains(&house.onwer_address ,&adress ); + + } + + + + fun init(ctx: &mut TxContext) { + + let dog = Dog { + id: object::new(ctx), + age: 10, + }; + + + // 独享所有权 被地址持有 + let dog11 = Dog{ + id: object::new(ctx), + age: 11, + }; + + let adddress_my = sender(ctx); + transfer(dog11, adddress_my); + + + + let mut addresses:vector
= vector[]; + vector::push_back(&mut addresses, @0x33); + vector::push_back(&mut addresses, @0x33); + + // 共享所有权 被全部的地址持有 + let house = House{ + id: object::new(ctx), + age: 11, + onwer_address:addresses, + }; + + share_object(house); + + + let dog22 = Dog { + id: object::new(ctx), + age: 10, + }; + // xxx + + + del(dog22); + + + + + + transfer(dog, sender(ctx)); + + + let dog2 = Dog { + id: object::new(ctx), + age: 10, + }; + + share_object(dog2); + + + let dog3 = Dog { + id: object::new(ctx), + age: 10, + }; + + freeze_object(dog3); + } + + + public fun update(dog: &mut Dog, age: u8) { + dog.age = age + } + + public fun dog_age(dog: &Dog): u8 { + dog.age + } + + + public fun del(dog: Dog) { + let Dog { id, age } = dog; + object::delete(id); + + let _age = age; + } +} + diff --git a/tutorial/bootcamp/05_struct_object_ownership/obj/sources/struct_code.move b/tutorial/bootcamp/05_struct_object_ownership/obj/sources/struct_code.move new file mode 100644 index 000000000..c622f3f53 --- /dev/null +++ b/tutorial/bootcamp/05_struct_object_ownership/obj/sources/struct_code.move @@ -0,0 +1,58 @@ +module obj::struct_code { + + use sui::tx_context::TxContext; + + public struct Person{ + age:u8, + gender:u8, + height:u16 + } + + public struct Person2{ + age:u8, + gender:u8, + height:u16 + } + + public struct Dog { + age:u8, + gender:u8, + } + + + public struct Color{ + red:u8, + green:u8, + blue:u8 + } + + public fun delete_color(color:Color){ + let Color{ red,green,blue} = color; + } + + public fun delete_dog(dog:Dog){ + let Dog{age,gender} = dog; + + let _age = age; + let _gender = gender; + } + + fun init(_ctx: &mut TxContext) { + let color = Color{ + red:1, + green:2, + blue:3 + }; + + + let dog = Dog{ + age:1, + gender:0, + }; + + delete_dog(dog); + + delete_color(color); + } + +} diff --git a/tutorial/bootcamp/05_struct_object_ownership/obj/tests/obj_tests.move b/tutorial/bootcamp/05_struct_object_ownership/obj/tests/obj_tests.move new file mode 100644 index 000000000..248cfb4da --- /dev/null +++ b/tutorial/bootcamp/05_struct_object_ownership/obj/tests/obj_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module obj::obj_tests { + // uncomment this line to import the module + // use obj::obj; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_obj() { + // pass + } + + #[test, expected_failure(abort_code = obj::obj_tests::ENotImplemented)] + fun test_obj_fail() { + abort ENotImplemented + } +} +*/ diff --git a/tutorial/bootcamp/05_struct_object_ownership/readme.md b/tutorial/bootcamp/05_struct_object_ownership/readme.md new file mode 100644 index 000000000..3a11c10df --- /dev/null +++ b/tutorial/bootcamp/05_struct_object_ownership/readme.md @@ -0,0 +1,11 @@ +# +- (PPT)[https://docs.google.com/presentation/d/1iVQqy2vbAkEHNprNBjwWTowI0BT4wVzY8EWCF7jboSE/edit] + +# struct + +```rust + +``` + + +# object diff --git a/tutorial/bootcamp/06_abilities_const_event_error/ability/Move.lock b/tutorial/bootcamp/06_abilities_const_event_error/ability/Move.lock new file mode 100644 index 000000000..f55c5d857 --- /dev/null +++ b/tutorial/bootcamp/06_abilities_const_event_error/ability/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "2D7DA511CBD5F28D2E061372E0D65A8282CB02A3511301E96D01D7EAE142B130" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.22.0" +edition = "legacy" +flavor = "sui" diff --git a/tutorial/bootcamp/06_abilities_const_event_error/ability/Move.toml b/tutorial/bootcamp/06_abilities_const_event_error/ability/Move.toml new file mode 100644 index 000000000..d7f1a25d1 --- /dev/null +++ b/tutorial/bootcamp/06_abilities_const_event_error/ability/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "ability" +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/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] +ability = "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/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/consts.move b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/consts.move new file mode 100644 index 000000000..174982c40 --- /dev/null +++ b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/consts.move @@ -0,0 +1,29 @@ +module ability::consts { + + use std::string::String; + use sui::object; + use sui::object::UID; + use sui::transfer::freeze_object; + + // 'u8', 'u16', 'u32', 'u64', 'u128', 'u256', 'bool', 'address', 'vector<_>' + const TenNum: u32 = 10; + const OneNum: u32 = 0x1; + const OneBool: bool = false; + const AddrMe: address = @0x22; + const Str: vector = b"3123123"; // [1,2,3,4,5] + + + public struct ObjConst has key { + id: UID, + num: u8, + } + + + fun init(ctx: &mut TxContext) { + let obj_const = ObjConst { + id:object::new(ctx), + num: 1 + }; + freeze_object(obj_const); + } +} diff --git a/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/debugs.move b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/debugs.move new file mode 100644 index 000000000..29a85a60f --- /dev/null +++ b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/debugs.move @@ -0,0 +1,25 @@ +module ability::debugs { + + use std::debug::print; + + public struct People has drop{ + age:u8, + } + + fun init(ctx: &mut TxContext) { + + + } + + #[test] + fun test_a (){ + let p = People{ + age:10, + }; + print(&p); + + let int10: u32 = 10; + print(&int10); + } + +} diff --git a/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/errors.move b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/errors.move new file mode 100644 index 000000000..db6e00914 --- /dev/null +++ b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/errors.move @@ -0,0 +1,40 @@ +module ability::errors { + + const ErrMustGet10 :u64 = 0x1; + const ErrMustLt11 :u64 = 0xa; + + + fun init(ctx: &mut TxContext) { + + let num2 = input(11); + let num1 = input(5); + + } + + public fun input(num:u32):u32{ + if(num > 10){ + num + }else { + abort 0 + } + } + + public fun intput2(num:u32):u32{ + assert!(num > 10, ErrMustGet10); + + + if(num > 10){ + // xxxx + }else{ + abort ErrMustGet10; + }; + + num + } + + public fun intput3(num:u32):u32{ + assert!(num < 11, ErrMustLt11); + + num + } +} diff --git a/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/events.move b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/events.move new file mode 100644 index 000000000..890211a50 --- /dev/null +++ b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/events.move @@ -0,0 +1,16 @@ +module ability::event { + + use sui::event::emit; + + public struct Event1 has copy, drop { + age: u8, + } + + fun init(ctx: &mut TxContext) { + let eve = Event1 { + age: 10, + }; + + emit(eve); + } +} diff --git a/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/key_store.move b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/key_store.move new file mode 100644 index 000000000..dd5c26ff2 --- /dev/null +++ b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/key_store.move @@ -0,0 +1,36 @@ +module ability::key_store { + + use sui::object; + use sui::object::UID; + use sui::transfer::{transfer, public_transfer}; + use sui::tx_context::{sender, TxContext}; + + public struct KeyStore has key,store { + id:UID, + age:u8, + } + + public struct HolderStore has key { + id:UID, + st: KeyStore + } + + public fun mint(ctx:&mut TxContext){ + let only = KeyStore{ + id:object::new(ctx), + age:10, + }; + + public_transfer(only,sender(ctx)); + } + + + // public fun my_transfer(only: KeyStore, addr: address) { + // if (only.age > 10) { + // public_transfer(only, addr); + // }else { + // abort 10 + // } + // } + +} diff --git a/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/not_any.move b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/not_any.move new file mode 100644 index 000000000..ca1ca6e20 --- /dev/null +++ b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/not_any.move @@ -0,0 +1,25 @@ +module ability::not_any { + + public struct NotAny { + age:u8 + } + + + fun init(_:&mut TxContext){ + + let not = NotAny{ + age:10 + }; + delete(not); + //let NotAny{age} = not; + } + + + + public fun delete(not:NotAny){ + let NotAny{age} = not; + let _ = age; + } + + +} diff --git a/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/only_drop.move b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/only_drop.move new file mode 100644 index 000000000..09f4e3680 --- /dev/null +++ b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/only_drop.move @@ -0,0 +1,27 @@ +module ability::only_drop { + + + public struct MyStruct{} + + + public struct OnlyDrop has drop{ + num:u8, + nue:u16, + // my:MyStruct, + } + + + fun init(ctx:&mut TxContext){ + + let only = OnlyDrop{ + num: 10, + nue:10, + // my:MyStruct{} + }; + + // let _= only; + + } + + +} diff --git a/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/only_key.move b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/only_key.move new file mode 100644 index 000000000..6a57583ba --- /dev/null +++ b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/only_key.move @@ -0,0 +1,45 @@ +/// Module: ability +module ability::only_key { + + use sui::object; + use sui::object::UID; + use sui::transfer::transfer; + use sui::tx_context::{TxContext, sender}; + + + public struct KeyName has key { + id: UID, + } + + + public struct OnlyKey has key { + id: UID, + age: u8, + } + + + public fun mint(ctx: &mut TxContext) { + let only = OnlyKey { + id: object::new(ctx), + age: 10, + }; + + transfer(only, sender(ctx)); + } + + + public fun del(only: OnlyKey, ctx: &mut TxContext) { + let OnlyKey { id, age } = only; + object::delete(id); + let _ = age; + } + + public fun my_transfer(only: OnlyKey, addr: address) { + if (only.age > 10) { + transfer(only, addr); + }else { + abort 10u64 + } + } +} + diff --git a/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/only_store.move b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/only_store.move new file mode 100644 index 000000000..6cb17322c --- /dev/null +++ b/tutorial/bootcamp/06_abilities_const_event_error/ability/sources/only_store.move @@ -0,0 +1,47 @@ +module ability::only_store { + + use sui::object; + use sui::object::UID; + use sui::transfer::transfer; + use sui::tx_context::sender; + + public struct Store has store{ + num:u8, + } + + + public struct MyStruct has store{ + num:u8, + } + + + + public struct MyStructHold has key { + id:UID, + my_struct: MyStruct + } + + + + + + public struct HolderStore has key { + id:UID, + st:Store + } + + + fun init(ctx:&mut TxContext){ + let st = Store{ + num:10, + }; + + let holder = HolderStore{ + id:object::new(ctx), + st, + }; + + transfer(holder,sender(ctx)); + } + +} diff --git a/tutorial/bootcamp/06_abilities_const_event_error/ability/tests/ability_tests.move b/tutorial/bootcamp/06_abilities_const_event_error/ability/tests/ability_tests.move new file mode 100644 index 000000000..79e10d7c7 --- /dev/null +++ b/tutorial/bootcamp/06_abilities_const_event_error/ability/tests/ability_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module ability::ability_tests { + // uncomment this line to import the module + // use ability::ability; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_ability() { + // pass + } + + #[test, expected_failure(abort_code = ability::ability_tests::ENotImplemented)] + fun test_ability_fail() { + abort ENotImplemented + } +} +*/ diff --git a/tutorial/bootcamp/06_abilities_const_event_error/readme.md b/tutorial/bootcamp/06_abilities_const_event_error/readme.md new file mode 100644 index 000000000..81e38955b --- /dev/null +++ b/tutorial/bootcamp/06_abilities_const_event_error/readme.md @@ -0,0 +1,35 @@ +# 资源 +- [PPT](https://docs.google.com/presentation/d/1hBt0vHHURy_Lu5QiTKBMVHCj5S4QVif-SgXU4DhUu6I) + +# ability + +- key - 被修饰的值可以作为键值对全局状态进行访问。 +- copy - 被修饰的值可以被复制。 +- drop - 被修饰的值在作用域结束时可以被丢弃。 +- store - 被修饰的值可以被存储到全局状态 + + +## 语法 +`has` 关键字 指明能力 +`has ability1,ability2` +```rust + public struct Dog has key,store{ + } +``` + +## 一个ability 都没有 +- 单纯的结构体 +- 只能生存当前事务 + +## 只有key +自定义转移规则的对象 + +## key + store +- 可以自由转移的对象 +- key存储在其他结构体里面 + +## 只有 store +- 可以存储在其他对象里面 + + + diff --git a/tutorial/bootcamp/07_generics/generics/Move.lock b/tutorial/bootcamp/07_generics/generics/Move.lock new file mode 100644 index 000000000..1bb5e8dc4 --- /dev/null +++ b/tutorial/bootcamp/07_generics/generics/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 1 +manifest_digest = "172D67C093EBB1D1B88A46FB31FA915AAADA4BCCF313E0415324A1E4666B3560" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.22.0" +edition = "legacy" +flavor = "sui" diff --git a/tutorial/bootcamp/07_generics/generics/Move.toml b/tutorial/bootcamp/07_generics/generics/Move.toml new file mode 100644 index 000000000..ee93fdc77 --- /dev/null +++ b/tutorial/bootcamp/07_generics/generics/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "generics" +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/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] +generics = "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/tutorial/bootcamp/07_generics/generics/sources/fun_generics.move b/tutorial/bootcamp/07_generics/generics/sources/fun_generics.move new file mode 100644 index 000000000..3a5bb3ef3 --- /dev/null +++ b/tutorial/bootcamp/07_generics/generics/sources/fun_generics.move @@ -0,0 +1,29 @@ +module generics::generics { + + public struct Box { + value: T + } + + + + public fun input (value: T) { + + } + + + + public fun create_box (value: T) : Box { + Box { value } + } + + + fun init(ctx: &mut TxContext) { + + let box32 = create_box(32u32); + + let box16 = create_box( (32u32 as u16) ); + + } + +} + diff --git a/tutorial/bootcamp/07_generics/generics/sources/obj_generics.move b/tutorial/bootcamp/07_generics/generics/sources/obj_generics.move new file mode 100644 index 000000000..9c3917b75 --- /dev/null +++ b/tutorial/bootcamp/07_generics/generics/sources/obj_generics.move @@ -0,0 +1,89 @@ +module generics::obj_generics { + use sui::object; + use sui::object::UID; + + public struct Box32 { + value: u32 + } + public struct Box256 { + value: u256 + } + + public struct Box64 { + value: u64 + } + public struct Box128 { + value: u128 + } + + + + public struct Box { + value: T + } + + + public struct Box2 { + value: T, + value2: Z, + value_3: Z, + } + + + + public struct Box3 has key, store { + id: UID, + value: T + } + + public struct MyStrtuct has store, drop { + value: u32 + } + + + + + public struct Box4 has key, store { + id: UID, + value: T + } + + + + fun init(ctx: &mut TxContext) { + + let boxu32_1 = Box32 { + value:32u32 + }; + + let boxu32_2 = Box{ + value:11u32, + }; + + + + // let box2_1 = Box2{ + // value: 10u16, + // value2: 10u32, + // value_3: 20u32, + // }; + + + // let box4= Box4{ + // id:object::new(ctx), + // value:MyStrtuct{ + // value:32u32 + // } + // + // }; + + + // + let Box32 {value:_} = boxu32_1; + + let Box {value:_} = boxu32_2; + } + + +} + diff --git a/tutorial/bootcamp/07_generics/generics/sources/phanton1.move b/tutorial/bootcamp/07_generics/generics/sources/phanton1.move new file mode 100644 index 000000000..03d1df4de --- /dev/null +++ b/tutorial/bootcamp/07_generics/generics/sources/phanton1.move @@ -0,0 +1,29 @@ +module generics::phanton1 { + + use sui::object::UID; + + public struct Balance has store { + value: u64 + } + + public struct Coin has key, store { + id: UID, + balance: Balance + } + + + public struct Balance2 has store { + value: T + } + + + public struct Coin2 has key, store { + id: UID, + balance: Balance2 + } + + + + + +} diff --git a/tutorial/bootcamp/07_generics/generics/sources/phanton2.move b/tutorial/bootcamp/07_generics/generics/sources/phanton2.move new file mode 100644 index 000000000..43b70061e --- /dev/null +++ b/tutorial/bootcamp/07_generics/generics/sources/phanton2.move @@ -0,0 +1,11 @@ +module generics::phanton2 { + + use sui::object::UID; + + public struct Coin has key,store{ + id:UID, + c: T + } + + +} diff --git a/tutorial/bootcamp/07_generics/generics/tests/generics_tests.move b/tutorial/bootcamp/07_generics/generics/tests/generics_tests.move new file mode 100644 index 000000000..66f35336e --- /dev/null +++ b/tutorial/bootcamp/07_generics/generics/tests/generics_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module generics::generics_tests { + // uncomment this line to import the module + // use generics::generics; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_generics() { + // pass + } + + #[test, expected_failure(abort_code = generics::generics_tests::ENotImplemented)] + fun test_generics_fail() { + abort ENotImplemented + } +} +*/ diff --git a/tutorial/bootcamp/07_generics/readme.md b/tutorial/bootcamp/07_generics/readme.md new file mode 100644 index 000000000..61c27e537 --- /dev/null +++ b/tutorial/bootcamp/07_generics/readme.md @@ -0,0 +1,697 @@ +## 资料 +- [PPT](https://docs.google.com/presentation/d/1mTSYySPi0fClm7_RRryrEC4pkrb8gip-z6ziJxP8Hwc) + + +# Generics 范型 + +Generics 在计算机术语中被称为范型,引用 [Rust Book](https://doc.rust-lang.org/stable/book/ch10-00-generics.html) 对于泛型的定义:*泛型是具体类型或其他属性的抽象替代品*。范型使得在编写 Move 代码时提供更强的灵活性,并避免逻辑重复。 + +实际上,泛型允许我们只编写单个函数,写一套逻辑,而应用于任何类型上。所以这种函数也被称为模板 ——个可以应用于任何类型的模板处理程序。 + +范型是 Move 中的一个关键概念,理解并对其工作原理保持直觉非常重要,因此请花点时间阅读本节并充分理解每个部分。 + +## **范型用法** + +### 在架构中使用范型 + +看一个基本示例,了解如何使用 Generics 创建一个可以容纳 Sui Move 中任何类型的容器 `Box` 。 + +首先,在没有范型的情况下,我们可以定义一个包含 `u64` 类型的 `Box`,如下所示: + +```move +module generics::obj_generics { + public struct Box { + value: u64 + } +} +``` + +但是,这种类型只能保存 u64 类型的值,为了能够存储其他类型显然我们不能把所有类型的box都枚举完,所以这个时候就需要使用泛型。 代码将修改如下: + +```move +module generics::obj_generics { + public struct Box { + value: T + } +} + + +``` + +#### 能力限制 + +我们可以添加条件去强制传递给泛型的类型必须具有某些能力。 语法如下所示: + +```move +module generics::obj_generics { + // T must be copyable and droppable + public struct Box has key, store { + value: T + } +} +``` + +💡这里需要注意的是,由于外部容器类型,上例中的内部类型 T 必须满足一定的能力约束。 在这个例子中,`T` 必须有 `store`,因为 `Box` 有 `store` 和 `key`。 但是,`T` 也可以具有容器没有的能力,如本例中的 `drop`。 + +直觉是,如果允许容器包含一个不遵循它所遵循的相同规则的类型,容器将违反其自身的能力。 如果盒子里的东西不能被储存,那盒子怎么能被储存呢? + +在某些情况下,可以使用一种称为`phantom` 的特殊关键字来绕过此规则。 + + +### 在函数中使用Generics + +要编写一个返回 Box 实例的函数,该实例可以为 value 字段接受任何类型的参数,我们还必须在函数定义中使用泛型。 该函数可以定义如下: + +```rust +public fun create_box(value: T): Box { + Box { value } + } +``` + +如果我们想限制函数只接受特定类型的 value,我们只需在函数签名中指定该类型,如下所示: + +```rust +public fun create_box(value: u64): Box { + Box{ value } + } +``` + +这将只接受 u64 类型的输入,为了使用 `create_box` 的方法,同时仍然使用同样的泛型 Box 结构。 + +#### 使用Generics调用函数 + +要调用带有包含泛型的签名的函数,我们必须在方括号中指定类型,如以下语法所示: + +```rust +// value will be of type Storage::Box + let bool_box = storage::create_box(true); +// value will be of the type Storage::Box + let u64_box = storage::create_box(1000000); +``` + +#### 使用运用Sui CLI的Generics调用函数 + +要从 Sui CLI 调用其签名中带有泛型的函数,您必须使用标志 `--type-args` 定义参数的类型。 + +以下示例调用 `create_box` 函数创建一个盒子,其中包含 `0x2::sui::SUI` 类型的硬币: + +```bash +sui client call --package $PACKAGE --module $MODULE --function "create_box" --args $OBJECT_ID --type-args "0x2::coin::Coin<0x2::sui::SUI>" +``` + +## 高级 Generics 语法 + +泛型 +泛型是一种定义可以与任何类型一起使用的类型或函数的方法。当您想要编写可与不同类型一起使用的函数时,或者当您想要定义可以容纳任何其他类型的类型时,这非常有用。泛型是 Move 中许多高级功能的基础,例如集合、抽象实现等。 + +在标准库中 +在本章中我们已经提到了向量类型,它是可以容纳任何其他类型的泛型类型。标准库中泛型类型的另一个示例是 Option类型,它用于表示可能存在或不存在的值。 + +通用语法 +<要定义泛型类型或函数,类型签名需要包含用尖括号 (和)括起来的泛型参数列表>。通用参数以逗号分隔。 +```rust +/// Container for any type `T`. +public struct Container has drop { + value: T, +} + +/// Function that creates a new `Container` with a generic value `T`. +public fun new(value: T): Container { + Container { value } +} +``` + +在上面的示例中,Container是具有单个类型参数的泛型类型T,value 容器的字段存储T.该new函数是具有单个类型参数的泛型函数T,并且它返回Container具有给定值的 a 。泛型类型必须使用具体类型进行初始化,并且泛型函数必须使用具体类型进行调用。 +```rust +#[test] +fun test_container() { +// these three lines are equivalent +let container: Container = new(10); // type inference +let container = new(10); // create a new `Container` with a `u8` value +let container = new(10u8); + + assert!(container.value == 10, 0x0); + + // Value can be ignored only if it has the `drop` ability. + let Container { value: _ } = container; +} +``` + +在测试函数中,我们演示了三种等效的方法来创建具有值 的test_generic新值。由于需要推断数字类型,因此我们指定数字文字的类型。Containeru8 + +多种类型参数 +您可以定义具有多个类型参数的类型或函数。然后类型参数用逗号分隔。 + +```rust +/// A pair of values of any type `T` and `U`. +public struct Pair { + first: T, + second: U, +} + +/// Function that creates a new `Pair` with two generic values `T` and `U`. +public fun new_pair(first: T, second: U): Pair { + Pair { first, second } +} +``` + + +在上面的示例中,是具有两个类型参数和Pair的泛型类型,并且该 函数是具有两个类型参数和的泛型函​​数。该函数返回具有给定值的 a。类型参数的顺序很重要,它应该与类型签名中类型参数的顺序匹配。TUnew_pairTUPair + +```rust +#[test] +fun test_generic() { +// these three lines are equivalent +let pair_1: Pair = new_pair(10, true); // type inference +let pair_2 = new_pair(10, true); // create a new `Pair` with a `u8` and `bool` values +let pair_3 = new_pair(10u8, true); + + assert!(pair_1.first == 10, 0x0); + assert!(pair_1.second, 0x0); + + // Unpacking is identical. + let Pair { first: _, second: _ } = pair_1; + let Pair { first: _, second: _ } = pair_2; + let Pair { first: _, second: _ } = pair_3; + +} +``` + +如果我们添加另一个实例,在函数中交换类型参数new_pair,并尝试比较两种类型,我们会发现类型签名不同,并且无法进行比较。 +```rust +#[test] +fun test_swap_type_params() { +let pair1: Pair = new_pair(10u8, true); +let pair2: Pair = new_pair(true, 10u8); + + // this line will not compile + // assert!(pair1 == pair2, 0x0); + + let Pair { first: pf1, second: ps1 } = pair1; // first1: u8, second1: bool + let Pair { first: pf2, second: ps2 } = pair2; // first2: bool, second2: u8 + + assert!(pf1 == ps2, 0x0); // 10 == 10 + assert!(ps1 == pf2, 0x0); // true == true +} +``` + + +变量pair1和的类型pair2不同,比较将无法编译。 + +为什么要泛型? +在上面的示例中,我们重点关注实例化泛型类型并调用泛型函数来创建这些类型的实例。然而,泛型的真正威力在于能够为基本泛型类型定义共享行为,然后独立于具体类型使用它。这在使用 Move 中的集合、抽象实现和其他高级功能时特别有用。 +```rust +/// A user record with name, age, and some generic metadata +public struct User { + name: String, + age: u8, + /// Varies depending on application. + metadata: T, +} +``` + +在上面的示例中,User是具有单个类型参数 的泛型类型T,具有共享字段 name和,以及可以存储任何类型的age泛型字段。metadata无论是什么 metadata,所有实例都User将具有相同的字段和方法。 + +```rust +/// Updates the name of the user. +public fun update_name(user: &mut User, name: String) { + user.name = name; +} + +/// Updates the age of the user. +public fun update_age(user: &mut User, age: u8) { + user.age = age; +} +``` + +phantom 类型参数 +在某些情况下,您可能希望使用未在该类型的字段或方法中使用的类型参数来定义泛型类型。这称为幻像类型参数。当您想要定义可以容纳任何其他类型的类型,但想要对类型参数强制执行一些约束时,幻像类型参数非常有用。 +```rust +/// A generic type with a phantom type parameter. +public struct Coin { + value: u64 +} +``` + +这里的类型Coin不包含任何使用类型参数的字段或方法T。它用于区分不同类型的硬币,并对类型参数强制执行一些约束T。 + +```rust +public struct USD {} +public struct EUR {} + +#[test] +fun test_phantom_type() { +let coin1: Coin = Coin { value: 10 }; +let coin2: Coin = Coin { value: 20 }; + + // Unpacking is identical because the phantom type parameter is not used. + let Coin { value: _ } = coin1; + let Coin { value: _ } = coin2; +} +``` + +在上面的示例中,我们演示了如何Coin使用不同的幻像类型参数USD和来创建两个不同的实例EUR。类型参数T不用于类型的字段或方法中Coin,但用于区分不同类型的币。它将确保USD和EUR硬币不会混淆。 + +类型参数的约束 +类型参数可以被限制为具有某些能力。当您需要内部类型允许某些行为(例如copy或drop )时,这非常有用。约束类型参数的语法是T: + 。 + +```rust +/// A generic type with a type parameter that has the `drop` ability. +public struct Droppable { + value: T, +} + +/// A generic struct with a type parameter that has the `copy` and `drop` abilities. +public struct CopyableDroppable { + value: T, // T must have the `copy` and `drop` abilities +} +``` + +Move Compiler 将强制类型参数T具有指定的功能。如果类型参数不具有指定的能力,则代码将无法编译。 + +```rust +/// Type without any abilities. +public struct NoAbilities {} + +#[test] +fun test_constraints() { +// Fails - `NoAbilities` does not have the `drop` ability +// let droppable = Droppable { value: 10 }; + + // Fails - `NoAbilities` does not have the `copy` and `drop` abilities + // let copyable_droppable = CopyableDroppable { value: 10 }; +} +``` + + + +泛型 +泛型可用于定义不同输入数据类型的函数和结构。这种语言特性有时被称为参数多态性。在 Move 中,我们经常将术语“泛型”与“类型参数”和“类型实参”互换使用。 + +泛型通常用在库代码中(例如在向量中),以声明适用于任何可能类型(满足指定约束)的代码。这种参数化允许您在多种类型和情况下重用相同的实现。 + +声明类型参数 +函数和结构体都可以在其签名中采用类型参数列表,并用一对尖括号括起来<...>。 + +通用函数 +函数的类型参数放置在函数名称之后和(值)参数列表之前。以下代码定义了一个通用标识函数,它接受任何类型的值并返回该值不变。 +```rust +fun id(x: T): T { +// this type annotation is unnecessary but valid + (x: T) +} +``` + +定义后,类型参数T可以在参数类型、返回类型和函数体内使用。 + +通用结构 +结构体的类型参数放置在结构体名称之后,可用于命名字段的类型。 +```rust +public struct Foo has copy, drop { x: T } + +public struct Bar has copy, drop { + x: T1, + y: vector, +} +``` + +请注意,不必使用类型参数 + +类型参数 +调用泛型函数 +调用泛型函数时,可以在一对尖括号括起来的列表中指定函数类型形参的类型实参。 +```rust +fun foo() { + let x = id(true); +} +``` + +如果您不指定类型参数,Move 的类型推断将为您提供它们。 + +使用通用结构 +类似地,在构造或析构泛型类型的值时,可以为结构的类型参数附加一系列类型实参。 +```rust +fun foo() { + // type arguments on construction + let foo = Foo { x: true }; + let bar = Bar { x: 0, y: vector[] }; + + // type arguments on destruction + let Foo { x } = foo; + let Bar { x, y } = bar; + } +``` +在任何情况下,如果您不指定类型参数,Move 的类型推断都会为您提供它们。 + +类型参数不匹配 +如果您指定类型参数并且它们与提供的实际值冲突,则会给出错误: +```rust +fun foo() { + let x = id(true); // ERROR! true is not a u64 +} +``` + +类似地: +```rust +fun foo() { + let foo = Foo { x: 0 }; // ERROR! 0 is not a bool + let Foo
{ x } = foo; // ERROR! bool is incompatible with address +} +``` + +类型推断 +在大多数情况下,Move 编译器将能够推断类型参数,因此您不必显式写下它们。如果我们省略类型参数,上面的示例将如下所示: +```rust +fun foo() { +let x = id(true); +// ^ is inferred + + let foo = Foo { x: true }; + // ^ is inferred + + let Foo { x } = foo; + // ^ is inferred +} +``` + +注意:当编译器无法推断类型时,您需要手动注释它们。一种常见的情况是调用仅出现在返回位置的类型参数的函数。 +```move +module a::m { + + fun foo() { + let v = vector[]; // ERROR! + // ^ The compiler cannot figure out the element type, since it is never used + + let v = vector[]; + // ^~~~~ Must annotate manually in this case. + } +} +``` + +请注意,这些情况有点人为,因为vector[]从未使用过,因此,Move 的类型推断无法推断类型。 + +但是,如果稍后在该函数中使用该值,编译器将能够推断出类型: +```rust +module a::m { +fun foo() { + let v = vector[]; + // ^ is inferred + vector::push_back(&mut v, 42); + // ^ is inferred + } +} +``` + +### 整数 +在 Move 中,整数类型u8、u16、u32、u64、u128和u256都是不同的类型。然而,这些类型中的每一种都可以使用相同的数值语法来创建。换句话说,如果未提供类型后缀,编译器将根据值的用法推断整数类型。 +```rust +let x8: u8 = 0; +let x16: u16 = 0; +let x32: u32 = 0; +let x64: u64 = 0; +let x128: u128 = 0; +let x256: u256 = 0; +``` + +如果该值未在需要特定整数类型的上下文中使用,u64则将其视为默认值。 +```rust +let x = 0; +// ^ u64 is used by default +``` + +但是,如果该值对于推断的类型太大,则会给出错误 +```rust +let i: u8 = 256; // ERROR! +// ^^^ too large for u8 +let x = 340282366920938463463374607431768211454; +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ too large for u64 +``` + +如果数字太大,您可能需要显式注释它 +```rust +let x = 340282366920938463463374607431768211454u128; +// ^^^^ valid! +``` + +未使用的类型参数 +对于结构体定义,未使用的类型参数是指未出现在结构体中定义的任何字段中的类型参数,但会在编译时静态检查。 Move 允许未使用的类型参数,因此以下结构定义有效: +```rust +public struct Foo { + foo: u64 +} +``` + +这在对某些概念进行建模时非常方便。这是一个例子: +```rust +module a::m { +// Currency Specifiers +public struct A {} +public struct B {} + + // A generic coin type that can be instantiated using a currency + // specifier type. + // e.g. Coin, Coin etc. + public struct Coin has store { + value: u64 + } + + // Write code generically about all currencies + public fun mint_generic(value: u64): Coin { + Coin { value } + } + + // Write code concretely about one currency + public fun mint_a(value: u64): Coin { + mint_generic(value) + } + public fun mint_b(value: u64): Coin { + mint_generic(value) + } +} +``` + +在此示例中,Coin是类型参数的通用类型Currency,它指定硬币的货币,并允许通用地针对任何货币或具体地针对特定货币编写代码。即使Currency类型参数没有出现在 中定义的任何字段中,这种通用性也适用Coin。 + +虚拟类型参数 +在上面的例子中,虽然struct Coin要求有store能力,但既没有Coin也 Coin没有store能力。这是因为条件能力和通用类型的规则 以及A和B没有能力 的事实store,尽管事实上它们甚至没有在 的主体中使用struct Coin。这可能会导致一些不愉快的后果。例如,我们无法将其放入Coin钱包中存储。 + +一种可能的解决方案是向A和添加虚假能力注释B(即 public struct Currency1 has store {})。但是,这可能会导致错误或安全漏洞,因为它削弱了不必要的能力声明的类型。例如,我们永远不会期望存储中的值具有类型为 的字段A,但这通过虚假能力是可能的store。此外,虚假注释具有传染性,要求未使用的类型参数上的许多通用函数也包含必要的约束。 + +幻像类型参数解决了这个问题。未使用的类型参数可以标记为幻像类型参数,它们不参与结构体的能力推导。这样,在派生泛型类型的能力时,不会考虑幻像类型参数的实参,从而避免了虚假能力注释的需要。为了使这个宽松的规则合理,Move 的类型系统保证声明为 的参数phantom要么在结构定义中根本不使用,要么仅用作也声明为 的类型参数的实参phantom。 + + +phantom在结构定义中,可以通过在声明前添加关键字将类型参数声明为幻像。 +```rust +public struct Coin has store { + value: u64 +} +``` + +如果类型参数被声明为幻像,我们就说它是幻像类型参数。定义结构时,Move 的类型检查器确保每个幻像类型参数不在结构定义内使用,或者仅用作幻像类型参数的实参。 +```rust +public struct S1 { f: u64 } +// ^^^^^^^ valid, T1 does not appear inside the struct definition + +public struct S2 { f: S1 } +// ^^^^^^^ valid, T1 appears in phantom position +以下代码显示了违反规则的示例: + +public struct S1 { f: T } +// ^^^^^^^ ERROR! ^ Not a phantom position + +public struct S2 { f: T } +public struct S3 { f: S2 } +// ^^^^^^^ ERROR! ^ Not a phantom position +``` + + +更正式地说,如果某个类型用作幻像类型形参的实参,我们就说该类型出现在幻像位置。有了这个定义,正确使用幻像参数的规则可以指定如下:幻像类型参数只能出现在幻像位置。 + +请注意,指定phantom不是必需的,但如果类型参数可以phantom但未标记为此类,则编译器将发出警告。 + +实例化 +实例化结构体时,在派生结构体功能时将排除幻像参数的实参。例如,考虑以下代码: +```rust +public struct S has copy { f: T1 } +public struct NoCopy {} +public struct HasCopy has copy {} +``` + +现在考虑类型S。由于S是用 定义的copy,并且所有非幻象参数都有copy那么S也有copy。 + +具有能力限制的幻像类型参数 +能力约束和虚拟类型参数是正交特征,因为虚拟参数可以用能力约束来声明。 +```rust +public struct S {} +``` + +当实例化具有能力约束的幻像类型参数时,类型实参必须满足该约束,即使该参数是幻像的。通常的限制适用,并且T 只能使用具有 的参数进行实例化copy。 + +约束条件 +在上面的示例中,我们演示了如何使用类型参数来定义可由调用者稍后插入的“未知”类型。然而,这意味着类型系统几乎没有关于类型的信息,并且必须以非常保守的方式执行检查。从某种意义上说,类型系统必须假设不受约束的泛型的最坏情况——没有能力的类型。 + +约束提供了一种方法来指定这些未知类型具有哪些属性,以便类型系统可以允许否则不安全的操作。 + +声明约束 +可以使用以下语法对类型参数施加约束。 +```rust +// T is the name of the type parameter +T: (+ )* +``` + +可以是四种能力中的任何一种,并且一个类型参数可以同时受到多种能力的约束。因此以下所有内容都是有效的类型参数声明: +```rust +T: copy +T: copy + drop +T: copy + drop + store + key +``` + +验证约束 +在实例化站点检查约束 +```rust +public struct Foo { x: T } + +public struct Bar { x: Foo } +// ^^ valid, u8 has `copy` + +public struct Baz { x: Foo } +// ^ ERROR! T does not have 'copy' +``` + +对于函数也类似 +```rust +fun unsafe_consume(x: T) { + // ERROR! x does not have 'drop' +} + +fun consume(x: T) { + // valid, x will be dropped automatically +} + +public struct NoAbilities {} + +fun foo() { + let r = NoAbilities {}; + consume(NoAbilities); + // ^^^^^^^^^^^ ERROR! NoAbilities does not have 'drop' +} +``` + +还有一些类似的例子,但是copy +```rust +fun unsafe_double(x: T) { +(copy x, x) +// ERROR! T does not have 'copy' +} + +fun double(x: T) { +(copy x, x) // valid, T has 'copy' +} + +public struct NoAbilities {} + +fun foo(): (NoAbilities, NoAbilities) { +let r = NoAbilities {}; +double(r) +// ^ ERROR! NoAbilities does not have 'copy' +} +``` + +有关更多信息,请参阅有关条件能力和泛型类型的能力部分 。 + +递归的限制 +递归结构 +泛型结构不能直接或间接包含相同类型的字段,即使具有不同的类型参数也是如此。以下所有结构定义均无效: +```rust +public struct Foo { + x: Foo // ERROR! 'Foo' containing 'Foo' +} + +public struct Bar { + x: Bar // ERROR! 'Bar' containing 'Bar' +} + +// ERROR! 'A' and 'B' forming a cycle, which is not allowed either. +public struct A { + x: B +} + +public struct B { + x: A + y: A +} +``` + +### 高级主题:类型级递归 +Move 允许递归调用通用函数。然而,当与泛型结构结合使用时,在某些情况下可能会创建无限数量的类型,并且允许这意味着给编译器、虚拟机和其他语言组件增加不必要的复杂性。因此,这样的递归是被禁止的。 + +此限制将来可能会放宽,但就目前而言,以下示例应该让您了解什么是允许的,什么是不允许的。 +```rust +module a::m { +public struct A {} + + // Finitely many types -- allowed. + // foo -> foo -> foo -> ... is valid + fun foo() { + foo(); + } + + // Finitely many types -- allowed. + // foo -> foo> -> foo> -> ... is valid + fun foo() { + foo>(); + } +} +``` + +不允许: +```move +module a::m { + public struct A {} + + // Infinitely many types -- NOT allowed. + // error! + // foo -> foo> -> foo>> -> ... + fun foo() { + foo>(); + } +} +``` + +同样,不允许: + +```move +module a::n { +public struct A {} + + // Infinitely many types -- NOT allowed. + // error! + // foo -> bar -> foo> + // -> bar, T2> -> foo, A> + // -> bar, A> -> foo, A>> + // -> ... + fun foo() { + bar(); + } + + fun bar { + foo>(); + } +} +``` + +请注意,类型级别递归的检查基于对调用站点的保守分析,并且不考虑控制流或运行时值。 +```move +module a::m { +public struct A {} + + // Infinitely many types -- NOT allowed. + // error! + fun foo(n: u64) { + if (n > 0) foo>(n - 1); + } +} +``` + +上面示例中的函数在技术上将针对任何给定输入终止,因此仅创建有限多个类型,但 Move 的类型系统仍然认为它无效。 + diff --git a/tutorial/bootcamp/08_design_pattern/code/design/Move.lock b/tutorial/bootcamp/08_design_pattern/code/design/Move.lock new file mode 100644 index 000000000..feeadeffc --- /dev/null +++ b/tutorial/bootcamp/08_design_pattern/code/design/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "E4F87CBF35D425A0D31EE3E494F1F8FE868A53C6C314ACE6048AD81793069E5C" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xb58d8ef2b950d7ab71b5193a5041460a6e52943cdea90b18e0ad8a61dd276640" +latest-published-id = "0xb58d8ef2b950d7ab71b5193a5041460a6e52943cdea90b18e0ad8a61dd276640" +published-version = "1" diff --git a/tutorial/bootcamp/08_design_pattern/code/design/Move.toml b/tutorial/bootcamp/08_design_pattern/code/design/Move.toml new file mode 100644 index 000000000..ea7864cef --- /dev/null +++ b/tutorial/bootcamp/08_design_pattern/code/design/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "design" +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/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] +design = "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/tutorial/bootcamp/08_design_pattern/code/design/sources/design.move b/tutorial/bootcamp/08_design_pattern/code/design/sources/design.move new file mode 100644 index 000000000..20a7a8ec9 --- /dev/null +++ b/tutorial/bootcamp/08_design_pattern/code/design/sources/design.move @@ -0,0 +1,36 @@ +module design::item { + use std::string::String; + + + public struct AdminCap has key { id: UID } + + + public struct Item has key, store { id: UID, name: String } + + fun init(ctx: &mut TxContext) { + let my_address = ctx.sender(); + + let addmin_cap = AdminCap { + id: object::new(ctx) + }; + + transfer::transfer(addmin_cap, my_address); + + let addmin_cap2 = AdminCap { + id: object::new(ctx) + }; + transfer::transfer(addmin_cap2, @0x1111); + + } + + + // + public fun create_and_send( + _: &AdminCap, name: vector, to: address, ctx: &mut TxContext + ) { + transfer::transfer(Item { + id: object::new(ctx), + name: name.to_string() + }, to) + } +} \ No newline at end of file diff --git a/tutorial/bootcamp/08_design_pattern/code/design/sources/guardian.move b/tutorial/bootcamp/08_design_pattern/code/design/sources/guardian.move new file mode 100644 index 000000000..c42fff950 --- /dev/null +++ b/tutorial/bootcamp/08_design_pattern/code/design/sources/guardian.move @@ -0,0 +1,33 @@ + +module design::guardian { + + public struct Guardian has key, store { + id: UID + } + + + public fun create_guardian( + _witness: T, ctx: &mut TxContext + ): Guardian { + Guardian { id: object::new(ctx) } + } +} + + + + +module design::peace_guardian { + use design::guardian; + + public struct PEACE has drop {} + + fun init(ctx: &mut TxContext) { + + let peace = PEACE{}; + + transfer::public_transfer( + guardian::create_guardian(peace, ctx), + ctx.sender() + ) + } +} \ No newline at end of file diff --git a/tutorial/bootcamp/08_design_pattern/code/design/sources/guardian_2.move b/tutorial/bootcamp/08_design_pattern/code/design/sources/guardian_2.move new file mode 100644 index 000000000..61ced38fe --- /dev/null +++ b/tutorial/bootcamp/08_design_pattern/code/design/sources/guardian_2.move @@ -0,0 +1,60 @@ +module design::guardian_2 { + + public struct Guardian has key, store { + id: UID + } + + public fun create_guardian( + _witness: T, ctx: &mut TxContext + ): Guardian { + Guardian { id: object::new(ctx) } + } +} + + +module design::guardian_3 { + use sui::transfer::public_transfer; + use design::peace_guardian_2::PEACE_HOLD; + use design::guardian_2::create_guardian; + use design::peace_guardian_2::get_peace; + + public entry fun create_guardian_use_hold(hold: PEACE_HOLD, ctx: &mut TxContext) { + let peace = get_peace(hold); + + let house = create_guardian(peace, ctx); + public_transfer(house, @0x112222) + } +} + + +module design::peace_guardian_2 { + use sui::object; + + public struct PEACE has drop, store {} + + public struct PEACE_HOLD has key { + id: UID, + peace: PEACE + } + + + fun init(ctx: &mut TxContext) { + let peace = PEACE {}; + + let peace_hold = PEACE_HOLD { + id: object::new(ctx), + peace, + }; + + transfer::public_transfer( + peace_hold, + @0x1111 + ); + } + + public fun get_peace(peace_hold: PEACE_HOLD): PEACE { + let PEACE_HOLD { id, peace } = peace_hold; + object::delete(id); + peace + } +} \ No newline at end of file diff --git a/tutorial/bootcamp/08_design_pattern/code/design/sources/trade_id.move b/tutorial/bootcamp/08_design_pattern/code/design/sources/trade_id.move new file mode 100644 index 000000000..c175db17f --- /dev/null +++ b/tutorial/bootcamp/08_design_pattern/code/design/sources/trade_id.move @@ -0,0 +1,73 @@ +module design::trade_in { + use sui::sui::SUI; + use sui::coin::Coin; + + + const MODEL_ONE_PRICE: u64 = 10000; + const MODEL_TWO_PRICE: u64 = 20000; + const EWrongModel: u64 = 1; + const EIncorrectAmount: u64 = 2; + + public struct Phone has key, store { id: UID, model: u8 } + + public struct Receipt { price: u64 } + + public fun buy_phone(model: u8, ctx: &mut TxContext): (Phone, Receipt) { + assert!(model == 1 || model == 2, EWrongModel); + + let price = if (model == 1) MODEL_ONE_PRICE else MODEL_TWO_PRICE; + + ( + Phone { id: object::new(ctx), model }, + Receipt { price } + ) + } + + + public fun pay_full(receipt: Receipt, payment: Coin) { + let Receipt { price } = receipt; + + assert!(payment.value() == price, EIncorrectAmount); + + // for simplicity's sake transfer directly to @examples account + transfer::public_transfer(payment, @examples); + } + + + public fun trade_in(receipt: Receipt, old_phone: Phone, payment: Coin) { + let Receipt { price } = receipt; + + let tradein_price = if (old_phone.model == 1) { + MODEL_ONE_PRICE + } else { + MODEL_TWO_PRICE + }; + let to_pay = price - (tradein_price / 2); + + assert!(payment.value() == to_pay, EIncorrectAmount); + + transfer::public_transfer(old_phone, @examples); + transfer::public_transfer(payment, @examples); + } +} + + +module design::trade_in_2 { + + use sui::coin::Coin; + use sui::sui::SUI; + use sui::transfer::public_transfer; + use sui::tx_context::sender; + use design::trade_in::{buy_phone, pay_full}; + + + public fun test(payment: Coin, ctx: &mut TxContext) { + let (iphone, receipt) = buy_phone(1u8, ctx); + + // + public_transfer(iphone, sender(ctx)); + // + + pay_full(receipt, payment) + } +} \ No newline at end of file diff --git a/tutorial/bootcamp/08_design_pattern/code/design/sources/usdc.move b/tutorial/bootcamp/08_design_pattern/code/design/sources/usdc.move new file mode 100644 index 000000000..457c7ccf5 --- /dev/null +++ b/tutorial/bootcamp/08_design_pattern/code/design/sources/usdc.move @@ -0,0 +1,27 @@ +module design::usdc { + use sui::coin; + + public struct USDC has drop {} + + fun init(witness: USDC, ctx: &mut TxContext) { + + // let witness = USDC{}; + + let (treasury, metadata) = coin::create_currency( + witness, + 6, // decimals + b"USDC", // symbol + b"USDC", // name + b"Don't ask why", // description + option::none(), // icon url + ctx + ); + + transfer::public_transfer(treasury, ctx.sender()); + + transfer::public_freeze_object(metadata); + } + + + +} \ No newline at end of file diff --git a/tutorial/bootcamp/08_design_pattern/code/design/tests/design_tests.move b/tutorial/bootcamp/08_design_pattern/code/design/tests/design_tests.move new file mode 100644 index 000000000..5bcf407f2 --- /dev/null +++ b/tutorial/bootcamp/08_design_pattern/code/design/tests/design_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module design::design_tests { + // uncomment this line to import the module + // use design::design; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_design() { + // pass + } + + #[test, expected_failure(abort_code = ::design::design_tests::ENotImplemented)] + fun test_design_fail() { + abort ENotImplemented + } +} +*/ diff --git a/tutorial/bootcamp/08_design_pattern/code/flash_lender/Move.lock b/tutorial/bootcamp/08_design_pattern/code/flash_lender/Move.lock new file mode 100644 index 000000000..ebbe6d44a --- /dev/null +++ b/tutorial/bootcamp/08_design_pattern/code/flash_lender/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "86DAD3F7BCD8836F111B43BB6ECDC2B6C97BD545FB9E594E5360C87A170E298F" +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.28.0" +edition = "2024.beta" +flavor = "sui" diff --git a/tutorial/bootcamp/08_design_pattern/code/flash_lender/Move.toml b/tutorial/bootcamp/08_design_pattern/code/flash_lender/Move.toml new file mode 100644 index 000000000..cba257248 --- /dev/null +++ b/tutorial/bootcamp/08_design_pattern/code/flash_lender/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "flash_lender" +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] +flash_lender = "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/tutorial/bootcamp/08_design_pattern/code/flash_lender/sources/flash_lender.move b/tutorial/bootcamp/08_design_pattern/code/flash_lender/sources/flash_lender.move new file mode 100644 index 000000000..fa1c4b200 --- /dev/null +++ b/tutorial/bootcamp/08_design_pattern/code/flash_lender/sources/flash_lender.move @@ -0,0 +1,171 @@ +module flash_lender::flash_lender { + use sui::coin::{Self, Coin}; + use sui::balance::Balance; + #[test_only] + use std::vector::swap; + #[test_only] + use sui::object; + #[test_only] + use sui::test_scenario; + #[test_only] + use sui::test_scenario::sender; + #[test_only] + use sui::transfer::public_transfer; + + + public struct FlashLender has key { + id: UID, + to_lend: Balance, + fee: u64, + } + + + // 类型 + // 关联 + public struct Receipt { + flash_lender_id: ID, + repay_amount: u64 + } + + + public struct AdminCap has key, store { + id: UID, + flash_lender_id: ID, + } + + + const ELoanTooLarge: u64 = 0; + const EInvalidRepaymentAmount: u64 = 1; + const ERepayToWrongLender: u64 = 2; + const EAdminOnly: u64 = 3; + const EWithdrawTooLarge: u64 = 4; + + + public fun new(to_lend: Balance, fee: u64, ctx: &mut TxContext): AdminCap { + let id = object::new(ctx); + let flash_lender_id = id.to_inner(); + let flash_lender = FlashLender { id, to_lend, fee }; + + transfer::share_object(flash_lender); + + AdminCap { id: object::new(ctx), flash_lender_id } + } + + + public entry fun create(to_lend: Coin, fee: u64, ctx: &mut TxContext) { + let balance = to_lend.into_balance(); + let admin_cap = new(balance, fee, ctx); + + transfer::public_transfer(admin_cap, ctx.sender()) + } + + + public fun loan( + self: &mut FlashLender, amount: u64, ctx: &mut TxContext + ): (Coin, Receipt) { + let to_lend = &mut self.to_lend; + assert!(to_lend.value() >= amount, ELoanTooLarge); + let loan = coin::take(to_lend, amount, ctx); + + let repay_amount = amount + self.fee; + let receipt = Receipt { flash_lender_id: object::id(self), repay_amount }; + + (loan, receipt) + } + + + public fun repay(self: &mut FlashLender, payment: Coin, receipt: Receipt) { + let Receipt { flash_lender_id, repay_amount } = receipt; + assert!(object::id(self) == flash_lender_id, ERepayToWrongLender); + assert!(payment.value() == repay_amount, EInvalidRepaymentAmount); + + coin::put(&mut self.to_lend, payment) + } + + + public fun withdraw( + self: &mut FlashLender, + admin_cap: &AdminCap, + amount: u64, + ctx: &mut TxContext + ): Coin { + // only the holder of the `AdminCap` for `self` can withdraw funds + check_admin(self, admin_cap); + + let to_lend = &mut self.to_lend; + assert!(to_lend.value() >= amount, EWithdrawTooLarge); + coin::take(to_lend, amount, ctx) + } + + /// Allow admin to add more funds to `self` + public entry fun deposit( + self: &mut FlashLender, admin_cap: &AdminCap, coin: Coin + ) { + // only the holder of the `AdminCap` for `self` can deposit funds + check_admin(self, admin_cap); + coin::put(&mut self.to_lend, coin); + } + + /// Allow admin to update the fee for `self` + public entry fun update_fee( + self: &mut FlashLender, admin_cap: &AdminCap, new_fee: u64 + ) { + // only the holder of the `AdminCap` for `self` can update the fee + check_admin(self, admin_cap); + + self.fee = new_fee + } + + fun check_admin(self: &FlashLender, admin_cap: &AdminCap) { + assert!(object::borrow_id(self) == &admin_cap.flash_lender_id, EAdminOnly); + } + + // === Reads === + + /// Return the current fee for `self` + public fun fee(self: &FlashLender): u64 { + self.fee + } + + /// Return the maximum amount available for borrowing + public fun max_loan(self: &FlashLender): u64 { + self.to_lend.value() + } + + /// Return the amount that the holder of `self` must repay + public fun repay_amount(self: &Receipt): u64 { + self.repay_amount + } + + /// Return the amount that the holder of `self` must repay + public fun flash_lender_id(self: &Receipt): ID { + self.flash_lender_id + } + + // #[test] + // fun test() { + // use sui::sui::SUI; + // let mut xx = test_scenario::begin(@0x1111); + // let ctx = test_scenario::ctx(&mut xx); + // let flash_lender = FlashLender { id: object::new(ctx), to_lend, 100 }; + // let (coin, reeipt) = loan(&mut flash_lender, 10000000000, ctx); + // + // 1000; + // let usdc = sui_swap(coin); + // + // let sui_coin = uni_swap(usdc); + // 2000 = 1000; + // + // + // + // let re_coin = coin::split(sui_coin, 1100, ctx); + // + // repay(&mut flash_lender, re_coin, reeipt); + // + // + // /// 900 + // public_transfer(sui_coin, @x222222); + // } +} + + diff --git a/tutorial/bootcamp/08_design_pattern/code/flash_lender/tests/flash_lender_tests.move b/tutorial/bootcamp/08_design_pattern/code/flash_lender/tests/flash_lender_tests.move new file mode 100644 index 000000000..05b6b1489 --- /dev/null +++ b/tutorial/bootcamp/08_design_pattern/code/flash_lender/tests/flash_lender_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module flash_lender::flash_lender_tests { + // uncomment this line to import the module + // use flash_lender::flash_lender; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_flash_lender() { + // pass + } + + #[test, expected_failure(abort_code = ::flash_lender::flash_lender_tests::ENotImplemented)] + fun test_flash_lender_fail() { + abort ENotImplemented + } +} +*/ diff --git a/tutorial/bootcamp/08_design_pattern/readme.md b/tutorial/bootcamp/08_design_pattern/readme.md new file mode 100644 index 000000000..0256a90d6 --- /dev/null +++ b/tutorial/bootcamp/08_design_pattern/readme.md @@ -0,0 +1,7 @@ +# 热土豆 + +### 参考资料 +[PPT](https://docs.google.com/presentation/d/1TJ1vIHNRR3JJtbz6LR1cZSQM94zZeq1UlMKMenGXhik) + +- https://examples.sui.io/patterns/hot-potato.html +- https://github.com/MystenLabs/sui/tree/main/sui_programmability/examples \ No newline at end of file diff --git a/tutorial/bootcamp/09_game/code/flip_coin/Move.lock b/tutorial/bootcamp/09_game/code/flip_coin/Move.lock new file mode 100644 index 000000000..b1c49d01f --- /dev/null +++ b/tutorial/bootcamp/09_game/code/flip_coin/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "6EB2CAC07B774F63FCC35470693AE63D68E1291797AC351600247530EB74FE53" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "2024.beta" +flavor = "sui" diff --git a/tutorial/bootcamp/09_game/code/flip_coin/Move.toml b/tutorial/bootcamp/09_game/code/flip_coin/Move.toml new file mode 100644 index 000000000..dfe37676e --- /dev/null +++ b/tutorial/bootcamp/09_game/code/flip_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "flip_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/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] +flip_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/tutorial/bootcamp/09_game/code/flip_coin/sources/flip_coin.move b/tutorial/bootcamp/09_game/code/flip_coin/sources/flip_coin.move new file mode 100644 index 000000000..d6a8e228b --- /dev/null +++ b/tutorial/bootcamp/09_game/code/flip_coin/sources/flip_coin.move @@ -0,0 +1,81 @@ +module flip_coin::flip_coin { + + use sui::balance; + use sui::balance::Balance; + use sui::coin; + use sui::coin::{Coin, from_balance, into_balance}; + use sui::object; + use sui::random; + use sui::random::Random; + use sui::sui::SUI; + use sui::transfer::{share_object, transfer, public_transfer}; + use sui::tx_context::sender; + + public struct Game has key { + id: UID, + val: Balance + } + + + public struct AdminCap has key { + id: UID, + } + + + fun init(ctx: &mut TxContext) { + let game = Game { + id: object::new(ctx), + val: balance::zero() + }; + share_object(game); + + let admin = AdminCap { + id: object::new(ctx) + }; + + transfer(admin, sender(ctx)); + } + + + entry fun play(game: &mut Game, flip_value: bool, in: Coin, rand: &Random, + ctx: &mut TxContext) { + let coin_value = coin::value(&in); + + let play_address = sender(ctx); + let game_val = balance::value(&game.val) ; + + if (game_val < coin_value) { + abort 100u64; + }; + + //TODO 防止 all in 战神 + //TODO 每次最大值 就是合约里面钱的10分之一就行了 + + let mut gen = random::new_generator(rand, ctx); + + let mut flag = random::generate_bool(&mut gen); + + if (flip_value == flag) { + let win_balance = balance::split(&mut game.val, coin_value); + let win_coin = from_balance(win_balance, ctx); + public_transfer(win_coin, play_address); + public_transfer(in, play_address); + }else { + let in_balance = into_balance(in); + balance::join(&mut game.val, in_balance); + } + } + + + public entry fun add_sui(game: &mut Game, in: Coin, _ctx: &TxContext) { + let in_balance = into_balance(in); + balance::join(&mut game.val, in_balance); + } + + public entry fun remove_sui(_: &AdminCap, game: &mut Game, + amt: u64, ctx: &mut TxContext) { + let win_balance = balance::split(&mut game.val, amt); + let win_coin = from_balance(win_balance, ctx); + public_transfer(win_coin, sender(ctx)); + } +} diff --git a/tutorial/bootcamp/09_game/code/flip_coin/tests/flip_coin_tests.move b/tutorial/bootcamp/09_game/code/flip_coin/tests/flip_coin_tests.move new file mode 100644 index 000000000..cd0b3cdfd --- /dev/null +++ b/tutorial/bootcamp/09_game/code/flip_coin/tests/flip_coin_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module flip_coin::flip_coin_tests { + // uncomment this line to import the module + // use flip_coin::flip_coin; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_flip_coin() { + // pass + } + + #[test, expected_failure(abort_code = ::flip_coin::flip_coin_tests::ENotImplemented)] + fun test_flip_coin_fail() { + abort ENotImplemented + } +} +*/ diff --git a/tutorial/bootcamp/09_game/readme.md b/tutorial/bootcamp/09_game/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/tutorial/bootcamp/10_nft/01_object.md b/tutorial/bootcamp/10_nft/01_object.md new file mode 100644 index 000000000..dd011b09a --- /dev/null +++ b/tutorial/bootcamp/10_nft/01_object.md @@ -0,0 +1,2 @@ +# nft +任何 object 都是nft \ No newline at end of file diff --git a/tutorial/bootcamp/10_nft/02_display.md b/tutorial/bootcamp/10_nft/02_display.md new file mode 100644 index 000000000..6946c1b37 --- /dev/null +++ b/tutorial/bootcamp/10_nft/02_display.md @@ -0,0 +1,3 @@ +# display + +把普通包裹一下 \ No newline at end of file diff --git a/tutorial/bootcamp/10_nft/code/display_nft/Move.lock b/tutorial/bootcamp/10_nft/code/display_nft/Move.lock new file mode 100644 index 000000000..c83d0f026 --- /dev/null +++ b/tutorial/bootcamp/10_nft/code/display_nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "9C6BB38E4B353CE5BBCD6B378CED360DE2BE8AFA09C22723E93EAF321EDB2FFD" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x2c9a2013ccbc02f600a43da8a96753132bd1dc59eb3702144f5d708c22a80a2c" +latest-published-id = "0x2c9a2013ccbc02f600a43da8a96753132bd1dc59eb3702144f5d708c22a80a2c" +published-version = "1" diff --git a/tutorial/bootcamp/10_nft/code/display_nft/Move.toml b/tutorial/bootcamp/10_nft/code/display_nft/Move.toml new file mode 100644 index 000000000..e4f6bcd54 --- /dev/null +++ b/tutorial/bootcamp/10_nft/code/display_nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "display_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/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] +display_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/tutorial/bootcamp/10_nft/code/display_nft/sources/display_nft.move b/tutorial/bootcamp/10_nft/code/display_nft/sources/display_nft.move new file mode 100644 index 000000000..c72341162 --- /dev/null +++ b/tutorial/bootcamp/10_nft/code/display_nft/sources/display_nft.move @@ -0,0 +1,55 @@ +module display_nft::display_nft { + use sui::tx_context::{sender}; + use std::string::{utf8, String}; + + + use sui::package; + use sui::display; + + public struct MyNFT has key, store { + id: UID, + name: String, + image_url: String, + } + + public struct DISPLAY_NFT has drop {} + + + fun init(otw: DISPLAY_NFT, ctx: &mut TxContext) { + let keys = vector[ + utf8(b"name"), + utf8(b"link"), + utf8(b"image_url"), + utf8(b"description"), + utf8(b"project_url"), + utf8(b"creator"), + ]; + + let values = vector[ + utf8(b"{name}"), + utf8(b"https://sui-heroes.io/hero/{id}"), + utf8(b"{image_url}"), + utf8(b"A true Hero of the Sui ecosystem!"), + utf8(b"https://sui-heroes.io"), + utf8(b"Unknown Sui Fan") + ]; + + let publisher = package::claim(otw, ctx); + + let mut display = display::new_with_fields( + &publisher, keys, values, ctx + ); + + display::update_version(&mut display); + + transfer::public_transfer(publisher, sender(ctx)); + transfer::public_transfer(display, sender(ctx)); + } + + + public entry fun mint(name: String, image_url: String, ctx: &mut TxContext) { + let id = object::new(ctx); + let nft = MyNFT { id, name, image_url }; + transfer::public_transfer(nft, sender(ctx)); + } +} \ No newline at end of file diff --git a/tutorial/bootcamp/10_nft/code/display_nft/tests/display_nft_tests.move b/tutorial/bootcamp/10_nft/code/display_nft/tests/display_nft_tests.move new file mode 100644 index 000000000..b7761719d --- /dev/null +++ b/tutorial/bootcamp/10_nft/code/display_nft/tests/display_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module display_nft::display_nft_tests { + // uncomment this line to import the module + // use display_nft::display_nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_display_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::display_nft::display_nft_tests::ENotImplemented)] + fun test_display_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/tutorial/bootcamp/10_nft/code/my_nft/Move.lock b/tutorial/bootcamp/10_nft/code/my_nft/Move.lock new file mode 100644 index 000000000..0fbbf8ff7 --- /dev/null +++ b/tutorial/bootcamp/10_nft/code/my_nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "1C7E4E6784885553F41F77ACBDC5306913E332B17CDD69A828BE8590288858D2" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xe10e50f805fb0db4ca3fd475b4bbe6fd569c27737f6a334176666ac8033bfd40" +latest-published-id = "0xe10e50f805fb0db4ca3fd475b4bbe6fd569c27737f6a334176666ac8033bfd40" +published-version = "1" diff --git a/tutorial/bootcamp/10_nft/code/my_nft/Move.toml b/tutorial/bootcamp/10_nft/code/my_nft/Move.toml new file mode 100644 index 000000000..1f5914ca6 --- /dev/null +++ b/tutorial/bootcamp/10_nft/code/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/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] +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/tutorial/bootcamp/10_nft/code/my_nft/sources/my_nft.move b/tutorial/bootcamp/10_nft/code/my_nft/sources/my_nft.move new file mode 100644 index 000000000..e9a2b6630 --- /dev/null +++ b/tutorial/bootcamp/10_nft/code/my_nft/sources/my_nft.move @@ -0,0 +1,41 @@ + +module my_nft::my_nft { + + use std::string; + use std::string::String; + use sui::object; + use sui::transfer::public_transfer; + use sui::tx_context::sender; + + public struct My_NFT has key, store{ + id:UID, + name: String, + image_url: String + } + + fun init(ctx:&mut TxContext){ + let my_nft = My_NFT{ + id: object::new(ctx), + name: string::utf8(b"uvd nft"), + image_url: string::utf8(b"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimage109.360doc.com%2FDownloadImg%2F2024%2F05%2F1018%2F283462633_4_20240510061136195&refer=http%3A%2F%2Fimage109.360doc.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1722945331&t=3e9089c452b394660c39b0b88bd8871a"), + }; + public_transfer(my_nft, sender(ctx)); + } + + + public entry fun mint(name:String, image_url:String, ctx:&mut TxContext){ + let my_nft = My_NFT{ + id:object::new(ctx), + name, + image_url + }; + public_transfer(my_nft, sender(ctx)); + } + + + public entry fun edit_url(my_nft:&mut My_NFT, url:String, ctx:&mut TxContext){ + my_nft.image_url = url ; + } + + +} diff --git a/tutorial/bootcamp/10_nft/code/my_nft/tests/my_nft_tests.move b/tutorial/bootcamp/10_nft/code/my_nft/tests/my_nft_tests.move new file mode 100644 index 000000000..5d3a60230 --- /dev/null +++ b/tutorial/bootcamp/10_nft/code/my_nft/tests/my_nft_tests.move @@ -0,0 +1,19 @@ +/* +#[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/tutorial/bootcamp/10_nft/code/nft/Move.lock b/tutorial/bootcamp/10_nft/code/nft/Move.lock new file mode 100644 index 000000000..fa8ace5ec --- /dev/null +++ b/tutorial/bootcamp/10_nft/code/nft/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "FDD68B377AB3AA8F8615BAC8B5CD1FDAB5367EF901825B5A311FF58285BE6722" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x47d8401b0ea5096403b3862414915a976926b895f242c8492bd207e712d27f6d" +latest-published-id = "0x47d8401b0ea5096403b3862414915a976926b895f242c8492bd207e712d27f6d" +published-version = "1" diff --git a/tutorial/bootcamp/10_nft/code/nft/Move.toml b/tutorial/bootcamp/10_nft/code/nft/Move.toml new file mode 100644 index 000000000..1887916ea --- /dev/null +++ b/tutorial/bootcamp/10_nft/code/nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "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/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] +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/tutorial/bootcamp/10_nft/code/nft/sources/nft.move b/tutorial/bootcamp/10_nft/code/nft/sources/nft.move new file mode 100644 index 000000000..5aa63d13b --- /dev/null +++ b/tutorial/bootcamp/10_nft/code/nft/sources/nft.move @@ -0,0 +1,39 @@ +module nft::nft { + use std::string; + use std::string::String; + use sui::object; + use sui::transfer::public_transfer; + use sui::tx_context::sender; + + + public struct NFT has key, store { + id: UID, + name: String, + image_url: String, + } + + fun init(ctx:&mut TxContext){ + let my_nft = NFT{ + id:object::new(ctx), + name:string::utf8(b"my name"), + image_url: string::utf8(b"https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F0511%2F99689e37j00sdb7l20021d000hs00lzg.jpg&thumbnail=660x2147483647&quality=80&type=jpg"), + }; + + public_transfer(my_nft, sender(ctx)) + + } + + + + public entry fun mint(name:String,url:String,ctx:&mut TxContext){ + let my_nft = NFT{ + id:object::new(ctx), + name, + image_url:url + }; + + public_transfer(my_nft, sender(ctx)) + } + +} + diff --git a/tutorial/bootcamp/10_nft/code/nft/tests/nft_tests.move b/tutorial/bootcamp/10_nft/code/nft/tests/nft_tests.move new file mode 100644 index 000000000..1e3625fad --- /dev/null +++ b/tutorial/bootcamp/10_nft/code/nft/tests/nft_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module nft::nft_tests { + // uncomment this line to import the module + // use nft::nft; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_nft() { + // pass + } + + #[test, expected_failure(abort_code = ::nft::nft_tests::ENotImplemented)] + fun test_nft_fail() { + abort ENotImplemented + } +} +*/ diff --git a/tutorial/bootcamp/11_test/readme.md b/tutorial/bootcamp/11_test/readme.md new file mode 100644 index 000000000..208cca4c6 --- /dev/null +++ b/tutorial/bootcamp/11_test/readme.md @@ -0,0 +1,22 @@ +## 单元测试 +- #[test] 让注释方法变成仅用于测试; +- #[test_only] 将模块或模块成员(use、function、struct或const)注释为仅用于测试的代码。 +- #[expected_failure] 希望被注释的测试方法执行的结果为失败 + +调用测试方法的命令为 `sui move test` 。 注意,#[test] 注释只能对不带参数的方法有效: + + +```rust + #[test] // 执行Sui move test 后会打印 5 + fun this_is_a_test() { + let x:u8 = 5; + debug::print(&x); + } + + #[test] //执行会报错,因为方法需要参数 + fun this_is_not_correct (arg: u8){ + debug::print(&arg); + } +``` + + - [Scenario](https://learnblockchain.cn/article/8066) \ No newline at end of file diff --git a/tutorial/bootcamp/11_test/test_demo/Move.lock b/tutorial/bootcamp/11_test/test_demo/Move.lock new file mode 100644 index 000000000..4739942db --- /dev/null +++ b/tutorial/bootcamp/11_test/test_demo/Move.lock @@ -0,0 +1,26 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "ADC371100071AD8AF7133EB032222D0CC4F16E032520AD7AD1A623E28724A819" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.28.0" +edition = "2024.beta" +flavor = "sui" diff --git a/tutorial/bootcamp/11_test/test_demo/Move.toml b/tutorial/bootcamp/11_test/test_demo/Move.toml new file mode 100644 index 000000000..c6c423352 --- /dev/null +++ b/tutorial/bootcamp/11_test/test_demo/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "test_demo" +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/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] +test_demo = "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/tutorial/bootcamp/11_test/test_demo/sources/test_demo.move b/tutorial/bootcamp/11_test/test_demo/sources/test_demo.move new file mode 100644 index 000000000..4c0496dfd --- /dev/null +++ b/tutorial/bootcamp/11_test/test_demo/sources/test_demo.move @@ -0,0 +1,31 @@ +module test_demo::test_demo { + + #[test_only] + use std::debug::print; + + public fun add(a:u32, b:u32):u32{ + a + b + } + + fun init(ctx:&mut TxContext){ + /// afasdasda + /// fasdas + } + + + #[test_only] + public fun test_for_init(ctx:&mut TxContext){ + init(ctx); + print(&b"hello test"); + } + + + + #[test] + fun test_fun_add() { + let c = add(1, 2); + let d: u32 = 3; + assert!(c == d,0x1); + } +} + diff --git a/tutorial/bootcamp/11_test/test_demo/tests/test_demo_tests.move b/tutorial/bootcamp/11_test/test_demo/tests/test_demo_tests.move new file mode 100644 index 000000000..5c158f0c0 --- /dev/null +++ b/tutorial/bootcamp/11_test/test_demo/tests/test_demo_tests.move @@ -0,0 +1,31 @@ +#[test_only] +module test_demo::test_demo_tests { + + use sui::test_scenario::{ctx, begin, end, next_tx}; + use test_demo::test_demo::test_for_init; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_init() { + + let my_address = @0x88888; + let my_address = @0x111111; + + let mut scenario = begin(my_address); + let my_ctx = ctx(&mut scenario); + test_for_init(my_ctx); + + // 模拟钱包签名发到链 但是真实的是发到内存里面 + // let transaction_effects = next_tx(&mut scenario, my_address); + + end(scenario); + } + + + // #[test, expected_failure(abort_code = ::test_demo::test_demo_tests::ENotImplemented)] + // fun test_test_demo_fail() { + // abort ENotImplemented + // } +} +
+ +

Vite + Suiet Kit

+
+ { + if (error.code === ErrorCode.WALLET__CONNECT_ERROR__USER_REJECTED) { + console.warn( + "user rejected the connection to " + error.details?.wallet + ); + } else { + console.warn("unknown connect error: ", error); + } + }} + /> + + {!wallet.connected ? ( +

Connect DApp with Suiet wallet from now!

+ ) : ( +
+
+

current wallet: {wallet.adapter?.name}

+

+ wallet status:{" "} + {wallet.connecting + ? "connecting" + : wallet.connected + ? "connected" + : "disconnected"} +

+

wallet address: {wallet.account?.address}

+

current network: {wallet.chain?.name}

+

+ wallet balance:{" "} + {formatSUI(balance ?? 0, { + withAbbr: false, + })}{" "} + SUI +

+

+ wallet publicKey: {uint8arrayToHex(wallet.account?.publicKey)} +

+
+
+ +
+
+ )} +
+

+ Click on the Vite and Suiet logos to learn more +

+